Taboola offers multiple integration options to extend your native advertising capabilities and connect with other marketing platforms. This guide covers Taboola Pixel implementation, platform integrations, and partner connections.
Taboola Pixel Integration
The Taboola Pixel is the foundation for all Taboola integrations, enabling conversion tracking, audience building, and campaign optimization.
Standard Pixel Implementation
<script type="text/javascript">
window._tfa = window._tfa || [];
window._tfa.push({notify: 'event', name: 'page_view', id: YOUR_ACCOUNT_ID});
!function (t, f, a, x) {
if (!document.getElementById(x)) {
t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);
}
}(document.createElement('script'),
document.getElementsByTagName('script')[0],
'//cdn.taboola.com/libtrc/unip/YOUR_ACCOUNT_ID/tfa.js',
'tb_tfa_script');
</script>
Enhanced Pixel with User Identification
window._tfa = window._tfa || [];
window._tfa.push({
notify: 'event',
name: 'page_view',
id: YOUR_ACCOUNT_ID
});
// Add user identification
window._tfa.push({
notify: 'action',
name: 'user_id',
id: YOUR_ACCOUNT_ID,
user_id: 'USER_12345'
});
E-commerce Platform Integrations
Shopify Integration
Taboola offers a native Shopify app for simplified implementation.
Installation Steps:
- Install the Taboola Pixel app from Shopify App Store
- Connect your Taboola Ads account
- Configure automatic conversion tracking
- Pixel is automatically deployed across all pages
Features:
- Automatic pixel installation
- Purchase event tracking without code
- Product catalog sync
- Dynamic remarketing support
WooCommerce Integration
Installation via Plugin:
- Download Taboola for WooCommerce plugin
- Install and activate in WordPress admin
- Navigate to Settings > Taboola
- Enter your Taboola Account ID
- Configure event tracking options
Manual Implementation:
<!-- Add to functions.php or header.php -->
<?php
function add_taboola_pixel() {
$account_id = 'YOUR_ACCOUNT_ID';
?>
<script type="text/javascript">
window._tfa = window._tfa || [];
window._tfa.push({notify: 'event', name: 'page_view', id: <?php echo $account_id; ?>});
!function (t, f, a, x) {
if (!document.getElementById(x)) {
t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);
}
}(document.createElement('script'),
document.getElementsByTagName('script')[0],
'//cdn.taboola.com/libtrc/unip/<?php echo $account_id; ?>/tfa.js',
'tb_tfa_script');
</script>
<?php
}
add_action('wp_head', 'add_taboola_pixel');
?>
Magento Integration
<!-- app/design/frontend/[theme]/Magento_Theme/templates/taboola/pixel.phtml -->
<script type="text/javascript">
window._tfa = window._tfa || [];
window._tfa.push({
notify: 'event',
name: 'page_view',
id: '<?php echo $block->getAccountId(); ?>'
});
!function (t, f, a, x) {
if (!document.getElementById(x)) {
t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);
}
}(document.createElement('script'),
document.getElementsByTagName('script')[0],
'//cdn.taboola.com/libtrc/unip/<?php echo $block->getAccountId(); ?>/tfa.js',
'tb_tfa_script');
</script>
BigCommerce Integration
Native integration available through BigCommerce's app marketplace.
Setup:
- Go to Apps > Marketplace
- Search for "Taboola Pixel"
- Click Install
- Enter Taboola Account ID
- Configure conversion tracking
Tag Management Integrations
Google Tag Manager
Taboola Pixel Template:
- Add Custom HTML tag in GTM
- Configure Taboola Pixel code
- Set up triggers for different page types
- Map data layer variables to Taboola parameters
Data Layer Integration:
<script>
dataLayer.push({
event: 'taboola_conversion',
taboola_account_id: 'YOUR_ACCOUNT_ID',
revenue: 99.99,
currency: 'USD',
order_id: 'ORDER_12345'
});
</script>
GTM Tag Configuration:
<!-- Custom HTML Tag -->
<script type="text/javascript">
window._tfa = window._tfa || [];
window._tfa.push({
notify: 'event',
name: 'make_purchase',
id: {{Taboola Account ID}},
revenue: {{Transaction Revenue}},
currency: {{Currency Code}},
order_id: {{Order ID}}
});
</script>
Recommended Triggers:
- Page View - All Pages (base pixel)
- Purchase Confirmation - Transaction Complete
- Add to Cart - Product Added
- Custom Event - Lead Submission
Adobe Launch (Adobe Experience Platform Tags)
Configure Taboola extension:
- Install Custom Code extension
- Create Taboola Pixel rule
- Configure data elements for conversion values
- Map Adobe data layer to Taboola events
Example Rule:
// Adobe Launch Custom Code
var accountId = _satellite.getVar('Taboola Account ID');
var revenue = _satellite.getVar('Order Total');
window._tfa = window._tfa || [];
window._tfa.push({
notify: 'event',
name: 'make_purchase',
id: accountId,
revenue: revenue,
currency: 'USD'
});
Tealium
Taboola Tag Configuration:
- Add Taboola Pixel tag template
- Configure account mapping
- Set up event mappings
- Enable universal data layer pass-through
Tag Configuration:
// Tealium utag configuration
window._tfa = window._tfa || [];
window._tfa.push({
notify: 'event',
name: utag_data.event_name,
id: utag_data.taboola_account_id,
revenue: utag_data.order_total,
currency: utag_data.currency_code
});
Segment
Taboola Destination Setup:
- Navigate to Connections > Catalog
- Search for Taboola (or use custom destination)
- Configure account credentials
- Map Segment events to Taboola events
Event Mapping:
// Segment analytics.js
analytics.track('Order Completed', {
orderId: 'ORDER_123',
total: 99.99,
currency: 'USD',
products: [
{ id: 'PROD_1', price: 49.99, quantity: 1 },
{ id: 'PROD_2', price: 50.00, quantity: 1 }
]
});
// Maps to Taboola conversion event
Analytics Platform Integrations
Google Analytics Integration
Track Taboola campaign performance in Google Analytics:
// Add Taboola UTM parameters to landing pages
const taboolaUtmParams = {
utm_source: 'taboola',
utm_medium: 'native',
utm_campaign: 'campaign_name'
};
// Taboola automatically appends these when configured
// in Backstage campaign settings
Cross-Platform Tracking:
// Track Taboola conversions in GA4
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'purchase',
ecommerce: {
transaction_id: orderId,
affiliation: 'Taboola',
value: revenue,
currency: 'USD',
items: items
}
});
// Also send to Taboola
window._tfa.push({
notify: 'event',
name: 'make_purchase',
id: TABOOLA_ACCOUNT_ID,
revenue: revenue,
currency: 'USD',
order_id: orderId
});
Adobe Analytics Integration
// Custom Taboola dimension tracking
s.eVar60 = "taboola_campaign_id";
s.eVar61 = "taboola_site_id";
s.eVar62 = "taboola_click_id";
s.events = "event40"; // Taboola conversion event
s.t(); // Send beacon
Mixpanel Integration
// Track Taboola conversions in Mixpanel
mixpanel.track('Purchase', {
source: 'Taboola',
campaign_id: taboolaCampaignId,
revenue: orderTotal,
currency: 'USD'
});
// Parallel Taboola tracking
window._tfa.push({
notify: 'event',
name: 'make_purchase',
id: TABOOLA_ACCOUNT_ID,
revenue: orderTotal,
currency: 'USD'
});
CRM Integrations
Salesforce Integration
Sync customer data for enhanced targeting:
// Customer audience sync via API
const syncToTaboola = async (customerData) => {
const response = await fetch('https://backstage.taboola.com/backstage/api/1.0/audiences', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Salesforce High Value Customers',
description: 'Customers with LTV > $1000',
users: customerData.map(c => ({ email: c.email }))
})
});
return response.json();
};
HubSpot Integration
Connect via Taboola's HubSpot integration:
- Navigate to HubSpot App Marketplace
- Install Taboola integration
- Authenticate Taboola Ads account
- Select contact lists for audience sync
- Configure sync frequency and mapping
Webhook Integration:
// HubSpot webhook to Taboola
const hubspotWebhook = {
url: 'https://backstage.taboola.com/backstage/api/1.0/webhook',
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: {
event: 'contact.created',
email: '{{contact.email}}',
lifecycle_stage: '{{contact.lifecyclestage}}'
}
};
Marketo Integration
Use Marketo webhooks to sync audiences:
{
"webhook_url": "https://backstage.taboola.com/backstage/api/1.0/audiences/webhook",
"method": "POST",
"template": {
"account_id": "{{my.taboola_account}}",
"email": "{{lead.Email}}",
"customer_id": "{{lead.Id}}",
"lead_score": "{{lead.Score}}"
}
}
API Integrations
Taboola Backstage API
Programmatic campaign management:
import requests
import json
# Authentication
auth_url = "https://backstage.taboola.com/backstage/oauth/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://backstage.taboola.com/backstage/api/1.0/advertisers/YOUR_ACCOUNT/campaigns"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
campaign_data = {
"name": "Q4 Native Campaign",
"branding_text": "Your Brand",
"cpc": 0.50,
"spending_limit": 5000,
"spending_limit_model": "MONTHLY",
"marketing_objective": "DRIVE_WEBSITE_TRAFFIC"
}
campaign_response = requests.post(campaign_url, headers=headers, json=campaign_data)
print(campaign_response.json())
Reporting API Integration
// Fetch campaign statistics
const fetchTaboolaStats = async () => {
const response = await fetch('https://backstage.taboola.com/backstage/api/1.0/advertisers/YOUR_ACCOUNT/reports/campaign-summary/dimensions/campaign_day_breakdown', {
method: 'GET',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();
return data.results;
};
// Example response processing
fetchTaboolaStats().then(stats => {
stats.forEach(day => {
console.log(`Date: ${day.date}`);
console.log(`Clicks: ${day.clicks}`);
console.log(`Impressions: ${day.impressions}`);
console.log(`CTR: ${day.ctr}`);
console.log(`CPC: ${day.cpc}`);
console.log(`Spent: ${day.spent}`);
});
});
Content Management System Integrations
WordPress Integration
Using Plugin:
- Install "Taboola for WordPress" plugin
- Activate and navigate to settings
- Enter Taboola Account ID
- Configure widget placement options
- Enable conversion tracking
Manual Integration:
<!-- Add to theme's header.php -->
<?php
function taboola_pixel_code() {
if (is_singular('post') || is_page()) {
?>
<script type="text/javascript">
window._tfa = window._tfa || [];
window._tfa.push({
notify: 'event',
name: 'page_view',
id: <?php echo get_option('taboola_account_id'); ?>
});
!function (t, f, a, x) {
if (!document.getElementById(x)) {
t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);
}
}(document.createElement('script'),
document.getElementsByTagName('script')[0],
'//cdn.taboola.com/libtrc/unip/<?php echo get_option('taboola_account_id'); ?>/tfa.js',
'tb_tfa_script');
</script>
<?php
}
}
add_action('wp_head', 'taboola_pixel_code');
?>
Drupal Integration
Module Installation:
- Download Taboola module for Drupal
- Install via Extend > Install new module
- Configure at Configuration > Taboola
- Set Account ID and tracking options
Joomla Integration
<!-- Add to template index.php -->
<?php
$taboolaAccountId = $this->params->get('taboola_account_id');
if ($taboolaAccountId):
?>
<script type="text/javascript">
window._tfa = window._tfa || [];
window._tfa.push({notify: 'event', name: 'page_view', id: <?php echo $taboolaAccountId; ?>});
!function (t, f, a, x) {
if (!document.getElementById(x)) {
t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);
}
}(document.createElement('script'),
document.getElementsByTagName('script')[0],
'//cdn.taboola.com/libtrc/unip/<?php echo $taboolaAccountId; ?>/tfa.js',
'tb_tfa_script');
</script>
<?php endif; ?>
Custom Audience Integrations
Email List Upload
# CSV format for customer list upload
email,user_id
user1@example.com,CUST001
user2@example.com,CUST002
# Upload via Backstage UI
# Navigate to: Audiences > Create Audience > Upload List
API Upload:
import requests
def upload_audience(access_token, account_id, emails):
url = f"https://backstage.taboola.com/backstage/api/1.0/advertisers/{account_id}/audiences"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
payload = {
"name": "Email List Upload",
"description": "Customer email list",
"users": [{"email": email} for email in emails]
}
response = requests.post(url, headers=headers, json=payload)
return response.json()
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');
}
// Send hashed email to Taboola
window._tfa.push({
notify: 'action',
name: 'user_id',
id: TABOOLA_ACCOUNT_ID,
user_id: hashEmail("user@example.com")
});
Mobile App Integration
iOS SDK Integration
import TaboolaSDK
// Initialize Taboola SDK
TaboolaSDK.shared.initialize(
publisherId: "YOUR_PUBLISHER_ID",
apiKey: "YOUR_API_KEY"
)
// Track conversion event
TaboolaSDK.shared.trackEvent(
name: "purchase",
properties: [
"revenue": 99.99,
"currency": "USD",
"order_id": "ORDER_12345"
]
)
Android SDK Integration
import com.taboola.android.sdk.TaboolaSDK
// Initialize SDK
TaboolaSDK.init(
context = applicationContext,
publisherId = "YOUR_PUBLISHER_ID",
apiKey = "YOUR_API_KEY"
)
// Track conversion
TaboolaSDK.trackEvent(
"purchase",
mapOf(
"revenue" to 99.99,
"currency" to "USD",
"order_id" to "ORDER_12345"
)
)
Troubleshooting Integrations
Pixel Verification
Test pixel implementation:
// Check if Taboola pixel is loaded
console.log(window._tfa);
// Verify events are firing
if (window._tfa && window._tfa.length > 0) {
console.log('Taboola events:', window._tfa);
} else {
console.error('Taboola pixel not loading correctly');
}
Integration Health Monitoring
Monitor integration status in Taboola Backstage:
- Navigate to Tracking > Pixel
- Check pixel status for each domain
- Review recent conversion events
- Address any error notifications
Common Issues:
- Pixel not firing - Check script placement and async loading
- Conversions not tracking - Verify event parameters and account ID
- Duplicate events - Implement event deduplication
- Missing user identification - Check user_id implementation
Best Practices
- Event Consistency - Use consistent event naming across all integrations
- User Privacy - Hash personal information before sending to Taboola
- Testing - Test integrations in staging environment before production
- Monitoring - Set up alerts for pixel failures and integration errors
- Documentation - Maintain internal documentation of custom integrations
- Data Quality - Validate conversion data accuracy regularly
- Performance - Load Taboola pixel asynchronously to avoid blocking page render