Track Google Ads Conversions using Data Manager API

Uliana Lesiv

Uliana Lesiv

Author
Updated
Mar 17, 2026

Data Manager API is a unified API for tracking conversions. Customer actions are first sent to the sGTM container, where data is processed, secured, and attributed. Stape ensures the sGTM container then sends the conversion data directly to Google's servers via an API connection. Such a flow allows for minimizing the impact of browser limitations like ad blockers and cookie restrictions, which leads to more reliable, accurate conversion reporting.

What is the Data Manager API?

Google Data Manager API is a unified API created to help advertisers connect and manage their first-party data (e.g., data from CRM, behavioral data from the website/app) across Google advertising products. Using the Google Data Manager API, the data can be sent to the required destination (like Google Ads and Display & Video 360) with a single API call.

From October 2025, the Google Data Manager API became available for all users.

Use cases

Offline/Enhanced Conversions for Leads tracking

If you have a flow where the user firstly interacts with the ad online and then buys the goods or services offline, sending data on conversions back to the advertising platform is essential for ad campaign performance estimation.

With the Data Manager API, you can automatically send offline/enhanced conversion data (e.g., sales that happened in a physical store or over the phone) from your Customer Relationship Management (CRM) or Point of Sale (POS) System and match the data against the Google ad click a user eventually has made.

Enhanced Conversions for Leads is an upgraded method of Offline Conversion Tracking for lead generation businesses. Below, we highlight the difference between both:

Offline Conversion TrackingEnhanced Conversions for Leads
PurposeSupply Google Ads with data on users' offline behavior after interaction with the ad online.Supply Google Ads with data on users' offline behavior after interaction with the ad online.
User identifier(s)Google Click ID (GCLID) - a unique ID of each ad click.In addition to GCLID, it uses hashed first-party customer data (such as email address or phone number).
How it matches offline conversions with online interactionsMatches the GCLID the platform received from CRM/POS with the GCLID of the original ad click.Uses the hashed customer data to match the conversion to a logged-in Google user or the data from CRM/POS.
Matching accuracyLess reliable due to browser restrictions and cookie expiration.More accurate as it uses first-party data, helping to track conversions even when GCLIDs are lost or users switch devices.

Implementation solution

💡Google Conversion Events by Stape tag - using the tag, you can configure offline conversion tracking by adding GCLID and/or specifying the first-party customer data (email, phone, address, mobile device ID, third-party user ID).

In this article below, we'll show how to implement the solution.

Creating and keeping up-to-date Customer Match lists in Google Ads/Display & Video 360

The Customer Match list in Google Ads/Display & Video 360 is an audience targeting feature that allows advertisers to segment users and target the audience with high conversion intent or exclude a specific segment from advertising.

There are two ways to create and fill Customer Match lists - manual and automatic. The manual method is downloading the first-party data from your CRM in CSV format and uploading it to Google Ads/Display & Video 360. That's an inconvenient way, as you will need to update the data frequently. With the Data Manager API, you can configure automatic Customer Match lists creation and updating.

Implementation solution

💡Google Customer Match tag by Stape or Stape Conversion Tracking CRM/CMS apps - both solutions can transfer data from your CRM and send data to Google Ads/Display & Video 360, creating Customer Match lists and updating the data in them without any manual actions.

Below in this article, we'll consider the methods in detail.

Customer Match lists in Google Ads
Customer Match lists in Google Ads

Server-side online events tracking

The Google Data Manager API allows you to send both online and offline conversion events directly to Google Ads. This API is part of a broader shift toward server-side data tracking. It is often used along with the server Google Tag Manager (GTM). It allows advertisers to gain more control over data, bypass browser restrictions, and improve data quality.

Implementation solution

💡Google Conversion Events by Stape - it allows you to send server-side online conversions to Google Ads via the Data Manager API.

Sending event data as an additional data source

