Skip to main content

Overview

Criteo serves personalized ads to mobile app users that have high probability of clicking through and making a purchase. Criteo technology is based on real-time product recommendation optimization and prediction engines. In order to enable its technology, Criteo needs:
  • App Events — App events and relevant data correctly captured on your mobile app.
  • Deep Linking Capability — Product level deep link capabilities in app to take users back to the products they clicked on.
  • Catalog Feed — A CSV or XML file (called Catalog Feed) containing product information of a large portion of your mobile app’s offers.
This document provides detailed information on the following:
  • Integration
  • Required events and parameters
  • Implementation guidelines

Integration Steps

App Events & Data

SDK Initialization

Set up and initialize the Branch SDK as recommended by the Branch standard documentation.
Find additional SDK Setup documentation here.

Branch SDK Initialization

Ensure that the Branch SDK is initialized in didFinishLaunching.
Ensure to track the App Launch and App Deeplink Launch events.

Events Implementation in the App

Criteo requires the implementation of the following events: Below is a table of Branch Event Name constants and how they map to Criteo events.

Branch Universal Objects

The Criteo integration with Branch relies on the creation of BranchUniversalObjects through the Branch SDK. An array of BranchUniversalObjects should be sent with all events (except app open). BranchUniversalObject represent the product that the user has viewed or purchased and have an associated product id, price, and quantity.
If an equivalent of a required Criteo event is already implemented in the app, then either the BranchUniversalObjects array needs to be implemented in that event or else a new event needs to be created.

View Home

The viewHome event is automatically sent once Criteo has been activated on the app. It is triggered for each new user session.

View Listing

The viewListing event should be triggered on pages displaying product lists like a category page or a search results page for Retail, and travel search results page for Travel. You must include the IDs of the top three products displayed in the list by setting the BranchUniversalObject name to the ID. These IDs must match those passed in the catalog feed. For travel apps, you must send check in (Date1) and check out (Date2) information along with the event.

View Product

The viewProduct event should be triggered on all product-details pages. You must include the ID of the product detailed on the page via the BranchUniversalObject name, and send the BranchUniversalObject with the event. It must be the same ID as used in the catalog feed, and must be unique.

View Basket

The viewBasket event should be triggered on the basket-details pages for Retail and when a user begins entering booking details for Travel. You must include the IDs, prices, and quantities of the basket’s products via the BranchUniversalObjects array.

Track Transaction

The trackTransaction event should be triggered on order confirmation pages for Retail and booking confirmation pages for Travel. For Retail, you must include a unique transaction ID as well as the IDs, prices, and quantities of the products bought in the transaction via the BranchUniversalObjects array. For Travel, transaction ID is not required.

UI Status

The Status should be triggered every time the user opens the app or user status has changed. You must include the status value of the updated status with the event.

UI Level

The Level event should be triggered every time the user opens the app or levels up. You must include the level value of the new incremental level reached.

UI Achievement

The Achievement event should be triggered every time the user unlocks a new achievement. You must include the name of the achievement.

Extra Data

The Branch Event allows you to add any key-value pairs via the addCustomDataProperty method. To include extra data in the Criteo postback, you must add the extra data in the event. For example, to send the extra data ui_custom in the viewProduct event:
After this is added to the event, you must also modify the event’s postback configuration in Branch’s dashboard, referencing this extra data parameter, in order for it to be passed in the event.
Image
It is highly recommended to give Branch Dashboard access to your Criteo Technical Solutions Engineer to modify the postback configuration on your behalf.

Customer ID

A Customer ID can be provided in all events. Use the following code snippet to implement:
If the user is logged in to the advertiser’s app, the user ID should be passed.
User ID is an optional parameter and should not be set if the user is logged out or the User ID is unavailable.
Customer ID can be any string, as long as it does not contain any Personally Identifiable Information.

Testing Process

Once all events have been implemented, you should contact your Criteo representative to begin the testing phase.
Please allow sufficient time (at least a week before) for testing prior to the app submission in order to ensure that the data you are sending is complete.
Criteo requires the following elements:
  • App build to test the collection of events on Criteo side.
  • If testing remotely, the IDFA of the test device.
  • Deep link example (homepage & product detail).