Skip to Content
DestinationsAdvertisingGoogle Campaign Manager 360

Google Campaign Manager 360

Send conversions to Google Campaign Manager 360 (CM360) via the Conversions API to populate remarketing lists and track offline conversions. Upload user identifiers as floodlight conversions that automatically populate remarketing lists associated with the configured floodlight activity.

Prerequisites

  • A Google Campaign Manager 360 account with API access enabled
  • Your User Profile ID (found in Campaign Manager under your account settings)
  • A floodlight activity ID linked to the remarketing list you want to populate
  • The floodlight configuration ID for your advertiser
  • A Google account with conversion upload permissions

Permissions

The authenticated Google account needs the following Campaign Manager 360 permissions:

  • Insert conversions (to upload conversion data via the API)
  • View floodlight configurations (to validate the floodlight setup)

The API uses the ddmconversions OAuth scope, which grants read/write access to Campaign Manager 360 offline conversions.

Authentication

Google Campaign Manager 360 uses OAuth 2.0 with PKCE.

  1. Click Connect with OAuth in Zeotap
  2. Sign in with your Google account
  3. Authorize the requested permissions

OAuth scope: https://www.googleapis.com/auth/ddmconversions.

Configuration

FieldTypeRequiredDescription
User Profile IDTextYesYour Campaign Manager 360 user profile ID (numeric). Found in Campaign Manager under your account settings. Example: 12345678

Target Settings

FieldTypeRequiredDescription
Floodlight Activity IDTextYesThe floodlight activity ID to associate with uploaded conversions. This activity should be linked to a remarketing list.
Floodlight Configuration IDTextYesThe floodlight configuration ID for the advertiser. Found under Floodlight > Configuration in Campaign Manager.

Supported Operations

Sync Modes

ModeSupported
InsertYes
Upsert
Update
Mirror

Audience Sync Modes

ModeSupported
AddYes
Remove
Mirror
Upsert

Features

  • Field Mapping: No
  • Schema Introspection: No

How It Works

  1. Authentication: Zeotap authenticates with Google Campaign Manager 360 using OAuth 2.0 tokens with the ddmconversions scope
  2. Identifier extraction: Each row must provide a mapped external_id — this is sent to CM360 as the conversion matchId, the first-party identifier Campaign Manager 360 requires for every conversion. Email and phone, when available, are normalized and SHA-256 hashed and attached as userIdentifiers for enhanced conversions matching
  3. Conversion creation: Each row is mapped to a floodlight conversion event containing the matchId, the configured floodlight activity ID, a unique ordinal (to prevent CM360 deduplication from dropping re-syncs), and the batch timestamp
  4. Batch upload: Conversions are uploaded via the conversions.batchinsert API in chunks of 1,000 records per request, with automatic retry on transient errors and rate limits
  5. Per-row status: The API response includes per-conversion status. Rows that CM360 rejects (invalid match ID, missing floodlight, etc.) are surfaced in the sync run’s error report
  6. Remarketing list population: The associated remarketing list is automatically populated based on the floodlight activity rules configured in Campaign Manager

Required Mapping

You must map a column containing a stable first-party identifier to external_id. This value becomes the CM360 matchId. Rows without an external_id are skipped and reported as failures, because CM360 does not accept conversions without a primary identifier — hashed email or phone alone is not sufficient.

Rate Limits

Google Campaign Manager 360 enforces the following rate limits:

  • API quota: Rate limits vary by account; typical limits are around 10 queries per second
  • Conversions per request: Recommended to send up to 1,000 conversions per batch insert call

Zeotap automatically chunks uploads and handles rate limit responses with exponential backoff.

Best Practices

  • Link floodlight activities to remarketing lists: Before syncing, ensure the floodlight activity is associated with the remarketing list you want to populate in Campaign Manager 360
  • Verify floodlight configuration: Double-check the floodlight configuration ID matches the advertiser whose remarketing list you want to populate
  • Set up matchId collection first: CM360 requires every uploaded conversion to carry a matchId — a first-party identifier you previously captured via a Floodlight tag. Configure matchId collection in your Floodlight tag deployment before running syncs, otherwise all uploads will be rejected
  • Supply enhanced conversions identifiers: When available, also map email and phone columns. Zeotap will SHA-256 hash them and attach them as userIdentifiers to improve match rates beyond what matchId alone provides
  • Monitor partial failures: The API response includes per-conversion status. Check sync logs for any partial failure warnings

Troubleshooting

User Profile ID not found

Your User Profile ID is a numeric value found in Campaign Manager 360. Navigate to your account settings or check the URL when logged into CM360 — the profile ID appears in the URL path.

Authentication failed: invalid or expired token

Re-authenticate by clicking Connect with OAuth in the destination settings. Google OAuth tokens expire after 1 hour, but Zeotap automatically refreshes them using the stored refresh token.

Access denied: check profile ID and permissions

Ensure the authenticated Google account has the conversion upload permission in Campaign Manager 360. The account must have access to the specified floodlight configuration.

Conversions not appearing in remarketing list

It can take several hours for uploaded conversions to populate a Campaign Manager 360 remarketing list. Verify that the floodlight activity is correctly linked to the target remarketing list in Campaign Manager under Floodlight > Activities.

Partial failures in batch

The CM360 API returns per-conversion status in the response. Common causes of individual conversion failures include missing matchId, an unrecognized matchId (one that was never captured by a Floodlight tag), duplicate ordinal values, or floodlight activity ID mismatches. Zeotap records each failed conversion’s error code and message in the sync run’s per-row error report.

All rows reported as “missing external_id”

CM360 conversions require a primary identifier (matchId). Zeotap uses the mapped external_id column for this purpose. If every row fails with “missing external_id”, add a mapping from your source column (for example, a user ID captured alongside the Floodlight tag) to the external_id field of the destination.

Rate limit errors

If you see HTTP 429 errors, Zeotap will automatically retry with exponential backoff. For large audiences, consider scheduling syncs during off-peak hours to reduce API contention.

Last updated on