In this article, we consider in detail Google Ads/Display & Video 360 feature - Customer List. We will explain what it is, how it works, and how to set up an automated workflow for creating and populating the Customer List using the Google Data Manager API Customer Match tag or Stape Conversion Tracking apps for CMS and CRMs.
Customer List is an audience targeting feature in Google Ads/Display & Video 360. It allows you to upload customer data (such as email addresses, phone numbers, and addresses) to Google's platform. The Customer Match lists are used in Smart Bidding and optimized targeting. When you create a campaign, you can use this data to target a specific audience or exclude some audience segment.
Customer List can be found and created in the Google Ads admin → Tools → Shared library → Audience manager → Create remarketing list → Customer List.
However, creating Customer Lists manually is inefficient - in this article, we show how to configure automated workflows with Customer Match for generating and populating Customer Lists.

Firstly, you provide the data to Google Ads/Display & Video 360. You can manually upload a CSV file that includes the data on your users or connect the data source from the list in Google Ads/Display & Video 360.
Other options to provide data are by using the Google Data Manager API Customer Match tag or the Stape Conversion Tracking apps for CMS/CRM (we describe their configuration in detail below). The benefit of these options is that you don’t need to do any manual actions, such as data gathering, formatting, and file upload in Google Ads/Display & Video 360. Everything is automated - creating the Customer List and adding user data to it.
Then, you set up or modify a campaign to execute the segment from the Customer List.
While Customer Lists help you target audiences with online data, many businesses also need to track sales that happen offline — such as phone orders, in-store purchases, or upsells. Google Data Manager API Conversion Events tag lets you send this information directly from your server GTM container to Google Ads, removing the need for manual file uploads. This improves attribution across online and offline touchpoints and allows Google’s bidding algorithms to optimize for customers most likely to convert.
We have a detailed guide on how to configure the Google Data Manager API Conversion Events tag to track both online and offline conversions.
Regardless of the method you choose to create and fill the Customer List in Google Ads/Display & Video 360 - Google Data Manager API Customer Match tag or CMS/CRM app, you will need the following:
You must configure one of the available authentication methods:
Select the authentication method that suits you best and follow the instructions:

2. Click the Connections tab.
3. Click Sign-in in the Google Data Manager API section.

4. Sign in with a Google account that has Admin access to the Google Ads account.
5. Set up the Google Customer Match or Google Data Manager API Conversion Events tag.
Using Service Account impersonation is the easiest way to authenticate when using the Own Google Credentials method.
To configure it, follow the instructions below:
1. Go to the API Console in Google Cloud Platform. Select a project → on the left side menu, click Library → search for Data Manager API → click Enable.

2. Create a Service Account in this GCP Project.
Go to Create Service Account → add a service account name (the service account ID is generated based on this name) → (optional) add permissions and/or principals with access → click Done.

3. Assign the Service Account Token Creator IAM role (roles/iam.serviceAccountTokenCreator) to the Service Account.
In the Service Accounts section, click on the three dots next to the service account you've created in the previous step → select Manage Permissions → Manage Access → Add role → select Service Account Token Creator and click Save.

4. Create a JSON key for this Service Account and download it.
In the Service Accounts section, click on the three dots next to the service account you've created in step 2 → select Manage Keys → Add key → Create new key → select JSON and click Create. The key should be automatically downloaded on your computer.

5. Connect the Service Account to the container using the JSON Key file:
6. Give the Service Account access to the product you're working with (Google Ads, DV360, etc.). Refer to that product's documentation for guidance.
| Please note: only Customer Lists created automatically by the Stape connection are supported. Manually created or pre-existing lists in Google Ads/Display & Video 360 will not be populated. |
You can complete the setup by installing the Google Data Manager API Customer Match tag or using Stape's CRM/CMS applications. Select the best-fitting option below, and follow the instructions:
1. Add the Google Data Manager API Customer Match tag to your server GTM Workspace.
Open your Server GTM container. Navigate to Templates → next to Tag Templates, click Search Gallery. Find Google Data Manager API Customer Match and click Add to Workspace.

2. Create a new tag. Go to Tags → click New. Select Google Data Manager API Customer Match as the tag configuration.

