Choose a guide
Customer Match delivery
Upload hashed emails and deliver them into a new or existing Customer Match user list.
Prerequisites
API key
Create the key under Settings → API Keys with read and write ondatasets and connections, write on uploads, and read on installations, apps, and app_profiles. Add read and write on webhooks if you want delivery notifications. See API Keys for the procedure and the Permissions Reference for what each resource covers.
Create it from a shared team account rather than a personal login, so the integration keeps working when someone changes roles.
Google Ads Connector installed
The Google Ads Connector is app14. Find your installation of it:
"app_id": 14, install the Google Ads Connector from the Narrative Marketplace.
Google Ads account linked to Narrative
Narrative delivers to Google Ads as a Customer Match partner, so you link your Google Ads account to Narrative I/O once, before you create a profile for it. In Google Ads, open Tools → Data manager, click Narrative I/O, and authorize the link request. See Link your Google Ads account. The customer ID is the ten-digit number at the top of Google Ads. The API takes it as a number without dashes, so123-456-7890 becomes 1234567890.
Set up API access
The guide talks to two hosts, and each takes its own credential:Get an installation token
The Google Ads connector authenticates requests with an installation token, which you get by exchanging your API key. Use the installation ID from Google Ads Connector installed:access_token as $INSTALLATION_TOKEN. It lasts about three hours, so request a new one at the start of each run of your integration.
Confirm that both hosts answer:
api.narrative.io and the installation token to googleads.narrativeconnectors.com.
Find your profile
A profile ties your Narrative company to one Google Ads customer ID, and every connection names the profile it delivers through.GET /profiles lists them all. To read one:
status is enabled and whose google_ads_customer_id is the account you want to deliver to. Record its id.
The Narrative API lists the same profiles by name and status:
Create a profile
Create one profile for each linked Google Ads account. Send the customer ID as a number without dashes:description is optional. Record the id of the new profile, then enable it:
Read the connection settings schemas
Each kind of Google Ads connection has a JSON schema for itsquick_settings. The connector serves the schemas without a token, and the Narrative API serves the same content:
audience_first_party_new and audience_first_party_existing.
What the connection does
A connection’squick_settings choose the interface and say how the connection delivers. The fields depend on the interface.
New user list (audience_first_party_new)
The connector creates the user list in Google Ads when you create the connection.
Existing user list (audience_first_party_existing)
Existing and new rows
A connection delivers every snapshot written to the dataset after the connection is created. Thehistorical_data_enabled quick setting decides whether the connection also delivers data that was already in the dataset when you created it:
- With
historical_data_enabledset totrue, the connection first delivers data already in the dataset, then keeps delivering new snapshots as they land. - With
historical_data_enabledset tofalse, the connection delivers only snapshots written after it was created.
historical_data_enabled delivers the dataset’s snapshots from the 30 days before the connection was created. After that, each new snapshot is delivered as it lands.
Every delivery adds members to the user list, and the connection never removes them. A member leaves the list when its membership duration runs out. When you overwrite the dataset, the connection adds the rows in the new snapshot, and members that are missing from it stay in the list until their membership duration ends.
Delivery notifications
The Google Ads Connector reports each delivery as an app webhook event. Subscribe a webhook to app14 to receive them:
secret to verify each delivery. The connector sends these events:
Read a subscription with
GET /webhooks/{webhook_id}, and stop the notifications with DELETE /webhooks/{webhook_id}. See App subscription for the subscription fields and Verifying deliveries for checking the secret.
Related content
Google Ads Connector
Supported identifiers and audience membership duration
Hashing PII
Prepare identifiers for Google Ads
Connector Interfaces
Why a dataset connects to an interface rather than a connector
API Keys
Create and rotate keys for programmatic access

