Skip to main content

Overview

Criteo serves personalized ads to mobile app users who have a high probability of clicking through and engaging with the app. In order to make an accurate prediction on the user’s intent and likelihood of conversion, Criteo captures app events and collects relevant data associated with each event from the mobile device. This document provides detailed specifications of the mobile app events, required parameters, and implementation guidelines for mobile data partners, so they can forward the relevant data in the correct format to Criteo. The table below describes what classifies as a product for various business verticals. Ultimately, the product ID sent to Criteo should match the product ID in the product catalog feed of the advertiser imported in our platform:

Implementation

Mobile event data needs to be transmitted to Criteo endpoints as URL encoded JSON objects. The data should preferably be sent to the Criteo endpoint as an HTTP POST request with the body as a JSON data structure. HTTP GET requests are also supported. In this case, the JSON data should be sent as the value of the single query parameter ?data= (in URL-encoded format — see cURL examples below).

Criteo Endpoints

All events should be sent to this endpoint: Depending on the region of the data center, it might respond with an HTTP 307 redirect. If you are not able to follow redirections, you need to determine the user’s location and select the corresponding regional endpoint:
For the list of countries associated with each region in the table above, see Appendix B. Criteo Country to Geographic Region Mapping.

Event Parameters

Following is the list of parameters required for each Criteo event.
For a more detailed description of each event parameter, see Appendix A. Criteo App Events Parameters Summary.
Sample event data structure:

HTTP Call Examples & Response Body

Sample raw event call using the HTTP POST method (recommended):
A successful request should return HTTP 200 OK with the following response body:
Sample raw event call using the HTTP GET method:

Event Specifications

The following lists standard Criteo app events and required parameters associated with each event.

View Home

This event captures app launch or the default home page view of the mobile app:
This event captures app launches that were invoked through Native Deeplinks or Universal Link / Android App Links:
This is important to enrich Criteo’s measurement capabilities, mostly in terms of Web + App cross-environment landings.

View Listing

This event captures the user’s action of viewing a list of product items and should be fired, ideally, when the user accesses category or search screens:

View Product

This event captures the user’s action of viewing a specific product:

View Basket

This event captures the user’s action of visiting the basket/cart and reviewing the items before checkout:

Track Transaction

This event should be fired when the user has completed the purchase:

Additional Data for the Travel Vertical

Criteo recommends advertisers in the Travel vertical (Flights/Hotels/Car/Restaurant Booking sites) send check-in and check-out dates related to the booking search to help improve our optimization learnings. Those dates can be sent to Criteo as an additional event called "vs" in the events array, as in the View Product event example below:
Date values must be sent to Criteo in the format YYYY-MM-DD.

Hashed Email for Cross-Device Targeting

Mobile advertisers should send Criteo the email address of the app user whenever available, either in SHA-256 hashed format (recommended) or plain-text, to enable our cross-device targeting capabilities and allow for better cross-environment measurement. The hashed email can be added to any of the event types above. Following are the steps to generate a valid hashed email address:
  • Convert all characters to lower case
  • Remove any blank spaces
  • Ensure to use UTF-8 encoding
  • Hash using the SHA-256 algorithm
There are two ways advertisers can append a hashed email to Criteo:
  • Using the alternate_ids structure, or
  • Using the dedicated setEmail event type
SHA-256 is the industry standard hash algorithm and is currently the only hash method supported by Criteo.

Sending Email as alternate_ids

Following are examples of sending an email address as one of the alternate IDs, in the JSON root: SHA-256 hashed format:
Plain-text format:

Sending Email as Event setEmail

Following are examples of sending an email address in the dedicated setEmail event, as part of the events structure: SHA-256 hashed format:
Plain-text format:

Extra Data

The Criteo Endpoint accepts generic extra data through the "events" structure in the format of key-value pairs. This extra data can be applied to different advanced purposes, like audience segmentation and special tracking needs, among others, and can be added to the events structure as below:
Discuss with your Criteo Technical Solutions Engineer about the usage and implementation of this extra data.

New Event Taxonomy Specifications

The event types above were designed primarily considering clients from the Retail, Travel, and Classified business verticals. For other verticals, it may be useful to collect additional event types to enrich our reporting capabilities.
The event types above are our primary source for campaign optimization, so we recommend prioritizing their implementation over the additional event types below (as of today, used only for reporting purposes).
The recommendation is to send all events that describe the “user-flow” in the app. The table below shows the recommended events per vertical:

Complete Registration

Event informing when user registers in the app:

Login

Event informing when user logs in:

Add Payment Info

Event informing when user adds payment info:

Select Product

Event informing when user selects a specific product variant within the app:

Begin Checkout

Event informing when user starts the checkout:

Add to Cart

Event informing when user adds an item/product to the cart:

Add to Wishlist

Event informing that user adds an item/product to the wishlist:

Cancel Transaction

Event informing that the user cancels a transaction:

Start Trial

Event informing that user starts a service trial:

Subscribe

Event informing that user subscribes to a service:

Play Media

Event informing when user achieves a new level within the game:

Begin Tutorial

Event informing when user has completed the tutorial within the game:

Complete Tutorial

Event informing when user has completed the tutorial within the game:

Level-Up

Event informing when user achieves a new level within the game:

Earn Virtual Currency

Event informing when user earns virtual currency within the game:

Unlock Achievement

Event informing when user has reached a key milestone within the game:

Appendix A: Criteo App Events Parameters Summary

Appendix B: Criteo Country to Geographic Region Mapping