3. Configure a tag.
3.1 Action - choose the action for the tag. For this guide, we select Add to Customer List. You can also choose to remove users from a customer list.
3.2 Authentication Type - opt for the option selected in the prerequisites section.
If you haven’t configured one of the authentication types, please refer to the detailed instructions in the prerequisites section of this guide.

3.3 Product - select from the list the platform you configure Customer List for - Google Ads, or Display and Video 360.
3.4 Operating customer ID - enter the Google Ads account ID that will receive conversions. To find it: sign in to Google Ads → click your profile picture (top-right) → copy the value. Ensure this matches the account used for the Data Manager API connection.
Important: remove hyphens before using it.

3.5 Customer ID - ID of the account used for authorization.
Remove hyphens before using it.

3.6 Customer List Name - specify the customer list to interact with. Only lists created via Stape are supported.
The audience name format in Google products: stape_<Customer List Name> (e.g., entering “Purchasers” maps to stape_Purchasers).

If you need to update some more Customer Lists, click on the “Add Customer List” button within the section and specify values for the fields as described above.
3.7 Terms of Service Status - it must be accepted to upload to Customer Match. Requirements include good policy compliance and payment history. You should have:
For more details on Google's policy regarding Customer Match, please check their documentation.
3.8 Validate Only - if enabled, the request is validated but not executed. Only errors are returned.
3.9 Use Optimistic Scenario - if enabled, the tag calls gtmOnSuccess() without waiting for an API response. Speeds up sGTM response but always reports fired successfully, even if it hasn't.

3.10 Request-level consent - specify consent for Ad User Data and Ad Personalization. User-level consent (set per audience member) overrides request-level consent.

3.11 Audience member section.
This field is required for UserData (User Email Address, User Phone Number, and User Given/Family Name) uploads. For other types (User Address Region and User Address Postal Code) uploads, this field is ignored.

3.12 User Data Identifiers - specify up to 10 identifiers. At least one of User Email, User Phone, or User Address must be provided.

4. Add a trigger for the tag. Configure when the tag should fire according to your workflow.
5. Test the configuration. Open Preview mode in both your web and server GTM containers and verify your setup.


For more detailed debugging instructions, refer to our server-side tracking debugging guide.
If you are using WooCommerce, then consider configuring the Stape Conversion Tracking app for WooCommerce. You can set up creating and filling the Customer List in the tab Customer Match. After setting up, a new Customer List named stape_wp_purchasers will be created in Google Ads.

For the configuration, you will need to fill in the following fields:
- Container API Key - a string used for app identification. Find it in the Stape admin:
- sGTM section → select the container → Settings tab → Container API key.

- Google Ads Operating customer ID - the ID of the Google Ads account where the Customer List will be created or updated. This should be set to the ID of the customer account. To get it, sign in to your Google Ads account → in the top right corner, click on your picture → copy the value.
Please make sure to remove hyphens before using the string as the Operating customer ID.

- Google Ads customer ID - stands for the ID of the account that you’re using for authorization. Based on the type of account, you should copy the following values.
Please make sure to remove hyphens before using the string as the customer ID.

- User data - choose the data you want to fill the Customer List in Google Ads with: email, phone number, and/or address.
Please note: Address data will be included only if all four fields (First Name, Last Name, Region, Postal Code) have values.
- Consent - configure the consent. Choose from the dropdown consent status “Consent_granted”, “Consent_denied”, “Consent_status_unspecified”.
- Backfill - if you check this box, the app will sync existing contacts using the settings in the app above. When the unchecked box is selected, it will sync only new contacts that reach the configured statuses. Unchecking later doesn’t remove contacts already synced.
Once configured, click Save changes.

If you are using Shopify, then consider configuring the Stape Conversion Tracking app for Shopify. You can set up creating and filling the Customer List in the tab Customer Match. After setting up, a new Customer List named stape_shopify_purchasers will be created in Google Ads.

For the configuration, you will need to fill in the following fields:
- Container API Key - a string used for app identification.
- Find it in the Stape admin: sGTM section→ select the container → Settings tab → Container API key.

- Google Ads Operating customer ID - the ID of the Google Ads account where the Customer List will be created or updated. This should be set to the ID of the customer account. To get it, sign in to your Google Ads account → in the top right corner, click on your picture → copy the value.
Please make sure to remove hyphens before using the string as the Operating customer ID.

