Criteo Integration
Beta
The Criteo integration is still being verified with real advertiser accounts. Until adstage finishes registering its Criteo partner app, the Criteo card in the dashboard shows
Coming Soon; theCost Integrationtab described below opens once that registration is complete. Contact the adstage support team if you want to connect sooner, or if the numbers in adstage differ from the Criteo console.
In adstage, you can automatically collect cost, impressions, clicks, and app installs for your Criteo campaigns. Instead of issuing and pasting an API key, an advertiser admin grants adstage read access on the Criteo consent page. The Criteo integration consists of a single Cost Integration tab.
1. Integration Overview
When you allow access in Integrations > Ad Channel Integration > Criteo, the following applies.
| Feature | Supported | Description |
|---|---|---|
| Cost collection | Yes | Cost, impressions, clicks, and app installs per campaign, collected automatically every 4 hours |
| Conversion sending | No | Criteo does not publish a specification for measurement providers to send conversions back. See section 6 |
| Tracking link template | No | Use criteo as the channel of a custom link and it is reported under the criteo.ads channel |
2. Before You Start
- Criteo permissions: The person granting access must be an admin or business manager of the Criteo advertiser. If you sign in with a user who lacks these permissions, no advertisers are available to share. According to Criteo's documentation, technical managers can approve as well.
- Allow pop-ups: The consent page opens in a new window (pop-up). Allow pop-ups for adstage in your browser.
- No API key needed: You do not need to issue a key or token in the Criteo console, and there is no field in adstage to enter one.
3. Connecting Your Account
-
In Integrations > Ad Channel Integration > Criteo, open the
Cost Integrationtab and turn on the Criteo Cost Integration switch. While the switch is off, theAllow access in Criteobutton is disabled. -
Click
Allow access in Criteo. The Criteo consent page opens in a new window. -
Sign in with your Criteo account. The Access request page shows the requesting organization and app, the permission level, and the advertisers you can grant access to. Select the advertisers to share with adstage and click Approve. adstage requests read-only statistics access (Analytics Read) and does not request permission to change campaigns.
-
Once approved, the window closes automatically and the Select Criteo Advertisers dialog opens in adstage. The advertisers you shared on the consent page are listed with their advertiser name and advertiser ID. Select the advertisers to collect cost data for (multiple selection is possible) and click Confirm N Account(s).
-
As soon as you confirm, an account is created for each selected advertiser and the status shows Preparing. The first collection does not run immediately; it runs on the next 4-hour cycle (KST 1:00, 5:00, 9:00, 13:00, 17:00, 21:00), and the status changes to Success or Failed then. The screen also says "Integration status will update within 4 hours".
Please note
- If you approve without selecting any advertiser on the consent page, the message "No Criteo advertisers were shared" appears and the connection does not proceed. Allow access again and select the advertisers.
- If you close or decline the consent window, the notice "Connection to Criteo was cancelled" appears. Nothing is saved.
- Allowing access again for an advertiser that is already connected does not skip it; the existing access is replaced with the new one ("N already connected Criteo advertiser(s) were re-authorized"). This is also how you reconnect after access has expired.
4. Managing Accounts and Checking Status
The list below the Cost Integration tab shows the connected advertisers.
- Account Name: the Criteo advertiser name, with the advertiser ID underneath
- Status: Preparing, Success, or Failed
- Last Data Update: the last time cost data was actually saved
- Management: the delete icon. Click Delete in the Delete Account confirmation dialog to disconnect
Deleting an account stops collection for that advertiser; data already collected remains in adstage. Turning off the Criteo Cost Integration switch stops collection for all Criteo accounts at once.
Status messages
- Preparing: the account was just connected or re-authorized. The status is confirmed on the next collection.
- Success: the Criteo report call works. Accounts with no ad spend still show Success even when zero rows come back.
- Failed: Criteo refused access (access expired or revoked, for example). Hover over the badge to see the failure count and a summary such as "Authentication failed — reconnect or check the key"; click Details for the raw message. Failed accounts are retried every cycle and return to Success automatically once the cause is resolved.
Temporary errors or request throttling on Criteo's side do not change the status; the account is retried in the next cycle.
Missing data warning
Even when the status is Success, if no cost data has been saved for more than 3 days, a ⚠️ warning appears next to the status with an Action Required notice ("No cost data has been collected for N days"). If you are running ads and see this warning, check the integration. The warning disappears automatically once data arrives again.
Access expiry
Access granted by Criteo expires 6 months after it was allowed, and it is revoked earlier if the person who allowed it leaves the advertiser or changes roles. The same happens if the advertiser revokes the adstage app on the Criteo consent dashboard. No advance warning is shown before expiry; when access expires, the status changes to Failed. Click Allow access in Criteo again and select the same advertisers to reconnect.
5. Collected Data
| Item | Description |
|---|---|
| Collection interval | Every 4 hours (KST 1:00, 5:00, 9:00, 13:00, 17:00, 21:00) |
| Collection range | Last 30 days (D-30 to D-1). The current day (D-0) is not collected because its figures are not final |
| Data level | Campaign × day |
| Metrics | Cost (AdvertiserCost), impressions (Displays), clicks (Clicks), app installs (AppInstalls) |
| Currency and timezone | Reports are requested in Korean won (KRW) and Korea time (Asia/Seoul) |
| Channel name | criteo.ads |
In reports, metric names carry a (Channel) suffix to indicate values reported by the platform. App installs are stored as the platform conversion count and appear in reports as the Conversions (Channel) metric. Criteo's sales and revenue figures (SalesAllClientAttribution, RevenueGeneratedAllClientAttribution) are also received and stored, but they are not yet available as report metrics.
Because the last 30 days are re-fetched every cycle, installs that Criteo updates later are aligned to the latest values. The first collection covers the same range (D-30 to D-1).
About currency
adstage requests Criteo reports in KRW. If your Criteo advertiser is billed in another currency, the amounts arrive as converted by Criteo and may differ from what the Criteo console displays.
6. Conversion Sending and Tracking Links
Conversion sending is not supported. Criteo does not publicly document a postback specification for measurement providers to send back conversions such as installs and purchases, and its published app event specification is intended for mobile data partners that work with Criteo directly. This will open once adstage partners with Criteo. There is no Criteo preset in the network postback settings either.
There is no Criteo tracking link template yet. To receive clicks in adstage, create a custom link and enter criteo as the channel. It is reported under criteo.ads, the same channel as the cost data. If you use exactly the same campaign name as in Criteo, cost and clicks/conversions are combined into a single row.
7. Cautions
Please note the following.
- Numbers may differ between Criteo and adstage due to differences in aggregation timing, timezone, currency conversion, and attribution rules.
- Access is tied to the user who allowed it. When the person in charge changes, the new person must allow access again.
- The Criteo API limits requests to 10 per minute per consenting account, so collection runs one advertiser at a time and may take longer when many advertisers are connected.
8. Troubleshooting
The advertiser selection dialog is empty or does not open
- Check the selection: approving without selecting an advertiser on the consent page shows "No Criteo advertisers were shared"
- Check permissions: if the Criteo user is not an admin or business manager of the advertiser, no advertisers are available to share
- Check the pop-up blocker: if you see "The Criteo sign-in window was blocked", allow pop-ups and try again
The status is Failed
- Read the summary: if hovering shows "Authentication failed", access has expired or been revoked, so allow access again with
Allow access in Criteo - Check the grantor: confirm the person who allowed access has not left the advertiser or changed roles
- Temporary errors: "Temporary error at the platform; it will retry automatically" needs no action and is retried in the next cycle
The status is Success but there is no data
- Check delivery: confirm that ads are actually being served and charged in Criteo
- Check the range: the range is D-30 to D-1, so a campaign started today appears from tomorrow's collection
- Check the warning: if the ⚠️ warning appears, check the integration and contact the adstage support team if it does not clear
9. FAQ
Q. Do I need to create an API key in the Criteo console?
No. You only need to allow access on the consent page. There is no field in adstage for a key or token.
Q. Can I connect several advertisers at once?
Yes. Share several advertisers on the consent page, then use Select All in the advertiser selection dialog or pick only the ones you need. An account is created for each advertiser.
Q. What happens if the person who allowed access leaves the company?
Criteo revokes the access and the status changes to Failed. Another person with the required permissions should run Allow access in Criteo again.
Q. Where do I revoke adstage's access?
According to Criteo's documentation, the Criteo consent dashboard lists the apps you have authorized with their permissions and dates and lets you revoke access. For the exact menu location, contact your Criteo representative.
10. References
- Criteo API — OAuth App: Authorization Code flow — consent URL, access lifetime (6 months), revocation conditions
- Criteo API — Authorization Requests — roles that can approve, the Access request page, revoking access
- Criteo API — Consent URL generation — sharing the consent request with an advertiser admin or business manager
- Criteo Marketing Solutions — Campaign Statistics — metric definitions, currency and timezone parameters
- Criteo Mobile Endpoint Specification — app event specification for mobile data partners (basis for "conversion sending not supported")

