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…
Guides developers through implementing event and conversion ingestion to Google products using the Data Manager API /v1/events/ingest endpoint and its associated client libraries.
$ npx skills add google/skills --skill data-manager-api-event-ingestion -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install google/skills data-manager-api-event-ingestion --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-event-ingestion .claude/skills/data-manager-api-event-ingestion && rm -rf skills-srcUse ~/.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/
Install the "data-manager-api-event-ingestion" agent skill from https://github.com/google/skills/tree/main/skills/ads/data-manager-api-event-ingestion into .claude/skills/data-manager-api-event-ingestion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-manager-api-event-ingestion", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/google/skills/tree/main/skills/ads/data-manager-api-event-ingestionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add google/skills --skill data-manager-api-event-ingestion -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install google/skills data-manager-api-event-ingestion --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ads/data-manager-api-event-ingestion .agents/skills/data-manager-api-event-ingestion && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "data-manager-api-event-ingestion" agent skill from https://github.com/google/skills/tree/main/skills/ads/data-manager-api-event-ingestion into .agents/skills/data-manager-api-event-ingestion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-manager-api-event-ingestion", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add google/skills --skill data-manager-api-event-ingestion -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install google/skills data-manager-api-event-ingestion --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ads/data-manager-api-event-ingestion .cursor/skills/data-manager-api-event-ingestion && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "data-manager-api-event-ingestion" agent skill from https://github.com/google/skills/tree/main/skills/ads/data-manager-api-event-ingestion into .cursor/skills/data-manager-api-event-ingestion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-manager-api-event-ingestion", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/google/skills.git --path skills/ads/data-manager-api-event-ingestion--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add google/skills --skill data-manager-api-event-ingestion -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install google/skills data-manager-api-event-ingestion --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ads/data-manager-api-event-ingestion .gemini/skills/data-manager-api-event-ingestion && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "data-manager-api-event-ingestion" agent skill from https://github.com/google/skills/tree/main/skills/ads/data-manager-api-event-ingestion into .gemini/skills/data-manager-api-event-ingestion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-manager-api-event-ingestion", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install google/skills data-manager-api-event-ingestionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add google/skills --skill data-manager-api-event-ingestion -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ads/data-manager-api-event-ingestion .github/skills/data-manager-api-event-ingestion && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "data-manager-api-event-ingestion" agent skill from https://github.com/google/skills/tree/main/skills/ads/data-manager-api-event-ingestion into .github/skills/data-manager-api-event-ingestion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-manager-api-event-ingestion", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add google/skills --skill data-manager-api-event-ingestion -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install google/skills data-manager-api-event-ingestion --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ads/data-manager-api-event-ingestion .opencode/skills/data-manager-api-event-ingestion && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "data-manager-api-event-ingestion" agent skill from https://github.com/google/skills/tree/main/skills/ads/data-manager-api-event-ingestion into .opencode/skills/data-manager-api-event-ingestion/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-manager-api-event-ingestion", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
data-manager-api-event-ingestionGuides developers through implementing event and conversion ingestion to Google products using the Data Manager API /v1/events/ingest endpoint and its associated client libraries.
Data Manager API Event Ingestion is an agent skill from google/skills, published by the product's own GitHub organization. Guides developers through implementing event and conversion ingestion to Google products using the Data Manager API /v1/events/ingest endpoint and its associated client libraries. Use this skill when the user wants to upload offline conversions, enhanced conversions for leads, click conversions, Google Analytics web or app events, or any other event ingestion use case supported by the Data Manager API. Don't use for uploading audience members (use the data-manager-api-audience-ingestion skill).
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO, covering Paid advertising. It works with Google Analytics and Google Ads. The repository describes itself as: Agent Skills for Google products and technologies. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8a1ac05. It shows what the files ask for, not the result of running them.
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.
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.
Links to these hosts (documentation or services it may open):
developers.google.comgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Data Manager API Event Ingestion loads about 2.8k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 948 words of instructions outside code blocks.
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.
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.
The full file from google/skills at commit 8a1ac05, republished under its Apache-2.0 licence (© google). 948 words, ~2,820 tokens.
.claude/skills/data-manager-api-event-ingestion/SKILL.md (or your agent's skills folder).data-manager-api-setup skill.account_type field of the operating_account in the Destination,
and also determines valid event identifiers and requirements.Destination (operating_account.account_type) | Use case | Implementation guide |
|---|---|---|
Google Ads (GOOGLE_ADS) | Offline conversions, enhanced conversions for leads | Send events |
Google Ads (GOOGLE_ADS) | Multi-source conversions supplementing the Google tag | Send events |
Google Ads (GOOGLE_ADS) | Store sales conversions | Send events |
Google Analytics (GOOGLE_ANALYTICS_PROPERTY) | Recommended and custom GA4 events | Send events |
Google Analytics (GOOGLE_ANALYTICS_PROPERTY) | Multi-source events with a transaction ID | Send events |
Floodlight (FLOODLIGHT_CONFIG) | Floodlight offline conversions | Send events |
Floodlight (FLOODLIGHT_CONFIG) | Multi-source conversions supplementing the Google or Floodlight tag | Send events |
If the request doesn't match any row, fetch the Events overview to find the right guide rather than guessing.
[!IMPORTANT] If writing or updating an ingestion script, ALWAYS retrieve the relevant code sample to use as a reference:
| Language | Sample |
|---|---|
| Python | ingest_events.py |
| Java | IngestEvents.java |
| PHP | ingest_events.php |
| Node | ingest_events.ts |
| .NET | IngestEvents.cs |
[!IMPORTANT] If refactoring code to upgrade from another Google API, ALWAYS extract the full contents of the relevant field mapping guide.
Implement the ingestion logic using the following checkpoints:
IngestionServiceClient).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.IngestEventsRequest) containing the destinations, event records, and
consent permissions.validate_only boolean
option on the IngestEventsRequest to allow developers to validate schemas
without actually uploading data.ingest_events and record the returned
request_id for later diagnostics.ingest_events will also
include field_warnings, a list of FieldWarning objects detailing the
issues.request_id) only
indicates the payload was received. To check if the records actually
succeeded, partially succeeded, or failed to process, query the
client.retrieve_request_status endpoint using the request_id. Skipping
this step is a common user mistake.Fetch the Format user data guide and use that as the source of truth for formatting and normalization rules.
Use the utility library to format, hash, and encrypt user data (emails, phone numbers, addresses).
Python Example:
from google.ads.datamanager_util import Formatter
from google.ads.datamanager_util.format import Encoding
formatter: Formatter = Formatter()
processed_email: str = formatter.process_email_address(
email, Encoding.HEX
)product_destination_id as a numeric string. It is NOT a resource
name path.event_timestamp strictly in RFC 3339 format. Use the SDK's typed
timestamp object instead of a raw string where available.gclid, gbraid, wbraid) inside the
ad_identifiers block, not directly on the base event payload.ConsentStatus are CONSENT_GRANTED and
CONSENT_DENIED. Do not use the values GRANTED and DENIED.consent can be set globally on the IngestEventsRequest or on
individual Events.UserIdentifier uses email_address and phone_number.
Do not use the Google Ads API fields hashed_email and
hashed_phone_number.currency, not
currency_code.retrieve_request_status) if
validate_only is set to true.[!IMPORTANT] Refer to Understand API Errors for a detailed guide on how to understand the structure of errors and warnings returned by the API.
Periodically poll for status using exponential backoff, starting at least
30 minutes after sending the IngestEventsRequest.
client.retrieve_request_status using
RetrieveRequestStatusRequest(request_id=...).request_status_per_destination in the response to inspect
each target's request_status.request_status is SUCCESS,
PARTIAL_SUCCESS, or FAILED, inspect diagnostic values:events_ingestion_status.record_count
(includes both success and failure).FAILED or PARTIAL_SUCCESS, inspect
each error's reason and record_count under
error_info.error_counts.reason and record_count
under warning_info.warning_counts (even if the destination status is
SUCCESS).© 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
Just SKILL.md in skills/ads/data-manager-api-event-ingestion of google/skills.
Open the folder on GitHubat commit 8a1ac05
Data Manager API Event 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Data Manager API Event Ingestion this skillgoogle/skills | 21k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Blog GoogleAgriciDaniel/claude-blog | 2.3k | 1 repos | ~3.3k | Automated safety check: Notes | MIT | |
| SEO Googleseranking/seo-skills | 160 | — | ~4.8k | Automated safety check: Pass | MIT | |
| Google Adsarnabbagxd/Brand-building-skills | 719 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Ad Conversion Tracking Setupminhnv0807/ai-business-skills | 608 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Attribution Reportindranilbanerjee/digital-marketing-pro | 854 | 1 repos | ~3.3k | Automated safety check: Pass | MIT |
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…
seranking/seo-skills
Direct access to Google's own SEO data via Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, GA4 organic…
arnabbagxd/Brand-building-skills
Plan, build, and optimize Google Ads campaigns — Search, Shopping, Performance Max, Display, and YouTube — including keyword research, match types, bidding strategy, Quality Score, ad extensions…
minhnv0807/ai-business-skills
Sets up and verifies conversion tracking before ad spend: Meta Pixel and CAPI, Google Ads, GA4, TikTok, server-side GTM, consent mode, UTMs and a pre-launch checklist.
indranilbanerjee/digital-marketing-pro
Run multi-touch attribution analysis on real conversion-path data — applies two or more models side-by-side (first-touch, last-touch, linear, time-decay, position-based, data-driven), computes…
mukul975/Privacy-Data-Protection-Skills
Configuring Google Consent Mode v2 for privacy-compliant measurement and advertising.
google/skills
Manages Google Cloud Privileged Access Manager entitlements and grants: create and edit entitlements, request temporary access, and approve or deny pending grants.
google/skills
Writes Terraform alerting policies for AI agents that emit OpenTelemetry metrics, covering reliability, cost, safety, security and quality signals on Google Cloud.
google/skills
Deploys open models or custom weights from Model Garden to Agent Platform endpoints, checks deployment status and cleans up endpoints, confirming before any change.
google/skills
Searches, manages and scaffolds skills in the Gemini Enterprise Agent Platform Skill Registry using bundled Python scripts and Google Cloud credentials.
google/skills
Designs GCP infrastructure as local Terraform, validates and scans it against best practices, then imports it to Application Design Center for deployment and troubleshooting.
google/skills
Analyzes BigQuery slot use, query costs and execution bottlenecks from INFORMATION_SCHEMA to diagnose slow queries, slot contention and unpartitioned scans.
Works with
Categories
Guides developers through implementing event and conversion ingestion to Google products using the Data Manager API /v1/events/ingest endpoint and its associated client libraries. Data Manager API Event Ingestion is an agent skill from google/skills, published by the product's own GitHub organization. Guides developers through implementing event and conversion ingestion to Google products using the Data Manager API /v1/events/ingest endpoint and its associated client libraries.
Data Manager API Event Ingestion fits situations like: the user wants to upload offline conversions; enhanced conversions for leads; click conversions; google Analytics web.
Run `npx skills add google/skills --skill data-manager-api-event-ingestion -a claude-code`. Or copy the skill folder (skills/ads/data-manager-api-event-ingestion in google/skills) into .claude/skills/data-manager-api-event-ingestion in your project. Claude Code loads it when a task matches its description.
Run `npx skills add google/skills --skill data-manager-api-event-ingestion -a codex`. Or copy the skill folder (skills/ads/data-manager-api-event-ingestion in google/skills) into .agents/skills/data-manager-api-event-ingestion in your project. Codex loads it when a task matches its description.
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-event-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-event-ingestion, .gemini/skills/data-manager-api-event-ingestion, .github/skills/data-manager-api-event-ingestion and .opencode/skills/data-manager-api-event-ingestion in your project.
SKILL.md names no scripts, command-line tools or credentials: Data Manager API Event Ingestion is instructions for the agent only. Our summary lists: Python 3.
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.
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.
Data Manager API Event 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.
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.
Skills that share tags, products or a category with Data Manager API Event Ingestion: Blog Google (AgriciDaniel/claude-blog, 2.3k stars), SEO Google (seranking/seo-skills, 160 stars), Google Ads (arnabbagxd/Brand-building-skills, 719 stars) and Ad Conversion Tracking Setup (minhnv0807/ai-business-skills, 608 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.