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 Customer Match tag for server GTM or Stape Conversion Tracking apps for CMS and CRMs.
What is Customer List in Google Ads/Display & Video 360?
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.
How Customer List works
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 Customer Match tag for server GTM 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 Conversion Events tag by Stape 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.
Regardless of the method you choose to create and fill the Customer List in Google Ads/Display & Video 360 - Customer Match tag or CMS/CRM app, you will need the following:
You must configure one of the available authentication methods:
Stape Google Connection (recommended) - the easiest way to handle the authentication. You just need to activate the Dada Manager API Connection in the Stape admin account.
Own Google Credentials - if you don't use Stape's services or have a free plan on Stape, opt for this authentication method.
Select the authentication method that suits you best and follow the instructions:
Stape Google Connection
Sign in to the Data Manager API Connection via the Stape admin.
To configure Data Manager API Connection, log in to your Stape account → open the required container → Connections tab → click Sign in next to Data Manager API. Use a Google account with access to the Google Ads account for which you want to configure the Customer List.
For EU users, please check the Stape DPA, as activating the connection may transfer data outside the EU via Stape Inc.
Own Google Credentials
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.
How to create and fill the Customer List in Google Ads/Display & Video 360
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 Customer Match tag or using Stape's CRM/CMS applications, select the best-fitting option below, and follow the instructions:
Using Customer Match tag for server GTM
1. Add the Google Customer Match by Stape tag to your workspace in the server GTM container.
Open server GTM container → Templates → next to Tag Templates click Search gallery → find Google Customer Match by Stape → click Add to workspace.
2. Go to Tags → click New → select Google Customer Match by Stape as tag configuration.
3. Configure the tag.
3.1 Select Action - for the purpose of this article, we select “Add to Customer List,” but the tag can also remove data from the Customer List.
3.2 Product - select from the list the platform you configure Customer List for - Google Ads, or Display and Video 360.
3.3 Operating customer ID - the ID of the Google Ads/Display & Video 360 account that will receive conversions. This should be set to the ID of the customer account. To get it, sign in to your Google Ads/Display & Video 360 account → in the top right corner, click on your picture → copy the value. Make sure that you use the same account as you used for signing in to the Data Manager API Connection.
Please remove hyphens before using the string as the Operating customer ID.
3.4 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. Make sure that you use the same account as you used for signing in to the Data Manager API Connection.
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.
3.5 Customer List Name - specify the name of the customer list you want to interact with.
Only customer lists created through the Stape connection are supported. You cannot interact with arbitrary customer lists.
When using Google products, the audience will appear with the name format: stape_<Customer List Name>. This customer list is created automatically by Stape during the integration process. For example, if you enter "Purchasers" in this field, the tag will interact with the customer list named stape_Purchasers in your Google product.
3.6 Terms of Service Status - this must be accepted for all uploads to Customer Match user lists. Google has a list of requirements for accessing Customer Match. You should have:
3.7 Validate Only - if true, the request is validated but not executed. Only errors are returned, not results.
3.8 Use Optimistic Scenario - if true, the tag will call gtmOnSuccess() without waiting for a response from the API. This will speed up sGTM response time; however, your tag will always return the status fired successfully even if it is not.
3.9 Request-level consent - specify consent status for Ad User Data and Ad Personalization. User-level consent overrides request-level consent, and can be specified for each audience member when sending data to Multiple Users in the Audience Members section.
3.10 Audience member section.
- Audience Data Encoding - select the encoding type of the user identifiers: HEX or BASE64.
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.
Default: HEX - when passing a non-hashed value to UserData (User Email Address, User Phone Number, and User Given/Family Name) fields; or when using default values from GA4 Event Data.
- Audience Data Encryption - the field stands for encryption of information for UserData (User Email Address, User Phone Number, and User Given/Family Name) uploads.
If not set, it's assumed that uploaded identifying information is hashed but not encrypted.
For other types (User Address Region and User Address Postal Code) uploads, this field is ignored.
- User Mode - select send data for a single user or for multiple users.
3.11 User Data Identifiers - specify the user data identifiers (max 10 items). Please note: at least one of the User Email Address(es), User Phone Number(s), or User Address must be specified.
4. Add a trigger for the tag.
WooCommerce
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.
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.
- 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.
Shopify
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.
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.
- 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:
Inherit from email marketing consent - consent will be applied based on the marketing consent of the customer (audience member, purchaser) on file.
Select manually - choose from the dropdown consent status.
- 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.
HighLevel
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.
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.
Google Ads Operating customer ID - the ID of the Google Ads account where the Customer List will be created or updated. 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.
- 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.
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 HighLevel 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_highlevel_purchasers.
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 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.
HubSpot
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.
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.
- 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.
Common configuration mistakes and their fixes
Terms not accepted
To populate the Customer Match list, you need to accept a few terms of use:
Customer Match terms.
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 conversion terms.
Enhanced Conversions 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 aren't turned on
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.
Not an appropriate access level for the connection account
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.
The transaction_id isn't sent with the event
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:
Website (any online conversions) - a transaction_id is mandatory.
Offline (import from clicks) or enhanced conversions for leads - a transaction_id is optional.
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:
Variable Type - Event Data
Key Path - transaction_id
Consent is not specified or has the wrong format
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_GRANTED
CONSENT_DENIED
CONSENT_STATUS_UNSPECIFIED
As 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.
Summary
Setting up automated Customer Lists in Google Ads/Display & Video 360 using the 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.
Want to start on the server side?sign up now!
🍽️ Table of content:
Subscribe for updates:
we don’t spam!
Uliana Lesiv
Author
Uliana is a Content Manager at Stape, specializing in analytics and integration setups. She breaks down complex tracking concepts into clear insights, helping businesses optimize data collection.
Discover why your Google Ads remarketing audience is shrinking and how to fix issues with consent settings, keywords, ad creatives, and tracking setup.
Comments