API Reference

Complete reference for the window.TrafficCampaign API and the digitalData schema.

Methods

MethodReturnsDescription
getDigitalData()ObjectFull digitalData object with traffic, campaigns, UTMs
isAvailable()booleanWhether digitalData has been populated
getParams()ObjectRaw UTM parameters only
refresh()Promise<Object>Force re-fetch from Service Worker
sendToGA(id)voidPush traffic data to Google Analytics
enableDebug()voidEnable console debug logging
diagnose()Promise<Object>SW health check + data dump

getDigitalData()

const data = TrafficCampaign.getDigitalData();

// Returns:
{
  trafficDetail: {
    source: "google",
    medium: "cpc",
    campaign: "spring_sale",
    channel: "Paid Search",
    provider: "googleAds"
  },
  campaigns: {
    campaignProvider: {
      provider: "googleAds",
      parameter: "gclid",
      value: "abc123..."
    },
    isCampaign: true
  },
  params: {
    utm_source: "google",
    utm_medium: "cpc",
    gclid: "abc123..."
  }
}

sendToGA(measurementId)

// Pushes campaign data to Google Analytics 4
TrafficCampaign.sendToGA('G-XXXXXXXXXX');

// This fires:
gtag('event', 'campaign_detected', {
  traffic_source: "google",
  traffic_medium: "cpc",
  send_to: 'G-XXXXXXXXXX'
});

Events

// Listen for when digitalData is ready
window.addEventListener('trafficcampaign:ready', (e) => {
  const digitalData = e.detail;
  console.log('Source:', digitalData.trafficDetail.source);
  console.log('Channel:', digitalData.trafficDetail.channel);
});

Window Globals

GlobalTypeDescription
window.__PRESERVED_DIGITALDATA__ObjectFull digitalData (UTMs, traffic, campaigns)
window.__DIGITALDATA_TIMESTAMP__numberUnix timestamp when data was processed
window.__DIGITALDATA_SOURCE__string"service-worker" or "fallback"
window.TrafficCampaignObjectPublic SDK API

digitalData Schema

The SDK follows the Event-Driven Data Layer (EDDL) pattern. The digitalData object is vendor-agnostic and can be consumed by any analytics tool (GA4, Adobe, Piwik, etc).

trafficDetail

FieldTypeExampleDescription
sourcestring"google"Traffic origin
mediumstring"cpc"Marketing channel type
campaignstring"spring_sale"Campaign name
channelstring"Paid Search"Grouped channel classification
providerstring"googleAds"Ad platform (60+ supported)

Supported Ad Platforms (60+)

Search & Display

  • Google Ads (gclid)
  • Microsoft Ads (msclkid)
  • Criteo, Taboola, Outbrain

Social

  • Meta/Facebook (fbclid)
  • TikTok (ttclid)
  • Pinterest, Snapchat, Reddit, LinkedIn

Deep Dive