What Is Criteo?

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.

What are the benefits of integrating MetaRouter with Criteo?

  • Enhanced privacy and security: Direct server integration reduces the exposure of user data to third-party platforms, enhancing privacy and security compliance.
  • Reduced site latency: Decreases the reliance on third-party tags, resulting in faster loading times for websites and improved user experience.

Getting Started - From Your Criteo Account

  • Grab your Partner ID
    1. Log into your Criteo Commerce Growth account.
    2. On the left-hand navigation, under Events, click on Events Tracking.
    3. Under the “Select a data set” drop-down, you will find your Partner ID in parentheses next to your account name.

Getting Started - From Your MetaRouter Account

Adding a Criteo integration.

From the integration library, add a Criteo integration. Then, fill out the Connection Parameters:

Connection ParameterDescription
FIRST_PARTY_DOMAINThe domain of the partner. Ex, for http://www.fnac.com/, it could be “http://fnac.com/” or “http://www.fnac.com/”.
FIRST_PARTY_NAMEAdvertiser name. Ex, “metarouter”
PARTNER_IDThe partner ID of the account you are sending the data to.

Adding a Criteo Sync

To gather and send the anonymousID value as a cookie to Criteo’s identity endpoint, you must add a Criteo sync.

  1. From the Pipelines page, find the pipeline associated with the web property you’d like to add a sync to. Hover over the three-dot dropdown and select “Build AJS File.”
  2. In the Identity Syncs section, select the Criteo sync.
  3. Fill out the following fields:
    1. Partner ID - The partner ID of the account you are sending the data to.
    2. First Party Name - Advertiser name. Ex. “metarouter”
    3. First Party Domain - The domain of the partner. Ex, for www.fnac.com, it could be “fnac.com” or “www.fnac.com”.
    4. Cookie Lifetime (in days) - 30 days recommended
    5. Fire on re-sync - Default set to off
  4. Scroll down and click the Save and Build File button.
  5. Deploy your AJS file to propagate changes to your web property.

Event Mappings

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.

Global

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 KeyDescriptionExpected Input
account
Required
Type: String
The partner ID of the account you are sending the data to.
partner_id
site_typeType: String
The device type of the user. This
accepts 'd' (desktop), 't' (tablet) or 'm' (mobile).
Direct value: d
retailer_visitor_id
Required
Type: String
A unique Id that is consistent across multiple sessions for an
unauthenticated user.
anonymousId
ip
Required
Type: String
The IP address of the user.
context.ip
full_url
Required
Type: String
The full URL where the event is triggered.
context.page.url
page_titleType: String
Title of page.
context.page.title
user_agent
Required
Type: String
The user agent string from the user's browser.
context.userAgent
id.email.raw
Highly Recommended
Type: Plain Text Email
The user's raw email address,
whitespace trimmed and lowercase.
N/A - Expression
id.email.sha256_md5
Highly Recommended
Type: String
The user's email, whitespace trimmed, lowercase, MD5 hashed then SHA256 hashed.
N/A - Expression
id.email.md5
Highly Recommended
Type: String
The user's email, whitespace trimmed, lowercase and MD5 hashed.
N/A - Expression
id.email.sha256
Highly Recommended
Type: String
The user's email, whitespace trimmed, lowercase and SHA256 hashed.
N/A - Expression
events.timestampType: String
The timestamp the event happened for the
user.

Valid formats:
UNIX timestamp
yyyy'-'MM'-'dd'T'HH':'mm':'ssZ
yyyy'-'MM'-'dd'T'HH':'mm':'ssz
yyyy'-'MM'-'dd'T'HH':'mm':'sszzz
timestamp

Event Specific

product_list_viewed

Output KeyDescriptionExpected Input
eventsType: viewList
An array of the top 3 products on the listing page a user visited.
N/A - Expression

cart_viewed

Output KeyDescriptionExpected Input
eventsType: viewBasket
Item ID, price, category, and quantity.
N/A - Expression

order_completed

Output KeyDescriptionExpected Input
events.currencyType: String
The ISO code of the currency being passed to the tags.
properties.currency
events.order_idType: String
The order ID used to identify a given order.
properties.order_id
eventsType: trackTransaction
Timestamp, currency, order ID, Item ID, price, and quantity.
N/A - Expression

product_added

Output KeyDescriptionExpected Input
eventsType: addToCart
Item ID, price, and quantity.
N/A - Expression

product_viewed

Output KeyDescriptionExpected Input
events.eventType: String
Event triggered.
viewItem
events.itemType: String
The product ID of the product the user looked at.
properties.product_id
events.timestampType: String
The timestamp the event happened for the user.
timestamp

products_searched

Output KeyDescriptionExpected Input
eventsType: viewList
Item ID, price, and quantity.
N/A - Expression

payment_info_entered

Output KeyDescriptionExpected Input
events.eventType: String
Event triggered.
addPaymentInfo

checkout_started

Output KeyDescriptionExpected Input
events.currencyType: String
The ISO code of the currency being passed to the tags.
properties.currency
events.idType: String
The order ID used to identify a given order.
properties.order_id
eventsType: beginCheckout
Item ID, price, and quantity.
N/A - Expression

identify

Output KeyDescriptionExpected Input
events.eventType: String
Login event triggered.
N/A - Expression

page

Output KeyDescriptionExpected Input
events.eventType: String
View Page Event triggered.
N/A - Expression

Required Identifiers

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.

AttributeExampleSync Injector Required?
anonymousID130161d0-8fee-4167-aa4d-d151eed27c6bYes - Sync is required to send anonymousID to their identity endpoint
ip127.0.0.1No
user_agentMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0No
full_urlhttps://www.example.com/product/12345No

Recommended Identifiers

These identifiers should be mapped to Criteo whenever possible to ensure the highest user match rates possible. If using these identifiers, they must be added as Global or Event Specific mappings.

AttributeDescriptionExample
id.email.rawThe users raw email address, whitespace trimmed and lowercase.[email protected]
id.email.sha256_md5The users email, whitespace trimmed, lowercase, MD5 hashed then SHA256 hashed.7328fddefd53de471baeb6e2b764f78a
id.email.md5The users email, whitespace trimmed, lowercase and MD5 hashed.97817c0c49994eb500ad0a5e7e2d8aed51977b26424d508f66e4e8887746a152
id.email.sha256The users email, whitespace trimmed, lowercase and SHA256 hashed.9561c3516f02f51fa0ac38e9c81df0157ebab90d59ebde6fcf0f128f06a66423

Additional Criteo Documentation

Criteo OneTag Events and Parameters