- Google Ads customer ID - stands for the ID of the account that you’re using for authorization. Based on the type of account, you should copy the following values.
Please make sure to remove hyphens before using the string as the customer ID.

- User data - choose the data you want to fill the Customer List in Google Ads with: email, phone number, and/or address.
Please note: Address data will be included only if all four fields (First Name, Last Name, Region, Postal Code) have values.
- Consent - configure the consent:
- Backfill - if you check this box, the app will sync existing contacts using the settings in the app above. When the unchecked box is selected, it will sync only new contacts that reach the configured statuses.
Once configured, click Save.

If you decide to use the Stape Conversion Tracking app for HighLevel, you can configure creating and filling the Customer List in the tab Customer Match. After setting up, a new Customer List will be created in Google Ads audiences.

Before you start
Make sure you have an active Stape account with a server GTM container hosted on Stape.
If you don't have an account on Stape, please create one or log in if you already have one. In the main menu, click sGTM → Create container on the top right.

Add your container name, Container Configuration that you copied from your Google Tag Manager Server Container, and select the server location. Click Create Container.
| For more detailed instructions, check Stape's article on how to set up a Google Tag Manager server container. |
App setup
The setting process can be divided into two parts:
- Stape and Google Ads accounts data
- HighLevel CRM fields
Stape and Google Ads account data
You will need to fill in the following fields:
- Container API Key - a string used for app identification. Find Container API Key in the Container settings section of your Stape account. See the detailed instructions on where to find Container API Key.

Please make sure to remove hyphens before using the string as the Operating customer ID.

- If you're using your customer account, use the customer account ID.
- If you access the customer account through a manager account, use the manager account ID.
Please make sure to remove hyphens before using the string as the customer ID.

HighLevel CRM fields
Next, you need to map your CRM fields to audience member identifiers.
Please note: Address data will be included only if all four fields (First Name, Last Name, Region, Postal Code) have values.
Please note: stape_ is always appended, and the name of the list must always start with stape_, e.g., stape_highlevel_purchasers.
Once done, click Save and Connect. Once you see a success message, your installation is complete, and the application will send conversion events in the background based on your settings.

If you decide to use the Stape Conversion Tracking app for HubSpot, you can configure creating and filling the Customer List in the tab Customer Match. After setting up, a new Customer List will be created in Google Ads audiences.

For the configuration, you will need to fill in the following fields:
- Container API Key - a string used for app identification. Find it in the Stape admin:
- sGTM section → select the container → Settings tab → Container API key.

- Google Ads Operating customer ID - the ID of the Google Ads account where the Customer List will be created or updated. This should be set to the ID of the customer account. To get it, sign in to your Google Ads account → in the top right corner, click on your picture → copy the value.
Please make sure to remove hyphens before using the string as the Operating customer ID.

- Google Ads customer ID - stands for the ID of the account that you’re using for authorization. Based on the type of account, you should copy the following values.
Please make sure to remove hyphens before using the string as the customer ID.

- User data - choose the data you want to fill the Customer List in Google Ads with, and specify user and ads data consent status from the drop-down list.
Please note: Address data will be included only if all four fields (First Name, Last Name, Region, Postal Code) have values.
- Actions & triggers - choose Action, Opportunity Status, and name a Customer List to be synced to. After configuring Customer Match in the HubSpot app, a Customer List will be created in Google Ads.
Please note: stape_ is always appended, and the name of the list must always start with “stape_”, e.g., “stape_hubspot_purchasers”. Enter the Customer List name without the stape_ prefix, as it will be prepended automatically.
- Backfill - if you check this box, the app will sync existing contacts using the settings in the app above. When the unchecked box is selected, it will sync only new contacts that reach the configured statuses.
Once configured, click Save and connect.

Before you start
Make sure you have an active Stape account with a server GTM container hosted on Stape.
If you don't have an account on Stape, please create one or log in if you already have one. In the main menu, click sGTM → Create container on the top right.

Add your container name, the Container Configuration that you copied from your Google Tag Manager Server Container, and select the server location. Click Create Container.
For more detailed instructions, check Stape's article on how to set up a Google Tag Manager server container.
App setup
The setup process can be divided into two parts:
- Stape and Google Ads account data- Klaviyo CRM fields
Stape and Google Ads account data
You will need to fill in the following fields:

