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

FieldTypeRequiredDescription
partner_idstringYesYour Criteo Partner ID (numeric). Found in Criteo Management Center under Account Settings.
api_keysecretYesCriteo API key with Events API permissions. Generated in Management Center under Technical > API Access.
caller_idstringYesUnique identifier for this server-side integration instance. Provided by your Criteo account manager.

Configure in Signal

Management UI

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Criteo Events or filter by Advertising.
  4. Click Install, select a variant if available, and fill in the required fields.
  5. 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:

VariantDescription
DefaultStandard Criteo Events API configuration for general retargeting and conversion tracking.
RetailE-commerce focused with product-level events for Criteo Dynamic Retargeting and Criteo Retail Media campaigns.
TravelTravel 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 IDDescriptionHow to Capture
criteo_gum_idCriteo Global Unique Match IDResolved 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 EventCriteo Event TypeKey Properties
Order CompletedtransactionConfirmationorder_id, total, currency, products[]
Product ViewedviewProductproduct_id, price, currency
Product AddedaddToCartproduct_id, quantity, price
Product List ViewedviewListproduct_ids[], category
Home Page ViewedviewHome

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

SymptomCauseResolution
401 UnauthorizedInvalid or expired API keyRegenerate API credentials in Criteo Management Center under Technical > API Access.
403 ForbiddenAPI key lacks Events API scopeRevoke current credentials and create new ones with the Events API scope selected.
Events not appearing in CriteoIncorrect partner_idVerify the Partner ID in Criteo Management Center matches the value configured in Signal.
Duplicate eventsRetry without idempotencySignal includes an event ID for deduplication — check that your Criteo activity is configured to deduplicate by transaction ID.
Low match ratesMissing criteo_gum_idEnsure the GUM ID is being captured and passed via _df.identify(). Without it, Criteo relies on probabilistic matching.
429 Too Many RequestsRate limit exceededReduce 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.