Skip to Content
DestinationsAdvertisingGoogle Data Manager

Google Data Manager

Upload first-party audience data to Google Ads and Display & Video 360 through the Google Data Manager API. Zeotap normalizes, hashes, and syncs your warehouse segments directly to Google’s unified data ingestion platform.

Prerequisites

  • A Google Cloud project with the Data Manager API enabled
  • A Google account with access to the target Google Ads or Display & Video 360 account
  • An existing audience or user list in Google Ads or DV360 to upload members to
  • OAuth consent screen configured and verified for the datamanager scope
  • For Google Ads Customer Match uploads: the Customer Match terms of service must be accepted in the operating Google Ads account. Zeotap sends customerMatchTermsOfServiceStatus = ACCEPTED with every ingest, which affirms acceptance — if your account has not yet accepted in the Google Ads UI, the API rejects the destination as invalid.

Authentication

Google Data Manager uses OAuth 2.0 with the https://www.googleapis.com/auth/datamanager scope.

  1. Click Connect with OAuth in Zeotap
  2. Sign in with the Google account that has access to your advertising accounts
  3. Authorize the Data Manager API permission

The authorizing Google account must have advertiser-level access to the target Google Ads or DV360 account.

Enabling the Data Manager API

  1. Go to the Google Cloud Console 
  2. Select your project
  3. Navigate to APIs & Services > Library
  4. Search for Data Manager API
  5. Click Enable

Configuration

FieldTypeRequiredDescription
Account TypeSelectYesThe Google advertising product to send data to: Google Ads, Display & Video 360 (Advertiser), or Display & Video 360 (Partner). Use the Advertiser option for most DV360 setups; use Partner only when uploading at the partner level.
Account IDTextYesThe account ID for the selected product (e.g., Google Ads Customer ID or DV360 Advertiser/Partner ID). Digits only — hyphens from the Google Ads UI format (e.g., 123-456-7890) are stripped automatically.
Login (Manager) Account IDTextNoSet to your Google Ads manager (MCC) Customer ID when the authenticated user accesses the operating account through a manager hierarchy rather than as a direct user. Leave blank for direct access.
Hash EncodingSelectNoEncoding format for SHA-256 hashed identifiers. Options: Hex (default) or Base64.
Consent — Ad User DataSelectNoConsent status for using user data for advertising. Required for EEA users. Default: Granted.
Consent — Ad PersonalizationSelectNoConsent status for ad personalization. Required for EEA users. Default: Granted.

Target Settings

FieldTypeRequiredDescription
Audience IDTextYesThe audience or user list ID in the destination product to upload members to.

Supported Operations

Sync Modes

Google Data Manager is an audience-only destination. Use audience sync modes below for managing list membership.

Audience Sync Modes

ModeSupported
AddYes
RemoveYes
MirrorYes
UpsertYes

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Required Mapping Fields

FieldDescription
emailPrimary identifier for audience matching. Normalized and SHA-256 hashed before upload. Alternatively, map hashed_email if your data is pre-hashed.

Default Destination Fields

FieldTypeDescription
emailstringEmail address (raw — auto normalized and SHA-256 hashed)
hashed_emailstringEmail — pre-hashed SHA-256 hex of lowercase trimmed email
phonestringPhone number (raw — auto normalized to E.164 and SHA-256 hashed)
hashed_phonestringPhone — pre-hashed SHA-256 hex of E.164 number
first_namestringFirst name (raw — auto lowercased and SHA-256 hashed)
hashed_first_namestringFirst name — pre-hashed SHA-256 hex
last_namestringLast name (raw — auto lowercased and SHA-256 hashed)
hashed_last_namestringLast name — pre-hashed SHA-256 hex
country_codestringCountry code (ISO 3166-1 alpha-2, e.g. US) — plain text, not hashed
postal_codestringPostal code — plain text, not hashed
mobile_idstringMobile advertising ID (IDFA or GAID)

How It Works

  1. Normalization: Zeotap normalizes raw PII fields — emails are lowercased and trimmed, phone numbers are converted to E.164 format
  2. Hashing: Normalized values are SHA-256 hashed and encoded in the configured format (hex or base64)
  3. Batching: Rows are chunked into batches of up to 10,000 audience members per API request
  4. Ingestion: Each batch is sent to the Data Manager API’s audienceMembers:ingest endpoint (or audienceMembers:remove for removals)
  5. Consent: Every request includes the configured consent signals for EU regulatory compliance

Mirror Mode

In mirror mode, Zeotap computes a diff between the current and previous sync. New and changed members are added via the ingest endpoint, while removed members are sent to the remove endpoint. This keeps your Google audience in sync with your warehouse segment.

Rate Limits

LimitValue
Members per request10,000
Identifiers per member10
Requests per minute300 per Google Cloud project
Requests per day100,000 per Google Cloud project

Zeotap automatically chunks large audiences into batches of 10,000 to stay within per-request limits.

Best Practices

  • Use pre-hashed data when possible — if your warehouse already stores SHA-256 hashed emails, map the hashed_email field to avoid double-hashing
  • Set consent signals accurately — for users in the European Economic Area, ensure consent values reflect your actual consent collection
  • Keep audiences above the minimum — Google requires at least 100 members in an audience for it to be eligible for ad targeting
  • Use a single account type per sync — configure separate syncs if you need to send data to both Google Ads and DV360

Troubleshooting

Authentication failed (401)

Your OAuth token has expired or been revoked. Reconnect the destination in Zeotap by clicking Reconnect on the destination settings page.

Access denied (403)

The authenticated Google account does not have access to the specified account. Verify that:

  • The Data Manager API is enabled in your Google Cloud project
  • Your Google account has advertiser-level access to the target Google Ads or DV360 account
  • The OAuth consent screen has been verified for the datamanager scope

Invalid argument (400)

The request body contains invalid data. Common causes:

  • INVALID_DESTINATION on account_type (“This destination is not valid.”): usually means the authenticated user cannot reach the operating account directly. If you access the Google Ads account through a manager (MCC) account, set the Login (Manager) Account ID to your MCC Customer ID. Also verify the Customer Match terms of service have been accepted in the operating Google Ads account.
  • Invalid Account ID: Account ID must be digits only. Google Ads Customer IDs are shown as 123-456-7890 in the UI — paste with or without hyphens (hyphens are stripped automatically).
  • Invalid Audience ID: The Audience ID must be the numeric user list / audience ID from the destination product, not the display name.
  • INVALID_HEX_ENCODING: An email or phone value is not properly hex-encoded. Ensure pre-hashed fields contain valid SHA-256 hex strings.
  • INVALID_SHA256_FORMAT: The hash value is not a valid SHA-256 digest (must be 64 hex characters).
  • Missing required consent: EEA-targeted audiences require explicit consent signals.

The sync logs surface the exact field and description returned by Google’s fieldViolations array, so look there to pinpoint which field Google rejected.

Rate limited (429)

You have exceeded the Data Manager API request quota (300 requests/minute or 100,000 requests/day). Rate-limited chunks are skipped and will be retried on the next sync run. If this persists, reduce sync frequency or split into smaller syncs.

Low match rate

Ensure your data quality is high:

  • Email addresses should be properly formatted and lowercase
  • Phone numbers should include country codes in E.164 format
  • Provide multiple identifier types (email + phone + name) to improve match rates

Audience not eligible for targeting

Google requires at least 100 matched members in an audience before it can be used for ad targeting. Continue uploading data until the minimum threshold is met.

Last updated on