IntegrationsAdvertisingGoogle AJSID Segments

Google Audience Segments (AJSID)

Push user segment membership to Google Ads Customer Match audiences for remarketing, audience targeting, and ad personalisation.

Why route Google Audience Segments through Datafly Signal

  • Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions Google Audience Segments optimises against are not filtered by the browser.
  • Email, phone number, first name and last name are hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so Google Audience Segments receives match keys rather than raw personal data.
  • Delivery is batched, rate-limited, and retried. Signal buffers to Kafka, respects the Google Audience Segments rate limit, and retries on 429 or transient failure rather than dropping the event.
  • Token lifecycle is handled for you. Signal obtains and refreshes the OAuth credentials Google Audience Segments requires, so nothing expires quietly in the middle of a campaign.
  • One consent decision governs every destination. Google Audience Segments is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
  • No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.

Overview

The Google AJSID integration allows you to add users to Google Ads Customer Match audience lists server-side. When Signal receives an event with user identifiers (email, phone, or address data), it can push that user into a specified audience list in your Google Ads account. This enables remarketing and lookalike audience building without relying on client-side Google tags.

Prerequisites

Create a Google Ads Account

You need an active Google Ads account. Note your Customer ID (visible in the top-right of the Google Ads console, formatted as 123-456-7890).

Create a Customer Match Audience List

  1. In Google Ads, go to Tools & Settings > Audience Manager.
  2. Click the + button and select Customer list.
  3. Name your audience and configure match settings.
  4. Save the list and note the User List ID from the URL or list details.

Generate an OAuth 2.0 Access Token

You need a valid OAuth 2.0 access token with permissions for Customer Match operations on the Google Ads API.

  1. Set up a project in the Google Cloud Console.
  2. Enable the Google Ads API.
  3. Create OAuth 2.0 credentials and complete the consent flow.
  4. Generate an access token with the https://www.googleapis.com/auth/adwords scope.
⚠️

OAuth access tokens expire. You will need to refresh the token periodically or use a refresh token flow. Ensure your token remains valid to avoid delivery failures.

API endpoint

POST https://googleads.googleapis.com/v20/customers/{{customer_id}}/offlineUserDataJobs/{{offline_user_data_job_id}}:addOperations

Allow egress to googleads.googleapis.com from the network your delivery workers run on.

Configuration

FieldTypeRequiredDescription
customer_idstringYesYour Google Ads customer ID (e.g. 123-456-7890). Dashes are optional.
user_list_idstringYesThe Google Ads user list (audience) ID to add members to.
access_tokensecretYesA valid OAuth 2.0 access token with Google Ads API permissions for Customer Match operations.

Signal Setup

Management UI

  1. Go to Integrations and open the Integration Library tab.
  2. Find Google AJSID Segments or filter by Other.
  3. Click Install and fill in the required fields:
    • Customer ID: Your Google Ads customer ID
    • User List ID: The audience list ID from Google Ads
    • Access Token: Your OAuth 2.0 access token
  4. Click Install Integration.

Management API

curl -X POST http://localhost:8084/v1/admin/integration-catalog/google_ajsid/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Google AJSID Segments",
    "variant": "default",
    "config": {
      "customer_id": "123-456-7890",
      "user_list_id": "9876543210",
      "access_token": "your-oauth-access-token"
    },
    "delivery_mode": "server_side"
  }'

Delivery

Events are delivered server-side from your Datafly Signal infrastructure directly to the Google Ads API. No client-side scripts are loaded for this integration.

Signal sends user identifiers (hashed email, phone number, etc.) to the specified Customer Match audience list. Google matches these identifiers against its user base to populate your audience.

Supported Identifiers

The following user identifiers can be included in events for audience matching:

IdentifierEvent FieldNotes
Emailtraits.emailAutomatically normalised and hashed (SHA-256) before sending
Phonetraits.phoneMust include country code (e.g. +44...)
First nametraits.first_nameUsed for address-based matching
Last nametraits.last_nameUsed for address-based matching
Countrytraits.countryISO 3166-1 alpha-2 country code
Postcodetraits.postal_codeUsed for address-based matching

For best match rates, include as many identifiers as possible in your events. Email alone typically achieves 30-50% match rates; combining email with phone and address data can improve this significantly.

Testing

  1. Enable the integration and trigger events on your site that include user traits (email, phone, etc.).
  2. In the Signal Management UI, check the Integration Detail page for delivery status and any errors.
  3. In Google Ads, go to Audience Manager and check the audience list size. Note that Google may take 24-48 hours to process and reflect new audience members.
  4. Verify matched users by checking the audience list’s Match rate metric.

Troubleshooting

ProblemSolution
401 UnauthorizedYour OAuth access token has expired. Generate a new token and update the integration config.
403 ForbiddenYour Google Ads account may not have Customer Match permissions. Check that your account is eligible (requires good compliance history and sufficient spend).
Low match ratesEnsure you are sending normalised email addresses (lowercase, trimmed). Include additional identifiers like phone and address.
Audience list not growingCheck that user_list_id is correct. Verify events are being delivered successfully on the integration detail page. Google may take up to 48 hours to process uploads.
CUSTOMER_NOT_FOUND errorVerify the customer_id is correct. If using a manager account, ensure you are targeting the correct sub-account.
Events delivered but no matchesThe identifiers in your events may not match Google’s user database. This is normal for some percentage of users.

For full API documentation and credential setup, see the Google Ads API documentation.