Skip to main content
Glama
kLOsk

AdLoop: Google Ads, Reddit Ads & GA4

Attribution check

attribution_check
Read-only

Compare Google Ads-reported conversions with GA4 totals to uncover tracking discrepancies, consent gaps, attribution differences, and missing conversion events.

Instructions

Compare Ads-reported conversions vs GA4 — find tracking discrepancies.

Checks whether conversions reported by Google Ads match what GA4 records, diagnoses GDPR consent gaps, attribution model differences, and missing conversion event configuration. Returns both sides' totals with the discrepancy and diagnostic insights. GA4 conversions are the property's key events (GA4 metric keyEvents).

Google Analytics Data API: https://developers.google.com/analytics/devguides/reporting/data/v1 and Google Ads API: https://developers.google.com/google-ads/api/docs/start

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
customer_idNoGoogle Ads customer ID, digits with or without dashes (e.g. "123-456-7890"). Defaults to the configured ads.customer_id.
property_idNoGA4 property as "properties/123456789" (see get_account_summaries). If empty, uses the default from config.
date_range_endNoEnd date as "YYYY-MM-DD" (inclusive).
date_range_startNoStart date as "YYYY-MM-DD". Both dates must be set to apply a range; if either is empty, the last 30 days are used.
conversion_eventsNoOptional list of GA4 event names to specifically check (e.g. ["sign_up", "purchase"]). If omitted, compares aggregate totals only.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.27.1
    • addedInput schema / properties / conversion_events / description
      Added value: +"Optional list of GA4 event names to specifically\ncheck (e.g. [\"sign_up\", \"purchase\"]). If omitted, compares\naggregate totals only."
    • addedInput schema / properties / customer_id / description
      Added value: +"Google Ads customer ID, digits with or without dashes\n(e.g. \"123-456-7890\"). Defaults to the configured ads.customer_id."
    • addedInput schema / properties / date_range_end / description
      Added value: +"End date as \"YYYY-MM-DD\" (inclusive)."
    • addedInput schema / properties / date_range_start / description
      Added value: +"Start date as \"YYYY-MM-DD\". Both dates must be set\nto apply a range; if either is empty, the last 30 days are used."
    • addedInput schema / properties / property_id / description
      Added value: +"GA4 property as \"properties/123456789\" (see\nget_account_summaries). If empty, uses the default from config."
  2. First observedv0.9.0

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description adds genuinely useful behavior — it cross-references two datasets, names the specific diagnoses it performs (consent gaps, attribution model differences, missing conversion event config), and clarifies the metric semantics ('GA4 conversions are the property's key events / keyEvents'). It doesn't mention auth requirements or rate/cost constraints for the two API calls it makes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The comparison purpose is front-loaded in the first clause, followed by diagnoses and return shape; nothing is padded or repeated. The trailing pair of documentation URLs is arguably filler for an agent that already has the tool, but it is a single compact sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so the brief mention of return contents ('both sides' totals with the discrepancy and diagnostic insights') is sufficient without enumerating fields. With 100% schema coverage and no required parameters, the definition supplies what an agent needs to call it, though it never explains how this cross-source analysis differs from validate_tracking or analyze_campaign_conversions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each of the five optional parameters documented (defaults, formats, the 'both dates must be set else last 30 days' rule, and conversion_events semantics), so the baseline is 3. The description adds only the tangential note that GA4 conversions are keyEvents and no direct parameter guidance beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and two resources ('Compare Ads-reported conversions vs GA4 — find tracking discrepancies') and enumerates the diagnostic categories it covers, so an agent can tell what it computes. It stops short of distinguishing itself from close siblings such as validate_tracking, audit_event_coverage, or analyze_campaign_conversions, which an agent browsing this large toolset would still have to disambiguate by opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose ('find tracking discrepancies', 'diagnoses GDPR consent gaps'), so it is reasonably clear when an agent would reach for it. However, there is no explicit when-to-use/when-not statement and no mention of the nearly overlapping alternatives (validate_tracking, audit_event_coverage, analyze_campaign_conversions), leaving the agent to infer selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools