Symptom Library
- Floodlight tags not firing or conversions missing
- Attribution discrepancies between DV360 and GA4
- Campaign spending issues (underspending or overspending)
- Creative approval delays or rejections
- Audience list sync failures
- Inventory availability constraints
- Frequency capping not working as expected
- Cross-device attribution gaps
Investigation Workflow
Floodlight Issues
- Check Floodlight tag status in Campaign Manager 360
- Use Chrome Developer Tools Network tab to verify tag fires
- Review Floodlight configuration for correct advertiser ID and activity tags
- Verify GTM container deployment if using Tag Manager
- Check attribution windows and conversion counting methodology
- Confirm user consent settings aren't blocking tags
Floodlight Tag Debugging
Open Chrome DevTools and run these console commands to verify Floodlight fires on the current page:
// Check if any Floodlight iframe exists on the page
document.querySelectorAll('iframe[src*="fls.doubleclick.net"]').forEach((el, i) => {
console.log(`Floodlight iframe ${i}:`, el.src);
});
// Check for the _gcl_dc cookie (set by Floodlight for click attribution)
const gclDc = document.cookie.split('; ')
.find(row => row.startsWith('_gcl_dc='));
console.log('_gcl_dc cookie:', gclDc || 'NOT FOUND');
// Check for the _gcl_au cookie (Google Ads linker parameter)
const gclAu = document.cookie.split('; ')
.find(row => row.startsWith('_gcl_au='));
console.log('_gcl_au cookie:', gclAu || 'NOT FOUND');
// List all doubleclick-related network activity in performance entries
performance.getEntriesByType('resource')
.filter(r => r.name.includes('doubleclick.net') || r.name.includes('fls.doubleclick'))
.forEach(r => console.log(`[${r.initiatorType}] ${r.name} (${Math.round(r.duration)}ms)`));
In the Network tab, use these filter patterns to isolate Floodlight traffic:
fls.doubleclick.net-- Floodlight image/iframe requests (conversion pings)ad.doubleclick.net/ddm/activity-- Floodlight activity tags (click-through and view-through)googleads.g.doubleclick.net-- Google Ads remarketing integrationcm.g.doubleclick.net/pixel-- Campaign Manager pixel fires
A healthy Floodlight fire shows a 302 redirect from fls.doubleclick.net to a 1x1 image response. If you see a 403 or no request at all, the tag is blocked by consent management or a misconfigured container.
GTM Floodlight Tag Verification
If Floodlight tags are deployed through Google Tag Manager:
- Open GTM Preview mode and trigger the conversion action.
- In the Tags Fired panel, confirm the Floodlight tag shows "Tag Fired" (not "Tag Not Fired").
- Check the tag configuration for these fields:
- Advertiser ID: Must match the CM360 advertiser, not the DV360 partner ID.
- Group Tag String: Case-sensitive, must match the activity group in CM360 exactly.
- Activity Tag String: Case-sensitive, must match the specific activity in CM360.
- If using
ordornumparameters, verify the counting methodology:ordfor unique conversions (random cache-buster),numfor counting every conversion (sequential counter). - Review the firing trigger -- ensure it fires on the correct page or event, not on every page load.
Attribution Discrepancies
- Compare attribution models between DV360 and GA4
- Review lookback windows (DV360 default: 30-day click, 1-day impression)
- Check for timezone mismatches in reporting
- Verify conversion counting methodology (unique vs. many-per-click)
- Examine cross-device attribution settings
- Review data sampling in GA4 vs. unsampled DV360 data
Attribution Debugging Workflow
When CM360, DV360, and GA4 report different conversion counts, follow this step-by-step process:
Step 1: Establish the data freshness baseline. CM360 Floodlight data is available same-day (within 4-6 hours of the conversion). DV360 reporting uses next-day processing, meaning today's conversions appear tomorrow. GA4 real-time shows events within minutes, but standard reports have 24-48 hour processing delays. Always compare the same completed date range across all three.
Step 2: Align attribution models. Export the CM360 Path to Conversion report and compare to DV360's default last-touch model. If GA4 uses data-driven attribution, the numbers will differ by design. Document each platform's model before comparing.
Step 3: Check cross-environment deduplication. If you run campaigns in multiple DV360 advertisers or CM360 accounts, the same user converting once may be counted once per environment. Use the CM360 Cross-Environment Conversion report to identify overlap. Deduplicate by matching on the gclid or dclid click identifier.
Step 4: Verify conversion windows. A user who clicked a DV360 ad 25 days ago and converted today is counted by DV360 (within 30-day window) but may not be counted by GA4 if its lookback window is set to 7 days.
Step 5: Inspect consent state. In regions with consent requirements, Floodlight tags may fire without cookies if the user declined consent, resulting in conversions visible in CM360 (modeled) but absent from GA4 (which requires first-party cookies).
Campaign Performance Issues
- Check line item pacing settings and flight dates
- Review bid strategy and performance goals
- Verify targeting isn't too narrow (audience, geo, inventory)
- Check inventory availability and bid competitiveness
- Review brand safety and contextual targeting exclusions
- Confirm creative assets are approved and serving
Tools & Logs
- Campaign Manager 360 Floodlight Status Report
- Chrome DevTools Network tab for tag debugging
- GTM Preview mode for tag validation
- DV360 Audit Log for campaign change history
- Floodlight Test Conversion tool
- Google Tag Assistant Chrome extension
- Network Debugger for API troubleshooting
Common Error Messages
"Floodlight activity not found"
- Verify Floodlight configuration is linked to correct advertiser
- Check activity tag string matches exactly
- Confirm activity hasn't been archived or deleted
"Insufficient inventory available"
- Broaden targeting parameters
- Increase bid amounts
- Review inventory source settings
- Check deal ID availability
"Creative rejected"
- Review creative specifications and file size limits
- Check for policy violations (malware, prohibited content)
- Verify landing page is accessible and matches advertiser domain
- Ensure SSL certificate is valid
"No conversion activities found for this advertiser"
- The Floodlight configuration in CM360 is not shared with the DV360 advertiser. Open CM360, navigate to the Floodlight configuration, and add the DV360 advertiser ID under "Advertisers with access."
- If the advertiser was recently created, wait 2-4 hours for the link to propagate.
- Confirm you are looking at the correct CM360 account; the advertiser ID in DV360 (visible under Advertiser Settings) must match an advertiser in the linked CM360 account.
"Advertiser ID mismatch between CM360 and DV360"
- Each DV360 advertiser maps to exactly one CM360 advertiser. If you see this error, the DV360 advertiser was linked to a different CM360 advertiser than the one containing your Floodlight activities.
- To fix: open the DV360 advertiser's General Settings, note the CM360 Advertiser ID, then verify your Floodlight activities exist under that specific CM360 advertiser.
"Bid strategy conflict: cannot use target CPA with awareness campaigns"
- DV360 does not allow target CPA or target ROAS bid strategies on campaigns with awareness objectives (e.g., video view campaigns or reach-optimized display).
- Switch the bid strategy to "Maximize clicks" or "Fixed CPM" for awareness campaigns.
- If you need CPA optimization, change the campaign objective to "Drive conversions" and reassign the Floodlight activity as the conversion goal.
"Third-party verification tag timeout"
- Third-party verification tags (IAS, DoubleVerify, MOAT) must respond within 1 second or DV360 drops the impression.
- Check the verification vendor's status page for outages.
- Test the tag URL directly:
curl -o /dev/null -s -w '%{time_total}' "https://your-verification-tag-url". If response time exceeds 500ms, contact the vendor. - As a temporary workaround, switch to "Monitor only" mode (instead of blocking) to prevent lost impressions while the vendor resolves latency.
"Data transfer file not received"
- DV360 Data Transfer files are delivered to your Google Cloud Storage bucket on a 24-hour schedule. Files for day N arrive by 3:00 AM PST on day N+1.
- Verify the GCS bucket name and permissions: the DV360 service account needs
storage.objects.createpermission on the bucket. - Check that the Data Transfer feature is enabled in the DV360 partner settings (it requires a contract amendment for some accounts).
- Look for partial files: if the transfer was interrupted, you may see files with a
.partialextension. These will be replaced on the next run.
API Error: PERMISSION_DENIED
- The service account or OAuth user does not have the required role on the DV360 resource. For read operations, assign "Reporting Only" access. For write operations, assign "Standard" or "Admin" at the advertiser or partner level.
- Check that the API is enabled in the Google Cloud project: navigate to APIs & Services and confirm "Display & Video 360 API" is enabled.
- If using domain-wide delegation, verify the OAuth scope
https://www.googleapis.com/auth/display-videois authorized in the Google Workspace admin console.
API Error: RESOURCE_EXHAUSTED
- You have exceeded the DV360 API quota. Default limits are 15,000 requests per day per project and 5 queries per second (QPS).
- Implement exponential backoff: wait 1s, then 2s, then 4s between retries.
- Batch operations where possible -- use the
advertisers.lineItems.bulkUpdateendpoint instead of individual update calls. - Request a quota increase through the Google Cloud Console if your workload consistently exceeds limits.
API Error: INVALID_ARGUMENT
- The request body contains a field value that DV360 cannot parse. Common causes:
- Date format must be
YYYY-MM-DD, not Unix timestamps or other formats. - Enum values are case-sensitive:
LINE_ITEM_TYPE_DISPLAY_DEFAULT, notdisplay_default. - Entity IDs must be strings in the JSON body, not integers.
- Date format must be
- Use the DV360 API Explorer to validate your request structure before sending it programmatically.
API Troubleshooting
Rate Limits and Quota Management
DV360 enforces these default API quotas:
| Quota | Limit | Scope |
|---|---|---|
| Daily requests | 15,000 | Per GCP project |
| Queries per second | 5 QPS | Per GCP project |
| SDF download requests | 10 per day | Per advertiser |
| Report queries | 20 concurrent | Per partner |
To monitor usage, check the Google Cloud Console under APIs & Services > Display & Video 360 API > Quotas. Set up alerting at 80% utilization to avoid hitting hard limits.
OAuth Token Refresh Failures
When the DV360 API returns 401 Unauthorized on a previously working integration:
- Check if the refresh token was revoked. Users can revoke tokens at
https://myaccount.google.com/permissions. If revoked, re-run the OAuth consent flow. - Verify the OAuth client secret has not been rotated in the GCP console. If it was, update your application's stored client secret.
- For service accounts, confirm the JSON key file has not expired. Service account keys do not expire automatically, but an admin may have deleted the key in the GCP console.
- Check clock skew: OAuth tokens use timestamp validation. If your server's clock is off by more than 5 minutes, token requests will fail. Run
ntpdate -q pool.ntp.orgto verify.
SDF Import Errors
Structured Data File (SDF) imports fail silently in some cases. Common issues:
- "Row X: Unknown column header" -- SDF column headers are version-specific. If you generated the SDF with version 5.5 but your account uses 6.0, headers will not match. Always check your SDF version in the partner settings before exporting.
- "Entity not found" -- The SDF references an entity ID (campaign, insertion order, or line item) that does not exist in the target advertiser. Verify IDs match the destination account.
- Partial import success -- SDF imports process row-by-row. If row 15 fails, rows 1-14 are still applied. Always download the error report after import to check for partial failures.
- File encoding -- SDF files must be UTF-8 encoded CSV. Files saved from Excel as "CSV (Comma delimited)" may use Windows-1252 encoding, which causes parsing failures on special characters.
Escalation & Communication
- DV360 Support via Google Marketing Platform Help Center
- Campaign Manager 360 support for Floodlight-specific issues
- Partner account manager for platform-wide problems
- Technical Account Manager (TAM) for enterprise accounts
- Document error codes, screenshots, and timestamps for support tickets
Preventive Maintenance
- Weekly Floodlight health checks using CM360 reports
- Monthly audit of conversion tracking configuration
- Regular review of attribution settings and lookback windows
- Quarterly access audit for partner and advertiser users
- Monitor API usage and rate limits
- Test Floodlight tags in staging before production deployment
- Set up automated alerts for campaign underspending or overspending