Official agent skill

Data Manager API Audience Ingestion

by google in google/skills

Guides developers through managing (adding, removing, and clearing) audience members for Google products using the Data Manager API and its associated client libraries.

OfficialApache-2.0Auto-check passedMarketing & SEO

Install Data Manager API Audience Ingestion

skills CLI
$ npx skills add google/skills --skill data-manager-api-audience-ingestion -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install google/skills data-manager-api-audience-ingestion --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ads/data-manager-api-audience-ingestion .claude/skills/data-manager-api-audience-ingestion && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
data-manager-api-audience-ingestion
GitHub stars
21k
Token cost
~2.8k tokens
SKILL.md length
971 words
Files
3 (incl. references)
Skills in repo
145
Repo updated
First seen
Licence
Apache-2.0

At a glance

Guides developers through managing (adding, removing, and clearing) audience members for Google products using the Data Manager API and its associated client libraries.

  • Works in 4 steps: Identify Use Case & Read Documentation → Retrieve Code Sample → Retrieve Migration Guides → …
  • The user wants to upload audience members
  • SKILL.md covers Implementation Workflow, Critical Gotchas, Error Handling & Troubleshooting and API Reference
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Data Manager API Audience Ingestion is an agent skill from google/skills, published by the product's own GitHub organization. Guides developers through managing (adding, removing, and clearing) audience members for Google products using the Data Manager API and its associated client libraries. Use this skill when the user wants to upload audience members, remove specific users, or clear/replace an entire audience for Customer Match, mobile device ID audiences, or any other audience use case supported by the Data Manager API. Don't use for uploading events or conversions (use the data-manager-api-event-ingestion skill).

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/create-audience.md` and `references/formatting.md`).

It sits in Marketing & SEO. It works with Google Ads. The repository describes itself as: Agent Skills for Google products and technologies. The licence is Apache-2.0.

When your agent uses it

  • The user wants to upload audience members
  • Remove specific users
  • Clear/replace an entire audience for Customer Match
  • Mobile device ID audiences

Example prompts

  • “Use the data-manager-api-audience-ingestion skill to guide developers through managing (adding, removing, and clearing) audience members for Google…”
  • “/data-manager-api-audience-ingestion”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Identify Use Case & Read Documentation
  2. Retrieve Code Sample
  3. Retrieve Migration Guides
  4. Implementation

What it can do on your machine

Read from SKILL.md and the folder at commit 8a1ac05. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developers.google.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Data Manager API Audience Ingestion loads about 2.8k tokens when it runs, and up to ~3.5k if it reads all its reference files. Until then it costs about 134 tokens; SKILL.md has 971 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~134
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from google/skills at commit 8a1ac05, republished under its Apache-2.0 licence (© google). 971 words, ~2,835 tokens.

Download SKILL.mdSave it as .claude/skills/data-manager-api-audience-ingestion/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
data-manager-api-audience-ingestion
description
Guides developers through managing (adding, removing, and clearing) audience members for Google products using the Data Manager API and its associated client libraries. Use this skill when the user wants to upload audience members, remove specific users, or clear/replace an entire audience for Customer Match, mobile device ID audiences, or any other audience use case supported by the Data Manager API. Don't use for uploading events or conversions (use the data-manager-api-event-ingestion skill).
metadata.version
1.1.0
metadata.category
GoogleAds

Data Manager API Audience Ingestion

Implementation Workflow

Prerequisites
  • Authentication & Library Installation: If you need to set up access to the Data Manager API or install the client and utility libraries, refer to the data-manager-api-setup skill.
  • Audience Creation (if needed): If the user does not have an existing audience or needs to create a new one, use the Create an Audience reference. This step provides the product_destination_id needed for the ingestion or removal requests.
Step 1: Identify Use Case & Read Documentation
  • Determine Destination Account Type: [CRITICAL] If it's not clear where the data is being sent (e.g., Google Ads, Display & Video 360, etc.), STOP and CLARIFY with the user BEFORE generating any code. Do not assume Google Ads by default. This maps to the account_type field of the operating_account in the Destination.
  • Read the implementation guide: Read the relevant guide for your destination and use case. Do this before answering questions or writing code because each destination has unique payload structures, consent rules, and required fields.
DestinationAudience TypeAccepted Data TypesUpload GuideRemove All/Replace All Guide
Google AdsCustomer Matchcomposite_data.user_data (contact info), mobile_data (device IDs), user_id_data (user IDs)Upload DataRemove All/Replace All
Display & Video 360 (DV360)Customer Matchcomposite_data.user_data (contact info), mobile_data (device IDs)Upload DataRemove All/Replace All
Step 2: Retrieve Code Sample

[!IMPORTANT] If writing or updating an ingestion script, ALWAYS retrieve the relevant code sample to use as a reference:

Step 3: Retrieve Migration Guides

[!IMPORTANT] If refactoring code to upgrade from another Google API, ALWAYS extract the full contents of the relevant field mapping guide.

Google Ads
Display & Video 360
Step 4: Implementation

Implement the ingestion logic using the following checkpoints:

  • Initialize Client: Instantiate the Data Manager client (IngestionServiceClient).
  • Define Destinations: Build the Destination object using the product_destination_id and the appropriate account configurations: operating_account (target account receiving data), login_account (if authenticating using a manager account or a data partner account), and linked_account (if you're a data partner accessing the account via a partner link to a manager account). STRONGLY RECOMMENDED: Refer to the Configure destinations and headers guide for more details on configuring destinations.
  • Format User Data: If sending an IngestAudienceMembersRequest or RemoveAudienceMembersRequest, refer to Formatting User Data to properly normalize and hash user identifiers using the utility library.
  • Construct Payload: Build the appropriate request payload based on the operation:
    • Add: IngestAudienceMembersRequest
    • Remove: RemoveAudienceMembersRequest
    • Remove All: RemoveAllAudienceMembersRequest
  • Support Validation: Support sending the validate_only boolean option on the payload to allow developers to validate schemas without actually applying changes.
  • Send Request: Execute the appropriate method and record the returned request_id for later diagnostics:
    • Add: ingest_audience_members
    • Remove: remove_audience_members
    • Remove All: remove_all_audience_members
  • Check for Ingestion Warnings: If any non-required field had a validation failure, the response from ingest_audience_members will also include field_warnings, a list of FieldWarning objects detailing the issues.
  • Retrieve Request Status: Check the status of the ingestion request using diagnostics. Since request processing is asynchronous, a successful response (HTTP 200 OK returning a request_id) only indicates the payload was received. To check if the records actually succeeded, partially succeeded, or failed to process, query client.retrieve_request_status using the request_id. Skipping this step is a common user mistake.
Show full SKILL.md (407 more words)Show less

Critical Gotchas

  • If sending hashed user identifiers in user_data for ingest_audience_members or remove_audience_members, you must set the encoding field on the IngestAudienceMembersRequest to HEX or BASE64.
  • If uploading to a Customer Match audience, the terms_of_service field is required on the IngestAudienceMembersRequest to indicate the user has accepted the policies.
  • Only set the address field on UserIdentifier if all required fields (postal_code, family_name, given_name, region_code) are present; incomplete address fields will cause the API request to fail.
  • product_destination_id must be a numeric string. It is NOT a resource name.
  • The enum values for ConsentStatus are CONSENT_GRANTED and CONSENT_DENIED. Do not use the values GRANTED and DENIED.
  • Field names on UserIdentifier are email_address and phone_number. Do not use the Google Ads API field names hashed_email and hashed_phone_number.
  • Do not call the diagnostics endpoint (retrieve_request_status) if validate_only is set to true.

Error Handling & Troubleshooting

Inspecting Error Payloads & Ingestion Warnings

[!IMPORTANT] Refer to Understand API Errors for a detailed guide on how to understand the structure of errors and warnings returned by the API.

Retrieving Request Status (Diagnostics)

Periodically poll for status using exponential backoff, starting at least 30 minutes after sending the request.

  1. Call client.retrieve_request_status using RetrieveRequestStatusRequest(request_id=...).
  2. Loop through request_status_per_destination in the response to inspect each target's request_status.
  3. If processing is complete and request_status is SUCCESS, PARTIAL_SUCCESS, or FAILED, inspect diagnostic values:
    • Audience Status: Check the status specific to your request:
      • Ingest: Check the data-type-specific status nested under audience_members_ingestion_status (e.g., composite_data_ingestion_status).
      • Remove Individual Members: Check the data-type-specific status nested under audience_members_removal_status (e.g., composite_data_removal_status).
      • Remove All Members: There are no nested status fields or record counts available to check for this request type.
      • Record Count: If applicable (ingest or remove individual members), check record_count (nested inside the data-type-specific status object) which includes both success and failure.
      • Identifier Counts: If applicable (ingest or remove individual members), check the data-type-specific count field nested inside the status object (e.g., data_type_counts if uploading or removing composite data, or mobile_id_count if uploading or removing mobile IDs). Refer to the Diagnostics Guide for other count fields.
      • Match Rate Range: For uploads of user_data and composite_data, check upload_match_rate_range nested inside the status object.
    • Error Details: If status is FAILED or PARTIAL_SUCCESS, inspect each error's reason and record_count under error_info.error_counts.
    • Warning Details: Inspect each warning's reason and record_count under warning_info.warning_counts (even if the destination status is SUCCESS).

API Reference

© google, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/ads/data-manager-api-audience-ingestion of google/skills.

  • SKILL.md
  • references/create-audience.md
  • references/formatting.md

Open the folder on GitHubat commit 8a1ac05

Compare with similar skills

Data Manager API Audience Ingestion next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Data Manager API Audience Ingestion compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Data Manager API Audience Ingestion this skillgoogle/skills21k—~2.8kAutomated safety check: PassApache-2.0
Blog GoogleAgriciDaniel/claude-blog2.3k1 repos~3.3kAutomated safety check: NotesMIT
Paid Adsfreekmurze/dotfiles1k13 repos~2.4kAutomated safety check: PassNone
Google Adszapier/connectors1761 repos~3.7kAutomated safety check: PassElastic-2.0
Money Adsiamzifei/show-me-the-money1k—~2.4kAutomated safety check: PassCustom licence
AdsCesarjoquin/Marketing-Skills1991 repos~3.5kAutomated safety check: PassMIT

Similar skills

  • Blog Google

    AgriciDaniel/claude-blog

    Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…

    2.3k GitHub starsUsed in 1 repo~3.3k tokens
    Marketing & SEOAuto-check: notes
  • Paid Ads

    freekmurze/dotfiles

    When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.

    1k GitHub starsUsed in 13 repos~2.4k tokens
    Marketing & SEOAuto-check passed
  • Google Ads

    zapier/connectors

    Official

    Agent-callable Google Ads tools — search campaigns, ad groups, and ads via GAQL, build performance reports, manage campaign status and budgets, and set up conversion tracking.

    176 GitHub starsUsed in 1 repo~3.7k tokens
    Marketing & SEOAuto-check passed
  • Money Ads

    iamzifei/show-me-the-money

    Paid advertising automation for Google Ads, Meta Ads, and other ad platforms.

    1k GitHub stars~2.4k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Ads

    Cesarjoquin/Marketing-Skills

    When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.

    199 GitHub starsUsed in 1 repo~3.5k tokens
    Marketing & SEOAuto-check passed
  • Google Ads

    superdesigndev/treg

    Traps when running Google Ads through treg — the API requirements and cleanup semantics that cost round-trips or money.

    4.5k GitHub stars~1.9k tokensUpdated today
    Marketing & SEOAuto-check passed

More from google/skills

All 145 skills in this repo
  • Official

    Manages Google Cloud Privileged Access Manager entitlements and grants: create and edit entitlements, request temporary access, and approve or deny pending grants.

    21k GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • Official

    Writes Terraform alerting policies for AI agents that emit OpenTelemetry metrics, covering reliability, cost, safety, security and quality signals on Google Cloud.

    21k GitHub stars~4.2k tokensUpdated yesterday
    Auto-check passed
  • Official

    Deploys open models or custom weights from Model Garden to Agent Platform endpoints, checks deployment status and cleans up endpoints, confirming before any change.

    21k GitHub stars~5.1k tokensUpdated yesterday
    Auto-check passed
  • Official

    Searches, manages and scaffolds skills in the Gemini Enterprise Agent Platform Skill Registry using bundled Python scripts and Google Cloud credentials.

    21k GitHub stars~584 tokensUpdated yesterday
    Auto-check passed
  • Designs GCP infrastructure as local Terraform, validates and scans it against best practices, then imports it to Application Design Center for deployment and troubleshooting.

    21k GitHub stars~4.4k tokensUpdated yesterday
    Auto-check passed
  • Official

    Analyzes BigQuery slot use, query costs and execution bottlenecks from INFORMATION_SCHEMA to diagnose slow queries, slot contention and unpartitioned scans.

    21k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Data Manager API Audience Ingestion

What does Data Manager API Audience Ingestion do?

Guides developers through managing (adding, removing, and clearing) audience members for Google products using the Data Manager API and its associated client libraries. Data Manager API Audience Ingestion is an agent skill from google/skills, published by the product's own GitHub organization. Guides developers through managing (adding, removing, and clearing) audience members for Google products using the Data Manager API and its associated client libraries.

When should I use Data Manager API Audience Ingestion?

Data Manager API Audience Ingestion fits situations like: the user wants to upload audience members; remove specific users; clear/replace an entire audience for Customer Match; mobile device ID audiences.

How do I install Data Manager API Audience Ingestion in Claude Code?

Run `npx skills add google/skills --skill data-manager-api-audience-ingestion -a claude-code`. Or copy the skill folder (skills/ads/data-manager-api-audience-ingestion in google/skills) into .claude/skills/data-manager-api-audience-ingestion in your project. Claude Code loads it when a task matches its description.

How do I install Data Manager API Audience Ingestion in Codex?

Run `npx skills add google/skills --skill data-manager-api-audience-ingestion -a codex`. Or copy the skill folder (skills/ads/data-manager-api-audience-ingestion in google/skills) into .agents/skills/data-manager-api-audience-ingestion in your project. Codex loads it when a task matches its description.

Can I use Data Manager API Audience Ingestion in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add google/skills --skill data-manager-api-audience-ingestion -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/data-manager-api-audience-ingestion, .gemini/skills/data-manager-api-audience-ingestion, .github/skills/data-manager-api-audience-ingestion and .opencode/skills/data-manager-api-audience-ingestion in your project.

What does Data Manager API Audience Ingestion need to run?

SKILL.md names no scripts, command-line tools or credentials: Data Manager API Audience Ingestion is instructions for the agent only.

Does Data Manager API Audience Ingestion access the network?

SKILL.md names 2 domains. As links in the text: developers.google.com and github.com. This is read from the text; nothing was executed.

Is Data Manager API Audience Ingestion safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Data Manager API Audience Ingestion use?

Data Manager API Audience Ingestion is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Data Manager API Audience Ingestion use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 685 tokens, read only when the agent opens those files.

What are the alternatives to Data Manager API Audience Ingestion?

Skills that share tags, products or a category with Data Manager API Audience Ingestion: Blog Google (AgriciDaniel/claude-blog, 2.3k stars), Paid Ads (freekmurze/dotfiles, 1k stars), Google Ads (zapier/connectors, 176 stars) and Money Ads (iamzifei/show-me-the-money, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Data Manager API Audience Ingestion?

google (a GitHub organization, an official publisher) maintains it in google/skills, which has 20,994 GitHub stars. The repository holds 145 skills in this directory. The repository was last updated on October 6, 2026.

Source: google/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.