Google has released a feature that allows you to enrich the web tag with data from CRM or databases. In this way, you receive a more complete picture of ad campaign performance. We have considered Google's feature, its use cases, and benefits in our other blog post.

Implementation solution

💡Google Conversion Events by Stape tag - send data from CRM/databases directly to the Google Ads tag environment.

Advantages of using the Data Manager API

  • Improve ad audience targeting. After supplying Google Ads/Display & Video 360 with first-party data, the platform analyzes it, takes the identifiers, and matches them against the identifiers of logged-in Google users. Then the lists are created in Google Ads/Display & Video 360, and later, they can be used while creating ad campaigns to target a highly intended audience.
  • More accurate conversion tracking. By sending offline conversion data, the advertisers get a more complete view of ad performance. It is important for more effective campaign optimization.
  • Create audience segments. Implementing the Data Manager API allows the use of first-party customer data to create detailed audience segments. Then these segments can be included or excluded in ad targeting.
  • High privacy. The system supports secure methods to transfer data from CRM/POS to Google Ads/Display & Video 360 (like hashing personally identifiable information).
Data Manager API for Google Ads/Display & Video 360
Data Manager API for Google Ads/Display & Video 360

Pre-requisites

Regardless of the solution you choose to send data to Google Ads/Display & Video 360, you will need the following to get started:

  • Select and set up an authentication method.

Regardless of the tag you are going to configure (Customer Match or the Conversion tag), you need to set up one of the authentication methods:

  • Use Stape's connection (recommended) - the easiest way to handle the authentication. You just need to activate the Data Manager API Connection in the Stape admin account.
  • Use own Google Credentials - if you don't use Stape's services or have a free plan on Stape, opt for this authentication method.

Click on the authentication below that fits you the best and follow the instructions:

Sign in to the Data Manager API Connection via the Stape admin.

To sign in, log in to your Stape account → open the required container → Connections tab → next to Data Manager API, click Sign in. Use a Google account that has access to the Google Ads account for which you want to configure data sending.

Stape's "Connections" tab

For EU users, please review the Stape DPA, as activating the connection may result in data being transferred outside the EU through Stape Inc.

Data transfer notice

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.

Enable Data Manager API

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.

Create Service account

3. Add 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 PermissionsManage AccessAdd role → select Service Account Token Creator and click Save.

Assign a role in GCP

4. Generate a JSON Key from this Service Account (how-to) 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 KeysAdd keyCreate new key → select JSON and click Create. The key should be automatically downloaded on your computer.

Create a private key

5. Connect the Service Account to the container using the JSON Key file:

6. Grant the Service Account access to the product you're interacting with (Google Ads, DV360, etc.). Please refer to the documentation on the product you connect to.

Configure Data Manager API for Google Ads/Display & Video 360 using Stape's solutions

Click on the solution that meets your tracking needs, find out more about it, and follow the configuration instructions 👇

1. Add the Google Conversion Events 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 Conversion Events by Stape → click Add to workspace.

Add Google Conversion Events by Stape to sGTM gallery

2. Create a new tag.

Go to Tags section → click New → select Google Conversion Events by Stape as a tag type.

Tag type in sGTM

3. Configure the tag.

3.1 Product - the default product is Google Ads.

3.2 Operating Customer ID - this is the ID of the Google Ads account that will receive the conversions. Set this to the customer account ID. To find it, log in to your Google Ads account, click on your profile picture in the top right corner, and copy the displayed ID. Ensure you use the same account that was used to sign in to the Data Manager API Connection.

Before using the ID as the Operating Customer ID, remove any hyphens.

Operating customer ID in Google Ads

3.3 Customer ID - this is the ID of the account you're using for authorization. Depending on your account type, use one of the following:

  • If you're using a customer account directly, enter the customer account ID.
  • If you access the customer account via a manager account, enter the manager account ID.

Ensure you're using the same account that was used to sign in to the Data Manager API Connection.

Before using the Customer ID, remove any hyphens.

