Criteo Events
Send conversion and engagement events to Criteo via the Events API for retargeting, audience optimisation, and performance attribution.
Prerequisites
Complete these steps in Criteo before configuring the integration in Signal.
Create a Criteo Account
Sign up or log in at www.criteo.com. Most Criteo accounts are set up by a Criteo account manager during onboarding — contact your representative if you don’t have access.
Find Your Partner ID
Navigate to Criteo Management Center and open Account Settings. Your Partner ID (also called Account ID) is displayed at the top of the page. This is a numeric identifier (e.g. 12345).
Create API Credentials
In Criteo Management Center, go to Technical > API Access. Click Create new credentials and select the Events API scope. Save the generated API key securely — it will only be shown once.
Store your API key in a secure password manager. Criteo will not display it again after creation. If lost, you must revoke and regenerate credentials.
Get Your Caller ID
The caller_id is a unique identifier for your server-side integration instance. Request this from your Criteo account manager. It is used by Criteo for troubleshooting, rate limiting, and distinguishing between integration sources.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
partner_id | string | Yes | Your Criteo Partner ID (numeric). Found in Criteo Management Center under Account Settings. |
api_key | secret | Yes | Criteo API key with Events API permissions. Generated in Management Center under Technical > API Access. |
caller_id | string | Yes | Unique identifier for this server-side integration instance. Provided by your Criteo account manager. |
Configure in Signal
Management UI
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find Criteo Events or filter by Advertising.
- Click Install, select a variant if available, and fill in the required fields.
- Click Install Integration to create the integration with a ready-to-use default configuration.
Management API
curl -X POST http://localhost:8084/v1/admin/integration-catalog/criteo/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Criteo Events",
"variant": "default",
"config": {
"partner_id": "12345",
"api_key": "abc123def456...",
"caller_id": "caller-abc-123"
},
"delivery_mode": "server_side"
}'Variants
Criteo Events is available in multiple pre-configured variants to match your industry:
| Variant | Description |
|---|---|
| Default | Standard Criteo Events API configuration for general retargeting and conversion tracking. |
| Retail | E-commerce focused with product-level events for Criteo Dynamic Retargeting and Criteo Retail Media campaigns. |
| Travel | Travel and hospitality focused with search, booking, and listing view events for Criteo Travel solutions. |
Each variant provides a tuned default configuration. You can customise any setting after installation.
Identity Signals
Criteo uses the GUM ID (Global Unique Match ID) as its primary user identifier for cross-device matching and attribution.
| Vendor ID | Description | How to Capture |
|---|---|---|
criteo_gum_id | Criteo Global Unique Match ID | Resolved via Criteo’s OneTag or partner match tables. Pass to Signal via _df.identify() or extract from the Criteo cookie. |
When a criteo_gum_id is available in the Identity Hub, Signal automatically includes it in outbound events to Criteo. Events without a GUM ID can still be sent but will rely on Criteo’s probabilistic matching.
_df.identify({ criteo_gum_id: "abc123-def456-ghi789" });Event Mapping
| Datafly Event | Criteo Event Type | Key Properties |
|---|---|---|
Order Completed | transactionConfirmation | order_id, total, currency, products[] |
Product Viewed | viewProduct | product_id, price, currency |
Product Added | addToCart | product_id, quantity, price |
Product List Viewed | viewList | product_ids[], category |
Home Page Viewed | viewHome | — |
Example: Purchase Event
Datafly.js call:
_df.track("Order Completed", {
order_id: "ORD-001",
total: 129.99,
currency: "GBP",
products: [
{ product_id: "SKU-A", name: "Widget", quantity: 2, price: 49.99 },
{ product_id: "SKU-B", name: "Gadget", quantity: 1, price: 30.01 }
]
});Criteo Events API payload sent by Signal:
{
"account": {
"id": "12345",
"type": "partner"
},
"events": [
{
"type": "transactionConfirmation",
"id": "ORD-001",
"currency": "GBP",
"item": [
{ "id": "SKU-A", "price": 49.99, "quantity": 2 },
{ "id": "SKU-B", "price": 30.01, "quantity": 1 }
]
}
]
}Testing
Send a Test Event
Use the Datafly.js snippet on a test page to fire a Product Viewed or Order Completed event.
Verify in Signal
Open the Live Events view in the Management UI. Confirm the event appears and is routed to the Criteo integration.
Verify in Criteo
In Criteo Management Center, go to Events > Event Log. You should see the test event arrive within a few minutes. Check that the event type, product IDs, and values match.
Check Delivery Status
In Signal, navigate to the integration detail page and check the Delivery Log for successful delivery confirmations or error details.
Troubleshooting
| Symptom | Cause | Resolution |
|---|---|---|
401 Unauthorized | Invalid or expired API key | Regenerate API credentials in Criteo Management Center under Technical > API Access. |
403 Forbidden | API key lacks Events API scope | Revoke current credentials and create new ones with the Events API scope selected. |
| Events not appearing in Criteo | Incorrect partner_id | Verify the Partner ID in Criteo Management Center matches the value configured in Signal. |
| Duplicate events | Retry without idempotency | Signal includes an event ID for deduplication — check that your Criteo activity is configured to deduplicate by transaction ID. |
| Low match rates | Missing criteo_gum_id | Ensure the GUM ID is being captured and passed via _df.identify(). Without it, Criteo relies on probabilistic matching. |
429 Too Many Requests | Rate limit exceeded | Reduce event volume or contact your Criteo account manager to increase rate limits. |
Delivery
Events are delivered server-side from your Datafly Signal infrastructure directly to the Criteo API. No client-side scripts are loaded for this integration.
Visit Criteo Events API documentation for full API reference and credential setup instructions.