DV360 Event Tracking | Blue Frog Docs

DV360 Event Tracking

Complete guide to DV360 Floodlight conversion and event tracking

DV360 Event Tracking

Overview

DV360 (Display & Video 360) uses Google's Floodlight tracking system to measure conversions and user interactions. Floodlight tags are implemented via Campaign Manager 360 (CM360) and shared across Google Marketing Platform properties. This enterprise-grade tracking solution provides robust attribution, cross-device measurement, and advanced audience targeting capabilities.

Standard Events

Floodlight supports two primary activity types:

Counter Activities

Track single-instance conversions where only one conversion per user session is counted.

  • Page View - Website page visits
  • Lead Submission - Form completions
  • Download - File or app downloads
  • Sign Up - Account registrations
  • Video View - Video completion events
  • Click-Through - Specific button or link clicks

Sales Activities

Track revenue-generating events with transaction values and quantities.

  • Purchase - Ecommerce transactions
  • Order - Order confirmations
  • Revenue - Revenue events with dynamic values
  • Subscription - Recurring subscription conversions

Each activity requires:

  • Activity Group - Organizational container
  • Activity Tag String - Unique identifier (cat parameter)
  • Expected URL - Landing page URL for verification

Custom Events

Creating Custom Floodlight Activities

  1. Navigate to Floodlight Configuration in CM360
  2. Click New Activity
  3. Select activity type (Counter or Sales)
  4. Configure parameters:
    • Activity name
    • Tag string (unique identifier)
    • Counting method (Standard, Unique, Per Session)
    • Attribution window (click and impression)
    • Dynamic tags (optional custom parameters)

Custom Variables

Floodlight supports up to 100 custom Floodlight variables (u1-u100):

<script>
gtag('event', 'conversion', {
  'allow_custom_scripts': true,
  'u1': 'product_category',
  'u2': 'user_segment',
  'u3': 'campaign_id',
  'send_to': 'DC-XXXXXXX/activ0/tagst0+standard'
});
</script>

Custom variable uses:

  • Product categories
  • User segments
  • Custom attribution data
  • Campaign tracking parameters
  • A/B test variants

Ecommerce Events

Sales Activity Implementation

For revenue tracking, implement Sales activities with dynamic parameters:

<!-- Global Site Tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=DC-XXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'DC-XXXXXXX');
</script>

<!-- Event Snippet for Purchase -->
<script>
gtag('event', 'conversion', {
  'allow_custom_scripts': true,
  'send_to': 'DC-XXXXXXX/sales/purchase+transactions',
  'value': 99.99,
  'transaction_id': 'ORDER_12345',
  'u1': '[Product_Category]',
  'u2': '[Product_SKU]',
  'u3': '[Quantity]',
  'u4': '[Coupon_Code]',
  'u5': '[Customer_Type]'
});
</script>

Required Ecommerce Parameters

  • value - Transaction revenue (required for Sales activities)
  • transaction_id - Unique order ID for deduplication
  • quantity - Number of items (optional, via custom variable)
  • currency - Set at Floodlight configuration level

Cart Events

Create separate Counter activities for:

  • Add to Cart - Track cart additions
  • Begin Checkout - Checkout initiation
  • Add Payment Info - Payment method selection

Conversion Tracking

Implementation Methods

1. Global Site Tag (gtag.js)

Recommended for modern implementations:

<!-- Global Site Tag -->
<script async src="https://www.googletagmanager.com/gtag/js?id=DC-XXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'DC-XXXXXXX');
</script>

<!-- Conversion Event -->
<script>
gtag('event', 'conversion', {
  'allow_custom_scripts': true,
  'send_to': 'DC-XXXXXXX/group/activity+counter'
});
</script>

2. Google Tag Manager

Implement via GTM for centralized tag management:

  • Create CM360 Floodlight Counter or Sales tag
  • Configure Activity Tag String and Group Tag String
  • Set up triggers based on events
  • Add custom Floodlight variables as needed

3. Image Pixel (Legacy)

Fallback method for environments without JavaScript:

<img src="https://ad.doubleclick.net/ddm/activity/src=XXXXXXX;type=group;cat=activity;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;npa=;ord=1?" width="1" height="1" alt=""/>

Enhanced Conversions

Enable enhanced conversions for improved attribution by passing hashed user data:

gtag('event', 'conversion', {
  'allow_custom_scripts': true,
  'send_to': 'DC-XXXXXXX/group/activity+counter',
  'enhanced_conversion_data': {
    'email': 'user@example.com',
    'phone_number': '+15551234567',
    'first_name': 'John',
    'last_name': 'Doe',
    'home_address': {
      'street': '123 Main St',
      'city': 'New York',
      'region': 'NY',
      'postal_code': '10001',
      'country': 'US'
    }
  }
});

Offline Conversions

Conversion Upload Methods

1. Campaign Manager 360 UI Upload

  • Navigate to Advertiser > Conversions > Offline Conversions
  • Upload CSV file with required fields:
    • Floodlight Configuration ID
    • Activity ID
    • Conversion timestamp
    • Quantity (for Sales activities)
    • Value (for Sales activities)
    • User identifiers (GCLID, DCLID, or match ID)

