Adobe Advertising Cloud Data Layer Setup | OpsBlu Docs

Adobe Advertising Cloud Data Layer Setup

How data is structured and prepared before Adobe Advertising Cloud conversion tags and API receive events.

Required Fields

  • Persist conversion-specific parameters: transaction value, order ID, currency, product IDs for e-commerce events.
  • Include Adobe Experience Cloud ID (ECID) for cross-device tracking and visitor identification.
  • Capture conversion tag IDs and advertiser IDs for proper event routing.
  • Normalize e-commerce objects: currency (ISO 4217 code), revenue (decimal), order ID (string), product data.
  • Attach campaign attribution data (AMO ID, utm parameters, click IDs) for proper performance tracking.
  • Include custom parameters (ev1-ev10) for business-specific dimensions and segmentation.

Data Layer Structure for GTM

Use a standard dataLayer push format to trigger Adobe Advertising Cloud conversion tags in Google Tag Manager:

dataLayer.push({
  'event': 'advertising_cloud_conversion',
  'conversion_type': 'purchase',
  'transaction': {
    'order_id': 'ORDER12345',
    'revenue': 149.99,
    'currency': 'USD',
    'products': [
      {
        'product_id': 'SKU_67890',
        'product_name': 'Premium Widget',
        'category': 'Widgets',
        'quantity': 2,
        'price': 74.99
      }
    ]
  },
  'advertising_cloud': {
    'advertiser_id': 'ADVERTISER_ID',
    'conversion_id': 'CONVERSION_ID',
    'custom_params': {
      'ev1': 'customer_segment',
      'ev2': 'purchase_channel',
      'ev3': 'promo_code'
    }
  },
  'visitor': {
    'ecid': 'MCMID|12345678901234567890',
    'email_hash': 'hashed_email_sha256',
    'customer_id': 'CUST_789'
  }
});

Map dataLayer variables to Adobe Advertising Cloud conversion tag parameters in GTM:

  • transaction.order_id → ev_transaction_id
  • transaction.revenue → ev_transaction_value
  • transaction.currency → ev_currency
  • advertising_cloud.advertiser_id → ev_advertiser_id
  • advertising_cloud.conversion_id → ev_conversion_id
  • advertising_cloud.custom_params.ev1 → ev1

Adobe Experience Cloud ID (ECID) Integration

Implement Adobe Experience Cloud ID Service for cross-solution visitor identification:

// Initialize Adobe Experience Cloud ID Service
var visitor = Visitor.getInstance("YOUR_ORG_ID@AdobeOrg", {
  trackingServer: "YOUR_TRACKING_SERVER",
  trackingServerSecure: "YOUR_SECURE_TRACKING_SERVER",
  marketingCloudServer: "YOUR_TRACKING_SERVER",
  marketingCloudServerSecure: "YOUR_SECURE_TRACKING_SERVER"
});

// Retrieve ECID and add to dataLayer
visitor.getMarketingCloudVisitorID(function(ecid) {
  dataLayer.push({
    'visitor_ecid': ecid
  });
});

Benefits of ECID integration:

  • Cross-device conversion tracking across desktop, mobile, and tablet
  • Unified visitor profiles across Adobe Analytics, Advertising Cloud, and other Adobe solutions
  • Improved attribution accuracy for multi-touch customer journeys
  • Enhanced audience activation from Adobe Audience Manager

User Data Hashing

Hash personally identifiable information (PII) before adding to the dataLayer or sending to Advertising Cloud API. Use SHA-256 hashing and normalize data before hashing:

  • Email: Lowercase, trim whitespace, hash with SHA-256.
  • Phone: Remove spaces, dashes, parentheses; use E.164 format (+1234567890); hash with SHA-256.
  • Customer ID: Use your internal ID consistently; hash if contains PII.

Example hashing function (JavaScript):

async function hashSHA256(value) {
  const normalized = value.toLowerCase().trim();
  const encoder = new TextEncoder();
  const data = encoder.encode(normalized);
  const hashBuffer = await crypto.subtle.digest('SHA-256', data);
  const hashArray = Array.from(new Uint8Array(hashBuffer));
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}

// Usage
const emailHash = await hashSHA256(userEmail);

Server-Side API Payload

When sending conversions from your server to Adobe Advertising Cloud API, structure the payload:

{
  "advertiser_id": "ADVERTISER_ID",
  "conversion_id": "CONVERSION_ID",
  "transaction_id": "ORDER12345",
  "transaction_value": 149.99,
  "currency": "USD",
  "timestamp": "2025-01-15T14:30:00Z",
  "visitor_data": {
    "ecid": "MCMID|12345678901234567890",
    "email_hash": "hashed_email_sha256",
    "customer_id": "CUST_789",
    "ip_address": "192.0.2.1",
    "user_agent": "Mozilla/5.0..."
  },
  "product_data": {
    "product_ids": ["SKU_67890"],
    "categories": ["Widgets"],
    "quantity": 2
  },
  "custom_params": {
    "ev1": "customer_segment",
    "ev2": "purchase_channel",
    "ev3": "promo_code"
  },
  "attribution_data": {
    "amo_id": "AMO_CLICK_ID",
    "utm_source": "google",
    "utm_medium": "cpc",
    "utm_campaign": "summer_sale"
  }
}

Adobe Analytics Integration Data

When using Adobe Analytics for Advertising integration, capture additional tracking parameters:

  • AMO ID (s_kwcid): Adobe Media Optimizer click ID for attribution.
  • AMO EF ID: Enhanced tracking ID for cross-channel attribution.
  • Analytics Variables: Map advertising dimensions to eVars (campaign, ad group, keyword, placement).

Data layer structure for Analytics integration:

dataLayer.push({
  'adobe_analytics': {
    'amo_id': 'AMO_CLICK_ID',
    'amo_ef_id': 'AMO_EF_ID',
    'campaign': 'Summer_Sale_2025',
    'ad_group': 'Premium_Widgets',
    'keyword': 'buy premium widget',
    'placement': 'Google_Search'
  }
});

Governance Notes

  • Document how consent modifies the dataLayer structure (e.g., do not send hashed PII if user rejects marketing cookies).
  • Version the dataLayer schema to keep GTM variables, conversion tags, and API payloads aligned after code releases.
  • Maintain a mapping document between your internal dataLayer and Adobe Advertising Cloud required parameters.
  • Establish data retention policies for transaction IDs to support deduplication (30-day window).
  • Coordinate dataLayer updates with Adobe Analytics implementation to maintain consistent tracking.

Validation Steps

  • Check browser developer tools to confirm dataLayer push occurs before conversion tag fires.
  • Use Adobe Experience Cloud Debugger to verify ECID presence and advertising cloud tag parameters.
  • Review Adobe Advertising Cloud Reports to confirm conversion data matches expected values.
  • Use GTM Preview mode to inspect dataLayer contents before and after conversion events.
  • Screenshot dataLayer snapshots and conversion reports for compliance and audit documentation.
  • Test hashing functions with known inputs to confirm SHA-256 output matches expected values.
  • Validate Adobe Analytics integration by checking AMO dimensions in Analysis Workspace.