Criteo Integrations | Blue Frog Docs

Criteo Integrations

Learn how to integrate Criteo with product feeds, partner platforms, and third-party tools for enhanced retargeting and advertising campaigns.

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 &gt; Audio &gt; 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

  1. FTP/SFTP Upload - Host feed on Criteo's servers
  2. HTTP/HTTPS URL - Criteo fetches from your server
  3. Google Cloud Storage - Cloud-based feed hosting
  4. 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:

  1. Install the Criteo app from Shopify App Store
  2. Connect your Criteo account
  3. Configure automatic product feed sync
  4. 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:

  1. Download from WordPress plugin repository
  2. Configure account settings
  3. Map product attributes to feed fields
  4. Enable automatic event tracking

BigCommerce Integration

Native integration available through BigCommerce's integration marketplace.

Partner Platform Integrations

Google Merchant Center

Direct feed synchronization:

  1. Link Google Merchant Center account to Criteo
  2. Authorize data sharing
  3. Select target countries and languages
  4. 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:

  1. Add Criteo OneTag tag from Community Template Gallery
  2. Configure account ID variable
  3. Set up event triggers (page view, product view, etc.)
  4. 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:

  1. Install Criteo extension from Adobe Exchange
  2. Configure account credentials
  3. Create rules for event tracking
  4. Map data elements to Criteo fields

Tealium

Criteo Connector Configuration:

  1. Add Criteo tag template
  2. Configure account mapping
  3. Set up event mappings
  4. 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:

  1. Authenticate HubSpot account
  2. Select contact lists for audience sync
  3. Configure sync frequency
  4. 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:

  1. Navigate to Settings > Integrations
  2. Check connection status for each platform
  3. Review sync timestamps
  4. Address any error notifications

Best Practices

  1. Feed Quality - Maintain high-quality product data with complete attributes
  2. Update Frequency - Update feeds at least daily, hourly for fast-moving inventory
  3. User Privacy - Hash email addresses before sending to Criteo
  4. Testing - Test integrations in staging environment before production
  5. Monitoring - Set up alerts for feed failures and integration errors
  6. Documentation - Maintain internal documentation of custom integrations

Next Steps

// SYS.FOOTER