Tracking with PHP API¶
You can interact directly with the Raptor connector's service using the PHP API for advanced tracking usage.
Advanced usage – direct interaction with the service¶
The ServerSideTrackingDispatcherInterface::dispatch() method allows sending tracking data from the server side.
It can be used in controllers, event subscribers, or any other part of the application.
This method receives an EventDataInterface.
For more information, see the available events in the tracking event namespace.
Mapping event data¶
The recommended method is EventMapperInterface::map().
This method receives an EventType case, a data depending on the event type (a ProductInterface, a Content, or a string), and a context's associative array that uses EventContext constants as keys.
For more information, see the same arguments of the Twig function ibexa_tracking_track_event.
| Event type | Data class | Context keys |
|---|---|---|
EventType::VISIT |
ProductInterface |
(optional) EventContext::CATEGORY_IDENTIFIER,(optional) EventContext::WEBSITE_ID |
EventType::CONTENT_VISIT |
Content |
(optional) EventContext::WEBSITE_ID |
EventType::BUY |
ProductInterface |
EventContext::SUBTOTAL,EventContext::CURRENCY,EventContext::QUANTITY,(optional) EventContext::CATEGORY_IDENTIFIER,(optional) EventContext::WEBSITE_ID |
EventType::BASKET |
ProductInterface |
EventContext::BASKET_CONTENT,EventContext::BASKET_ID,(optional) EventContext::CATEGORY_IDENTIFIER,(optional) EventContext::QUANTITY,(optional) EventContext::WEBSITE_ID |
EventType::ITEM_CLICK |
string (product code) |
EventContext::MODULE_NAME,EventContext::REDIRECT_URL |
Check the following example:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Category parameter for product events¶
In Ibexa DXP, products can be assigned to multiple categories. However, Raptor accepts only a single category value in tracking events.
By default, the connector uses the first category from the list of categories assigned to the product. You can override this behavior and define which category is sent in tracking events.
To do this:
- Open the product page in the back office.
- Check the categories assigned to the product and select the one you want to use.
- Copy the identifier.
- Pass this identifier as the category parameter in the tracking event.
Note
This option applies only to product-related tracking events.
Example:
1 2 3 4 5 6 7 8 9 10 11 | |
Manual EventData creation¶
Manual creation of EventData allows precise control over the events sent to the service.
It enables you to define custom event parameters, track specific user interactions, and tailor data collection to advanced use cases.
Check the following example:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
categoryPath parameter sets the category path for recommendations and needs to be composed manually following the specified format and rules:
- format:
CategoryId#CategoryName;CategoryId#CategoryName, for example,25#Electronics;26#Smartphones - if
CategoryNameis missing, repeat the ID, for example,25#25;26#26 - if
CategoryIdis missing, use theCategoryName, for example,Electronics;Smartphones
For more information, see the available events in the tracking event namespace.
Example - event subscriber¶
If you need to track events automatically based on application events, you can use an event subscriber. It reacts to specific events in the application and triggers tracking logic without the need to add it manually in templates.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | |
You can also use Ibexa DXP events, for example CreateOrderEvent from Order management events.
For more information, see Event reference.