Guide · Agent skill
How to use the Data Manager audience ingestion agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The data-manager-api-audience-ingestion skill is a set of instructions that teaches an AI coding agent how to manage audience members through Google's Data Manager API. It is written for developers and marketing engineers who sync customer lists into Google Ads or Display & Video 360 (DV360) audiences. After reading this guide you will know how to install the skill, how to ask for help with it in plain language, and which checks to run before and after a request.
Quick start
- 1Download the ZIP. Download the skill ZIP from this page. Keep the file name as provided.
- 2Install the skill. Unzip it into ~/.claude/skills/ for personal use or into .claude/skills/ in your project, or upload the ZIP under Settings → Capabilities → Skills in the Claude apps.
- 3Set up API access. Use the data-manager-api-setup skill to configure authentication and install the client and utility libraries.
- 4Ask with a clear request. Describe whether you want to add, remove, or clear members, and name the destination such as Google Ads or DV360.
- 5Answer the destination question. When the agent asks which account type you are targeting, answer it before any code is written.
- 6Format and send. Normalize and hash user data as the formatting guide describes, validate if needed, then send and note the request_id.
- 7Check request status. Query retrieve_request_status with the request_id to confirm whether records succeeded, partially succeeded, or failed.
What does the skill make the agent do?
When the skill is installed, the agent helps you upload audience members, remove specific users, or clear and replace an entire audience. The skill covers Customer Match audiences and other audience use cases the Data Manager API supports, such as mobile device ID audiences.
The skill changes how the agent works in three ways. It asks which destination account you are targeting before writing any code. It points you to the official guide and code sample for that destination. It reminds you to normalize and hash user data and to check request status afterward, because processing is asynchronous.
- Add members: uses the ingest request for Customer Match audiences.
- Remove members: removes specific users from an audience.
- Remove all or replace: clears an entire audience so it can be refilled.
- Event and conversion uploads are not covered. The skill says those belong to the data-manager-api-event-ingestion skill.
How do you install the skill?
The skill is distributed as a ZIP file from the skill's page in this directory. Download the ZIP, then choose one of the two install routes below.
For a personal setup, unzip the download into ~/.claude/skills/. To limit the skill to one project, unzip it into the .claude/skills/ folder inside that project. If you use the Claude apps instead, upload the ZIP under Settings → Capabilities → Skills.
- Personal install: unzip into ~/.claude/skills/
- Project install: unzip into .claude/skills/ in your project folder
- Claude apps: Settings → Capabilities → Skills, then upload the ZIP
What do you need before using it?
The skill assumes you already have code and API access. It does not build audiences without code. Set up access first, because the skill itself depends on other pieces.
Authentication and library installation are handled by the separate data-manager-api-setup skill. You also need a Google Ads or Display & Video 360 account with credentials, and one of the supported client libraries: Python, Java, PHP, Node, or .NET. Normalizing and hashing user identifiers uses a utility library.
- Data Manager API access and client libraries (via the data-manager-api-setup skill)
- Client library for Python, Java, PHP, Node, or .NET
- Google Ads or Display & Video 360 account with credentials
- Utility library for normalizing and hashing user identifiers
How do you trigger the skill with a natural request?
You do not need special syntax. Describe the task and name the destination. The skill's instructions tell the agent to stop and ask where the data is going if the destination is unclear. It will not assume Google Ads by default.
A good request says what you want to do (add, remove, or clear), which audience type, and which destination. If you have no audience yet, say so, and the agent will use the create-audience reference to find the destination ID it needs.
- Upload a CRM contact list to our Google Ads Customer Match audience.
- Remove these user emails from our DV360 Customer Match audience.
- Clear and replace all members of this Google Ads audience with a new list.
- Migrate our old Google Ads API audience upload script to the Data Manager API.
What does a correct workflow look like?
The skill sends you through a fixed sequence. First it confirms the destination, then it reads the matching implementation guide and code sample. Next it builds the destination object, formats and hashes the data, and builds the payload for the operation you chose.
Before sending, you can use validate_only to check the schema without applying changes. After sending, record the request_id and check status with retrieve_request_status. A successful response only means the payload was received, not that every record was processed.
- Confirm the destination account type (Google Ads or DV360).
- Read the upload or remove-all guide for that destination.
- Format and hash user data before building the request.
- Send with validate_only first if you want a schema check.
- Record the request_id and query retrieve_request_status.
from google.ads.datamanager_util import Formatter\nfrom google.ads.datamanager_util.format import Encoding\n\nformatter: Formatter = Formatter()\n\nprocessed_email: str = formatter.process_email_address(\n email, Encoding.HEX\n)What mistakes does the skill warn about?
The skill lists several gotchas that cause failed requests. Read them before writing code, because most are about field names and required settings.
- Hashed user identifiers need the encoding field set to HEX or BASE64.
- Uploads to a Customer Match audience require terms_of_service on the request.
- Set the address field on UserIdentifier only when postal_code, family_name, given_name and region_code are all present.
- product_destination_id must be a numeric string, not a resource name.
- ConsentStatus values are CONSENT_GRANTED and CONSENT_DENIED.
- UserIdentifier uses email_address and phone_number as field names.
What people use it for
- A developer scripts a nightly sync of a CRM customer list into a Google Ads Customer Match audience.
- A marketing engineer clears and replaces a DV360 Customer Match audience with a refreshed list.
- A team migrates an audience upload script from the older Google Ads or DV360 API to the Data Manager API using the field mapping guides.
- A developer removes a set of users from a mobile device ID audience after an opt-out.
Frequently asked questions
How do I install the data manager audience ingestion skill?
Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use, or into .claude/skills/ inside a project. In the Claude apps, you can instead upload the ZIP under Settings → Capabilities → Skills.
What do I need to use this skill?
You need Data Manager API access and client libraries, which the separate data-manager-api-setup skill helps you set up. You also need a Google Ads or Display & Video 360 account with credentials, one of the supported client libraries, and a utility library for hashing user identifiers.
Is the data manager audience ingestion skill free?
The source material does not state pricing or usage terms for the skill. It is listed under the Apache-2.0 licence. Check that licence and the Data Manager API terms for your own use case.
Can this skill upload conversions or events?
No. The skill says event and conversion uploads belong to the data-manager-api-event-ingestion skill, so install that one for those tasks.
Why does my audience upload show success but no members appear?
A successful response only means the request was received, because processing is asynchronous. Query retrieve_request_status with the request_id to see whether the records succeeded, partially succeeded, or failed.
Does the skill run scripts on my computer?
The skill is listed as not running scripts, but it does use the network. It guides an agent that writes code for you to run, and the code calls Google's APIs.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits developers and marketing engineers who already write code and want an agent to follow Google's audience ingestion rules for Google Ads and DV360. If you want a no-code audience builder, or you need to handle conversions or events, pick a different tool or use the event ingestion skill. Review consent and privacy requirements yourself, because the skill covers formatting but not legal consent.
Download the skill