
How does it work?
Offline sales reporting is currently available for Onsite Display and Onsite Sponsored Product campaigns.
Transmission Method
Files can be uploaded to our SFTP, or downloaded from your own FTP by us. Get in touch with your Criteo Representative to agree on the integration method that is best for you.
Prepare your offline sales data in our compatible format and share the initial file with our Customer Support team or TS representative for verification; they will help you set up the automated upload process using SFTP.
Offline Data Format
Naming Convention: Offline sales data file names should include the Retailer Name, Partner ID, and Date of Offline Sales. Partner ID is found in the retailer account.
Format: retailerName_partnerID_offline_sales_[yyyyMMdd].csv
Example: retailer_123_offline_sales_20240101.csv
Upload Schedule
Retailers need to upload the previous day’s offline sales data in a consistent predefined format to the SFTP folders.
Offline sales data should be updated daily, with a maximum of 48 hours from the time the sale occurred in-store to the time we receive the data.
Accepted User Identifiers
There are three user IDs that are accepted, and it is required to include at least one of them:
CUser ID: Also known as “customer_id” (in the API calls) or “Authenticated User ID” (in the databases).
PUser ID: Also known as “retailer_visitor_id” (in the API calls) or “Media Sourcer User ID” (in the databases).
Hashed Emails: SHA256 email (Criteo accepts emails hashed with SHA256).*
You can choose to include more than one if necessary. Ideally, providing all three (CUser ID, PUser ID, and Hashed Emails) can enhance opportunities for attribution. Regardless of which identifier, it must be sent both in the file as well as in all ad calls.
Hashing Best Practices
Before hashing, all user email addresses must be:
Trimmed: all spaces before and after the user's email address must be removed
Cleaned: removing the comma, semicolons, quotes, or double quotes
Converted to lowercase
Encoded in UTF-8
To achieve high and consistent match rates, following the same hashing guidelines when sending emails through the beacons for online events is crucial.
Additionally, verify that the Product IDs in offline sales are consistent with the (Retailer's) Online Catalog. Any discrepancies between these values can result in a lower match rate and affect the overall effectiveness of the campaign.
Data Format
Field Name | Field Translation | Data Type | Description | Example |
user_key_1 | STRING | SHA256 hashed email of the shopper | Example MD5: e13743a7f1db7f4246badd6fd6ff54ff | |
user_key_type_1 | user id type | STRING | Type of user identifier | |
user_key_2 | customer_id | STRING | ID of the authenticated user that is consistent in all logged sessions | 1a2b3c4d |
user_key_type_2 | user id type | STRING | Type of user identifier | customer ID |
user_key_3 | retailer_visitor_id | STRING | Unique unauthenticated User ID that is persistent across sessions on the same device | 395733503 |
user_key_type_3 | user id type | STRING | Type of user identifier | Visitor ID |
event_id | order_id | STRING | Transaction ID | B1c2A3d4h6 |
event_time | event_time | STRING | UTC timestamp of purchased order | Example (in UTC+1): 2017-06-02T13:25:15+01:00 |
content_ids | product_sku | STRING | SKU of purchased product | 12345678901 |
product_value | unit_price | DOUBLE | Unit price of purchased product | 1.25 |
product_quantity | quantity | INT | Quantity of purchased product | 3 |
store_id | store_id | INT | The ID of the store in which the sale occurred | 75020 |
currency | currency | STRING | The currency of the transaction | EUR |
User Identifier Guidelines
Single User Identifier: If you share only one user identifier, maintain the naming as user_key.
Multiple User Identifiers: To ingest additional user identifiers, keep the mapping of the main identifiers as follows:
user_key_1 and user_key_type_1
user_key_2 and user_key_type_2
user_key_3 and user_key_type_3
Ingestion Period for Attribution
Retailers need to send orders no later than 2 days after the transaction to allow for processing within a 1-day window before attribution.

UI Availability
It takes approximately +3 days (74 hours) to make offline sales available in the UI after ingestion.
Offline Attribution
Criteo will match the user ID and product SKU from offline sales data with the user ID and product SKU from online activity (like when a user sees or clicks on an ad). This will help them figure out which ads led to purchases.
Orders are attributed every hour based on timestamps.
Offline attribution will be enabled for Commerce Max and Commerce Yield accounts and campaigns, reflective of the attribution product matching and lookback window set at the campaign level for Onsite Display and Sponsored Product.