Customer and Manager account ID

3.4 Conversion Event ID - the ID used to track conversions (online or offline). Firstly, you need to create a conversion event. Once it's created, you can find it by going to GoalsConversionsSummary → Access the desired Conversion Event. After you click on the Conversion Event, the ID is on the ctId URL query parameter in your browser.

Conversion Event ID

3.5 Validate Only - when set to true, the request will go through validation but won't be executed. Only error messages will be returned, not the actual results.

3.6 Use Optimistic Scenario – when enabled, the tag triggers gtmOnSuccess() immediately without waiting for an API response. This improves sGTM response time but causes the tag to always report as successfully fired, even if it ultimately fails.

Tag configuration example

3.7 Request-level consent - specify consent status for Ad User Data and Ad Personalization. User-level consent takes precedence over request-level consent and can be assigned to each conversion event when sending data to Multiple Conversion Events in the Conversion Events section.

Request-level consent

3.8 Conversion events section.

  • User Data Encoding - choose the encoding format for user identifiers: HEX or BASE64.

This setting is required when uploading UserData (such as User Email Address, User Phone Number, or User Given/Family Name), so if you opt for Enhanced Conversions for Leads and need to identify users by other identifiers than click_id (GCLID), you will need to configure this field. For other data types (like User Address Region or User Address Postal Code), this setting is ignored.

Default: HEX - use this when submitting non-hashed values for UserData fields (User Email Address, User Phone Number, or User Given/Family Name) or when using default values from GA4 Event Data.

  • User Data Encryption - specifies whether the UserData (User Email Address, User Phone Number, and User Given/Family Name) is encrypted during upload.

If this field is not configured, it is assumed that the uploaded identifying information is hashed but not encrypted. For other data types (such as User Address Region or User Address Postal Code), this setting is ignored.

  • Conversion Event Mode - select sending data for either a single conversion event or multiple conversion events.
Conversion Events settings

3.9 User Data Identifiers - define up to 10 user data identifiers. Note: you must provide at least one of the following: User Email Address(es), User Phone Number(s), or User Address.

  • Auto-map Conversion Information - when enabled, the tag will try to automatically map parameters from the Event Data. Any value you manually enter in the fields below will take precedence over the auto-mapped values.
User data section

4. Add a trigger for the tag.

Set the rules when the tag should fire.

5. Test the tag.

Click Preview in both the web and server GTM containers and test the configuration. For more details on the debugging process, please refer to our guide to debugging and monitoring server-side tracking configuration.

Preview in GTM

Stape provides a few solutions to create and fill (or remove) a Customer Match list in Google Ads:

The tag lets you send audience data to Google Ads/Display & Video 360 via the Data Manager API, making it easy to manage your Customer Match lists. The tag eliminates the need for uploading CSV files with data on your users' behavior.

  • Stape Conversion Tracking CMS/CRM apps

Stape offers a range of CMS/CRM applications that can transmit data from your CMS/CRM directly to Google Ads/Display & Video 360, creating a Customer Match list.

We currently support the following platforms:

👉 For the detailed configuration guidelines, please check our articles on setting up automatic Google Customer Match Lists.

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 → SettingsEnhanced 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

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 → SettingsEnhanced 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.

Enhanced conversions for leads

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.

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.

Transaction ID

The variable configurations:

  • Variable Type - Event Data
  • Key Path - transaction_id
Variable - 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_GRANTED
  • CONSENT_DENIED
  • CONSENT_STATUS_UNSPECIFIED

As provided in the tags:

"Request-level Consent" section

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.

Conclusion

With the Google Data Manager API, you transfer first-party data from CRM/POS systems or server-side online events directly into Google Ads/Display & Video 360. Whether you are tracking offline conversions/Enhanced Conversions for Leads, or managing Customer Match lists automatically, the Data Manager API provides an efficient and scalable solution.

Want to start on the server side?register now!

author

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.

Comments

Try Stape for all things server-side