- Integration - switch the Activate toggle on to enable the current integration (tab) to run in the background.
- Container API Key - a string used for app identification. Find the Container API Key in the Container settings section of your Stape account. See the detailed instructions on where to find the Container API Key.

Please make sure to remove hyphens before using the string as the Operating customer ID.

- If you're using your customer account, use the customer account ID.
- If you access the customer account through a manager account, use the manager account ID.
Please make sure to remove hyphens before using the string as the customer ID.

Klaviyo CRM fields
Next, you need to map your CRM fields to audience member identifiers.
Please note: Address data will be included only if all four fields (First Name, Last Name, Region, Postal Code) have values.
Please note: stape_ is always appended, and the name of the list must always start with "stape_," e.g., stape_klaviyo_purchasers.
Once done, click Save and Connect. Once you see a success message, your installation is complete, and the application will send conversion events in the background based on your settings.

To populate the Customer Match list, you need to accept a few terms of use:
It's a legal agreement within Google Ads where you confirm that any data you upload has been collected in compliance with Google’s policies (first-party only, clear opt-in). You can read more about the Customer Match policy on Google's end.
How to fix: the Customer Match terms usually pop up when you create the Customer Match list for the first time. Later, it must reappear; be sure to confirm that you comply with the policy.
Enhanced Conversions in Google Ads sends hashed first-party data (emails, phone numbers) from your website to Google to "fill in the gaps" when cookies are blocked. That's a list of terms that allows Google to use this hashed data to match conversions to signed-in Google accounts.
How to fix: go to the Goals section → Settings → Enhanced Conversions. Check the box next to Turn on enhanced conversions. A window with terms must pop up; be sure to accept the terms.
Note: if your conversions are managed via the Manager Account (MCC), the customer data terms must be accepted from the manager’s account.

Enhanced Conversions for Leads (ECfL) is the specific feature that allows Google to attribute conversions using first-party data (like hashed emails) rather than just Google Click ID (GCLID). ECfL provides the framework to match CRM data using hashed first-party identifiers (like emails) instead of cookies or click IDs.
How to fix: go to the Goals section → Settings → Enhanced conversions for leads. Check the box next to Turn on enhanced conversions for leads. A window with terms must pop up; be sure to accept the terms.

To link a third-party tool (like Stape) to your Google Ads account via the API, the user account needs specific permissions. Lower access levels (like Read-only or Billing) cannot grant the necessary scopes for the Data Manager API to "write" or "upload" data to the account.
How to fix: Obtain Standard or Admin access to authorize the OAuth flow.
transaction_id for Google's new feature that allows unifying and recovering lost conversions within Google Ads. The feature is required to match your external source's events with those already tracked by your website tag. For more information on Google's additional sources measurement feature, check our article. |
If you encounter the error says REQUIRED_FIELD_MISSINGThe reason is often that you selected a conversion type that requires a Transaction ID, but didn't provide one in the tag.
The requirement is determined by the Conversion Action Type:
transaction_id is mandatory.transaction_id is optional. For more info on when transaction_id is required, refer to Google's documentation.
If you are reporting an online "Website" conversion, you must provide a transaction_id regardless of whether the event is a purchase, a lead, or any other type.
How to fix: You need to provide the transaction_id.
Be sure to have a variable that will grab transaction_id in your Google Conversion Events tag.

The variable configurations:
transaction_id
The error INVALID_ARGUMENT for ad_personalization or ad_user_data points to consent. It means that the consent signal was either missing or sent in a format the API didn't recognize.
Google can process only three values:
CONSENT_GRANTEDCONSENT_DENIEDCONSENT_STATUS_UNSPECIFIEDAs provided in the tags:

How to fix: check whether you specified the consent status in the Request-level Consent section of the tag.
If you are dynamically viewing the consent status and using a variable in the Request-level Consent section, you need to transform the values into the appropriate ones that will be understandable for Google. For this purpose, use the LookUp variable.
Setting up automated Customer Lists in Google Ads/Display & Video 360 using the Google Data Manager API Customer Match tag or Stape's CMS/CRM apps significantly simplifies the audience targeting. By replacing manual uploads with automated syncing, you ensure your campaigns always use up-to-date customer data.
Whether you're using the server GTM tag or Stape's apps for WooCommerce, Shopify, HighLevel, or HubSpot, these integrations help you create and populate the Customer List in Google Ads/Display & Video 360.
Comments