2. Campaign Manager 360 API

Automate offline conversion imports via API:

# Example using CM360 API
from googleapiclient.discovery import build

service = build('dfareporting', 'v4', credentials=credentials)

conversion = {
  'floodlightConfigurationId': 'XXXXXXX',
  'floodlightActivityId': 'XXXXXXX',
  'ordinal': '1',
  'timestampMicros': '1640000000000000',
  'value': 99.99,
  'quantity': 1,
  'gclid': 'click_id_here'
}

request = service.conversions().batchinsert(
  profileId='XXXXXXX',
  body={'conversions': [conversion]}
)
response = request.execute()

3. Server-Side Floodlight

Implement server-to-server tracking for backend conversions:

https://ad.doubleclick.net/ddm/activity/src=XXXXXXX;type=group;cat=activity;qty=1;cost=99.99;ord=[OrderID];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;npa=;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_755};

Match ID Implementation

For CRM integration, implement match IDs to connect offline conversions:

gtag('set', {'dc_match_id': 'USER_CRM_ID_12345'});

Upload conversions with matching CRM IDs via CM360.

Attribution

Attribution Models

DV360 Floodlight supports multiple attribution models:

Path-Based Attribution

  • Last Interaction - 100% credit to last click/impression
  • First Interaction - 100% credit to first click/impression
  • Linear - Equal credit across all touchpoints
  • Time Decay - More credit to recent interactions
  • Position Based - 40% first, 40% last, 20% middle
  • Data-Driven - Algorithmic attribution based on conversion data

Configure in DV360 > Resources > Floodlight > Attribution Settings

Attribution Windows

Set custom lookback windows:

  • Click window - 1-90 days (default: 30 days)
  • Impression window - 1-90 days (default: 1 day)
  • Engaged view window - Active View impressions (default: 1 day)

Cross-Environment Attribution

Floodlight provides:

  • Cross-device attribution - Unified user measurement across devices
  • Cross-browser tracking - Via Google signals
  • App and web attribution - Combined mobile app and web conversions

Debugging & Validation

Floodlight Debugger Chrome Extension

Install the Campaign Manager 360 Floodlight Debugger extension:

  1. Visit page with Floodlight tags
  2. Open extension to view:
    • Floodlight requests fired
    • Activity and group tag strings
    • Custom variables (u1-u100)
    • Revenue and quantity values
    • Error messages

Tag Assistant

Use Google Tag Assistant to validate:

  • Global Site Tag implementation
  • gtag.js configuration
  • Event firing on correct triggers
  • Parameter passing accuracy

CM360 Reporting

Verify conversions in Campaign Manager 360:

  1. Floodlight > Floodlight Reports
  2. Create report with dimensions:
    • Activity
    • Activity ID
    • Date
  3. Add metrics:
    • Click-through Conversions
    • View-through Conversions
    • Total Conversions
    • Revenue

Real-Time Validation

Check recent conversions in CM360:

  • Navigate to Advertiser > Conversions > Recent Conversions
  • View conversions from last 24 hours
  • Verify custom variable values
  • Confirm revenue amounts

Common Issues

Tag not firing:

  • Verify DC-XXXXXXX ID matches Floodlight Configuration
  • Check browser console for JavaScript errors
  • Confirm tag placement in <head> or before </body>

Conversions not reporting:

  • Check attribution windows
  • Verify user clicked or viewed DV360 ad
  • Confirm Floodlight activity is active in CM360

Revenue not tracking:

  • Ensure Sales activity type is used
  • Verify 'value' parameter is numeric
  • Check decimal formatting (use period, not comma)

Best Practices

Implementation

  1. Use Global Site Tag (gtag.js) for all new implementations
  2. Implement via Google Tag Manager for easier management
  3. Set unique transaction IDs to prevent duplicate conversions
  4. Use Counter activities for non-revenue events
  5. Use Sales activities for revenue events only

Data Quality

  1. Implement enhanced conversions for improved match rates
  2. Pass custom variables for granular reporting (u1-u100)
  3. Use consistent naming conventions for activities
  4. Set appropriate attribution windows based on business model
  5. Regular audit of active Floodlight tags

Organization

  1. Create logical activity groups by funnel stage or product line
  2. Document tag strings and custom variable mapping
  3. Use descriptive activity names for easy identification
  4. Maintain centralized tag documentation for team reference

Privacy & Compliance

  1. Implement consent mode for GDPR compliance
  2. Respect user opt-outs via Global Privacy Control
  3. Hash PII before passing in enhanced conversions
  4. Set tag_for_child_directed_treatment for COPPA compliance
  5. Configure NPA flag for users who opt out of personalization

Performance

  1. Load gtag.js asynchronously to avoid blocking page render
  2. Minimize custom variables to essential data only
  3. Use server-side tracking for backend conversions
  4. Implement tag timeout in GTM (2-4 seconds)

Testing

  1. Test in staging environment before production deployment
  2. Use Floodlight Debugger to verify all parameters
  3. Create test conversion to confirm reporting
  4. Monitor Recent Conversions for 24-48 hours post-launch
  5. Set up automated alerts for conversion volume drops
// SYS.FOOTER