Criteo offers multiple integration options to extend your retargeting capabilities and connect with other marketing platforms. This guide covers OneTag implementation, product feed integrations, and partner platform connections.
Criteo OneTag Integration
The Criteo OneTag is the foundation for all Criteo integrations, enabling cross-device retargeting and audience building.
Standard OneTag Implementation
<script type="text/javascript" src="//dynamic.criteo.com/js/ld/ld.js" async="true"></script>
<script type="text/javascript">
window.criteo_q = window.criteo_q || [];
var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
window.criteo_q.push(
{ event: "setAccount", account: YOUR_ACCOUNT_ID },
{ event: "setEmail", email: "" },
{ event: "setSiteType", type: deviceType },
{ event: "viewItem", item: "PRODUCT_ID" }
);
</script>
Enhanced OneTag with User Identification
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{ event: "setAccount", account: 12345 },
{ event: "setEmail", email: "user@example.com", hash_method: "sha256" },
{ event: "setHashedEmail", email: "hashed_email_string" },
{ event: "setSiteType", type: deviceType },
{ event: "viewHome" }
);
Product Feed Integration
Product feeds provide Criteo with up-to-date product information for dynamic retargeting ads.
Feed Formats
Criteo supports multiple feed formats:
- XML - Recommended for most implementations
- CSV - Alternative format with tab or comma delimiters
- JSON - Supported for programmatic feeds
- Google Merchant Center - Direct integration available
XML Feed Structure
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<id>PROD123</id>
<title>Premium Wireless Headphones</title>
<description>High-quality wireless headphones with noise cancellation</description>
<link>https://example.com/products/headphones</link>
<image_link>https://example.com/images/headphones.jpg</image_link>
<additional_image_link>https://example.com/images/headphones-2.jpg</additional_image_link>
<price>299.99 USD</price>
<sale_price>249.99 USD</sale_price>
<availability>in stock</availability>
<brand>AudioBrand</brand>
<gtin>1234567890123</gtin>
<mpn>WH-1000XM4</mpn>
<condition>new</condition>
<category>Electronics > Audio > Headphones</category>
</product>
</products>
CSV Feed Format
id,title,description,link,image_link,price,availability,brand,category
PROD123,"Premium Wireless Headphones","High-quality wireless headphones","https://example.com/products/headphones","https://example.com/images/headphones.jpg","299.99 USD","in stock","AudioBrand","Electronics > Audio > Headphones"
Feed Hosting Options
- FTP/SFTP Upload - Host feed on Criteo's servers
- HTTP/HTTPS URL - Criteo fetches from your server
- Google Cloud Storage - Cloud-based feed hosting
- Amazon S3 - AWS-based feed delivery
Feed Update Frequency
- Daily updates - Recommended minimum
- Multiple daily updates - For frequently changing inventory
- Real-time updates - Via API for high-velocity businesses
E-commerce Platform Integrations
Shopify Integration
Criteo offers a native Shopify app for simplified implementation.
Installation Steps:
- Install the Criteo app from Shopify App Store
- Connect your Criteo account
- Configure automatic product feed sync
- OneTag is automatically deployed
Features:
- Automatic product feed generation
- OneTag auto-installation
- Event tracking without code
- Real-time inventory sync
Magento Integration
<!-- app/design/frontend/[theme]/default/template/criteo/onetag.phtml -->
<script type="text/javascript" src="//dynamic.criteo.com/js/ld/ld.js" async="true"></script>
<script type="text/javascript">
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{ event: "setAccount", account: <?php echo $this->getAccountId(); ?> },
{ event: "setSiteType", type: "<?php echo $this->getDeviceType(); ?>" },
<?php echo $this->getCriteoEvent(); ?>
);
</script>
WooCommerce Integration
Install the official Criteo plugin:
- Download from WordPress plugin repository
- Configure account settings
- Map product attributes to feed fields
- Enable automatic event tracking
BigCommerce Integration
Native integration available through BigCommerce's integration marketplace.
Partner Platform Integrations
Google Merchant Center
Direct feed synchronization:
- Link Google Merchant Center account to Criteo
- Authorize data sharing
- Select target countries and languages
- Criteo automatically syncs product data
Benefits:
- Single feed maintenance
- Automatic updates
- Consistent product data across platforms
Facebook Catalog
Sync Criteo product feed with Facebook Product Catalog:
// Share feed URL with both platforms
const feedUrl = "https://example.com/feeds/products.xml";
// Configure in both Criteo and Facebook Business Manager
Google Analytics Integration
Track Criteo campaign performance in Google Analytics:
// Add Criteo UTM parameters
const criteoUtmParams = {
utm_source: "criteo",
utm_medium: "retargeting",
utm_campaign: "dynamic_retargeting"
};
// Criteo will append these automatically when configured
Adobe Analytics Integration
// Custom Criteo dimension tracking
s.eVar50 = "criteo_campaign_id";
s.eVar51 = "criteo_banner_id";
s.events = "event30"; // Criteo click event
Tag Management Integrations
Google Tag Manager
Criteo OneTag Template:
- Add Criteo OneTag tag from Community Template Gallery
- Configure account ID variable
- Set up event triggers (page view, product view, etc.)
- Map data layer variables to Criteo parameters
Data Layer Integration:
<script>
dataLayer.push({
event: 'criteo_product_view',
criteo_account: '12345',
product_id: 'PROD123',
user_email: 'user@example.com'
});
</script>
Adobe Launch
Configure Criteo extension:
- Install Criteo extension from Adobe Exchange
- Configure account credentials
- Create rules for event tracking
- Map data elements to Criteo fields
Tealium
Criteo Connector Configuration:
- Add Criteo tag template
- Configure account mapping
- Set up event mappings
- Enable data layer pass-through
CRM Integrations
Salesforce Integration
Sync customer data for enhanced retargeting:
// Customer match list sync
POST https://api.criteo.com/v1/audiences/upload
{
"advertiser_id": "12345",
"audience_name": "Salesforce_High_Value_Customers",
"users": [
{"email": "customer1@example.com"},
{"email": "customer2@example.com"}
]
}
HubSpot Integration
Connect via Criteo's HubSpot connector:
- Authenticate HubSpot account
- Select contact lists for audience sync
- Configure sync frequency
- Map custom properties
Marketo Integration
Use Marketo webhooks to sync audiences:
{
"webhook_url": "https://api.criteo.com/v1/audiences/webhook",
"method": "POST",
"template": {
"advertiser_id": "{{my.criteo_account}}",
"email": "{{lead.Email}}",
"customer_id": "{{lead.Id}}"
}
}
API Integrations
Criteo Marketing API
Programmatic campaign management:
import requests
# Authentication
auth_url = "https://api.criteo.com/oauth2/token"
auth_data = {
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"grant_type": "client_credentials"
}
response = requests.post(auth_url, data=auth_data)
access_token = response.json()["access_token"]
# Create campaign
campaign_url = "https://api.criteo.com/2023-04/marketing/campaigns"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
campaign_data = {
"name": "Q4 Retargeting Campaign",
"budget": 5000,
"start_date": "2024-10-01",
"end_date": "2024-12-31"
}
campaign_response = requests.post(campaign_url, headers=headers, json=campaign_data)
Reporting API Integration
// Fetch campaign statistics
const fetchCriteoStats = async () => {
const response = await fetch('https://api.criteo.com/2023-04/statistics/campaigns', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
advertiser_id: '12345',
start_date: '2024-01-01',
end_date: '2024-01-31',
metrics: ['clicks', 'impressions', 'cost', 'sales']
})
});
return await response.json();
};
Custom Audience Integrations
Email List Upload
# CSV format for customer list upload
email,customer_id
user1@example.com,CUST001
user2@example.com,CUST002
# Upload via API
curl -X POST https://api.criteo.com/v1/audiences/upload \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "file=@customer_list.csv" \
-F "advertiser_id=12345"
First-Party Data Onboarding
// Hash emails before sending
const crypto = require('crypto');
function hashEmail(email) {
return crypto
.createHash('sha256')
.update(email.toLowerCase().trim())
.digest('hex');
}
window.criteo_q.push({
event: "setHashedEmail",
email: hashEmail("user@example.com")
});
Troubleshooting Integrations
Feed Validation
Common feed issues:
- Missing required fields - Ensure id, title, link, image_link, price, and availability are present
- Invalid URLs - All links must be absolute URLs with https://
- Incorrect pricing format - Use "99.99 USD" format
- Character encoding - Use UTF-8 encoding
OneTag Verification
Test OneTag implementation:
// Check if OneTag is loaded
console.log(window.criteo_q);
// Verify events are firing
window.criteo_q.forEach(event => console.log(event));
Integration Health Monitoring
Monitor integration status in Criteo Management Center:
- Navigate to Settings > Integrations
- Check connection status for each platform
- Review sync timestamps
- Address any error notifications
Best Practices
- Feed Quality - Maintain high-quality product data with complete attributes
- Update Frequency - Update feeds at least daily, hourly for fast-moving inventory
- User Privacy - Hash email addresses before sending to Criteo
- Testing - Test integrations in staging environment before production
- Monitoring - Set up alerts for feed failures and integration errors
- Documentation - Maintain internal documentation of custom integrations