Introduction
In this article, we’ll cover how to perform basic checks for determining the source of an error, common issue types, and data latency. We’ll also describe the kind of information the Criteo team needs to investigate an error. This article doesn’t only refer to errors that the API can produce, but also provides information about its expected behavior.Is it the error coming from my app or the Criteo server?
These simple checks will help you to separate client-side issues from server bugs. Connectivity Requests failing at the origin or blocked by the firewall configurations are surprisingly common. Check your connection by attempting to open a page in your web browser or run the curl command in the terminal. Make sure your personal or organizational firewall is set up to allow connection to Criteo services. Here are the Criteo sub-networks to be whitelisted by region:
In some cases connectivity issues can arise when persistent HTTP/2 connections’ termination command is either not issued properly by the server or not correctly processed by the client. Typically, this results in a time-out from the endpoint. In such cases, turning off the
keep-alive property of a connection may help.
Here is an example for Python:
- RequestId or TraceId, if available
- Endpoint and its version
- App name or app ID
- Payload without any identifiers or sensitive information
- Response message without any identifiers or sensitive information
Is the issue that my data is late?
Starting from How to handle API errors - Part 1 to now, we have focused on common issues that can arise with the API. Let’s talk about data and metrics. Data latency can also be mistaken for causing issues. Some metrics may have several hours of latency, while others may seem to have longer delays. The following table provides the maximum and median data delays for different metric groups.- Revenue-based ROI: ECoS and related metrics
- Sales and derivative metrics:
- Sales data
- Conversion data
- Conversion-based ROI: CPO, CPI, and related metrics | 12 hours | 5 hours | | Audience metrics:Potential users Exposed users Displays | 19 hours | 7 hours | | Omnichannel metrics | 207 hours | 197 hours |
InfoData freshness guidelines on this page are not official SLAs and therefore maximum delay values are not guaranteed. They reflect the 95th and 50th percentile latency based on the last two weeks of import data. It is your responsibility to assess the precision-error trade-off of your application based on the snapshot of historical data provided above. Official SLAs will be shared at a later date.
Is the issue caused by a data discrepancy?
Whether you are building an aggregator service with Criteo as one of the sources or simply trying to compare the numbers in the Commerce Growth Analytics UI and the API, you may have encountered a situation where the reported numbers in the UI and API are not the same. As a first step, we need to make sure we have an apples-to-apples comparison by making sure our views are closely aligned. Dates Aligning the timezones and the date ranges in the API request body and the platform UI (whether Criteo Commerce Growth or a third-party platform) will resolve the issue most of the time. Check this document for the list of supported timezones. Attribution scope Please view this document for the list of supported metrics in the Criteo API. The naming pattern provided on the metrics page will help you understand how you’re comparing the data in different systems. Ask yourself:- ices]: A: Am I comparing cross-device sales or same-device sales?
- ributionModel]: A: Am I comparing custom attribution sales or default attribution sales?
- kbackWindow]: A: Am I selecting the same attribution lookback period?