Criteo is a technology company specializing in digital advertising. Their platform utilizes machine learning algorithms to analyze online user behavior and deliver targeted ads across various devices and channels. By helping advertisers reach potential customers who have shown interest in their products or services, Criteo aims to improve ad performance and drive conversions.
Product Type: Advertising
Integration Type: Starter Kit & ID Sync
Event Source Type: Web
Event Scope: Full-Funnel Events
- Sends server-side event data directly to Criteo, reducing exposure of user data to third-party platforms.
- Reduces reliance on third-party tags, resulting in faster site loading times.
- Supports full-funnel events including page, product, cart, and order lifecycle actions.
- Sends hashed email identifier variants (SHA-256, MD5, SHA-256 of MD5, and normalized raw) for improved matching.
- The partner ID, first-party name, and first-party domain must be provided by Criteo or configured for your site.
- The first-party domain is used to avoid ID collisions across different websites.
- The site type defaults to
d (desktop); it accepts d (desktop), t (tablet), or m (mobile).
- Events are sent one per request; batching is not supported (batch size is 1).
- Sync Available: Yes
- Required for Starter Kit: Yes
- Prerequisites: Criteo partner ID, first-party name, and first-party domain
- Documentation: See Additional Criteo Sync Documentation
- Sends the
anonymousId value as a cookie to Criteo's identity endpoint.
- Required by Criteo to associate events with users.
- Without this sync, events sent to Criteo will be rejected.
- To send the
anonymousId to Criteo's identity endpoint, you must implement a Criteo ID sync. Refer to the following documentation to complete the setup: Criteo - ID Sync Guide.
- Grab your Partner ID from your Criteo account:
- Log into your Criteo Commerce Growth account.
- On the left-hand navigation, under Events, click on Events Tracking.
- Under the "Select a data set" drop-down, your Partner ID is in parentheses next to your account name.
- From the integration library, add a Criteo integration. Then, fill out the Connection Parameters:
| Connection Parameter | Description |
|---|
FIRST_PARTY_DOMAIN | The domain of the partner (e.g., for www.yourdomain.com, it could be yourdomain.com or www.yourdomain.com). Used to avoid ID collisions across sites. |
FIRST_PARTY_NAME | Advertiser name (e.g., metarouter). |
PARTNER_ID | The partner ID of the account you are sending the data to. Contact your Criteo representative if you do not have this value. |
- MetaRouter provides all of the event mappings that Criteo integrations typically require. You may add custom events, parameters, or mappings in accordance with Criteo's API documentation.
- In the Pipelines tab, add your Criteo integration.
- Select the correct integration revision.
- Click Add Integration to finalize deployment.
Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.
| Output Key | Description | Expected Input |
|---|
account Required | String: The partner ID of the account you are sending the data to. | $$PARTNER_ID$$ |
site_type | String: The device type of the user. Accepts d (desktop), t (tablet), or m (mobile). | Enrichment – 'd' |
retailer_visitor_id Required | String: A unique ID that is consistent across multiple sessions for an unauthenticated user. | anonymousId |
ip Required | String: The IP address of the user. | context.ip |
full_url Required | String: The full URL where the event is triggered. | context.page.url |
page_title | String: Title of the page. | context.page.title |
user_agent Required | String: The user agent string from the user's browser. | context.userAgent |
alternate_ids | Array: Normalizes the email (trimmed and lowercased) and returns identifier variants — sha256, md5, sha256_md5, and none (raw normalized email). | Expression – builds hashed email variants from traits.email |
events.timestamp | String: The timestamp the event happened for the user. | timestamp |
| Output Key | Description | Expected Input |
|---|
events.event | String: Login event triggered. | Enrichment – 'login' |
| Output Key | Description | Expected Input |
|---|
events.event | String: Page event triggered — viewHome for the home path, otherwise viewPage. | Expression – returns 'viewHome' when path is /, else 'viewPage' |
| Output Key | Description | Expected Input |
|---|
events | viewList: Builds the search event with timestamp, category, search keywords, and the product ID. | Expression – builds the viewList event from properties |
| Output Key | Description | Expected Input |
|---|
events | viewList: Builds the list-view event with timestamp, currency, category, and an array of the top 3 product IDs on the listing page. | Expression – builds the viewList event from properties |
| Output Key | Description | Expected Input |
|---|
events.event | String: Event triggered. | Enrichment – 'viewItem' |
events.item | String: The product ID of the product the user looked at. | properties.product_id |
events.timestamp | String: The timestamp the event happened for the user. | timestamp |
| Output Key | Description | Expected Input |
|---|
events | addToCart: Builds the add-to-cart event with timestamp, currency, and the item's ID, price, and quantity. | Expression – builds the addToCart event from properties |
| Output Key | Description | Expected Input |
|---|
events | viewBasket: Builds the basket-view event with timestamp, currency, and each item's ID, price, category, and quantity. | Expression – builds the viewBasket event from properties.products |
| Output Key | Description | Expected Input |
|---|
events.event | String: Event triggered. | Enrichment – 'addPaymentInfo' |
| Output Key | Description | Expected Input |
|---|
events.currency | String: The ISO code of the currency being passed to the tags. | properties.currency (uppercased) |
events.id | String: The order ID used to identify a given order. | properties.order_id |
events | beginCheckout: Builds the checkout event with timestamp, currency, and each item's ID, price, and quantity. | Expression – builds the beginCheckout event from properties.products |
| Output Key | Description | Expected Input |
|---|
events.currency | String: The ISO code of the currency being passed to the tags. | properties.currency (uppercased) |
events.order_id | String: The order ID used to identify a given order. | properties.order_id |
events | trackTransaction: Builds the transaction event with timestamp, currency, order ID, and each item's ID, price, and quantity. | Expression – builds the trackTransaction event from properties.products |
These identifiers must be mapped to Criteo in order for successful user matching to occur. Without these IDs, any events sent to Criteo will be rejected. For your convenience, required and recommended IDs are mapped as Global parameters to ensure they are added to every event.
| Attribute | Example | Sync Injector Required? |
|---|
anonymousId Required | 130161d0-8fee-4167-aa4d-d151eed27c6b | Yes |
ip Required | 127.0.0.1 | No |
user_agent Required | Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 | No |
full_url Required | https://www.example.com/product/12345 | No |
alternate_ids Recommended | 9561c3516f02f51fa0ac38e9c81df0157ebab90d59ebde6fcf0f128f06a66423 | No |
Coordinate with your Criteo representative to confirm that events are being received and processed correctly on their backend.