Systems Lab

Agent skill

google-ads-conversion-tracking-debugger

This skill should be used when the user asks to \"debug conversion tracking\", \"fix missing conversions\", \"resolve duplicate conversions\", \"troubleshoot tag not firing\", or mentions \"GCLID issues\", \"conversion discrepancy\", or \"Enhanced Conversions not working\".

activeSelf-containedInstructions only738 words

Filed under ABM and paid and Analytics and reporting.

From Ad-Superpowers/ad-superpowers-plugin · 120 skills · 5 · pushed 2026-09-10

What it does when it runs

This skill should be used when the user asks to \"debug conversion tracking\", \"fix missing conversions\", \"resolve duplicate conversions\", \"troubleshoot tag not firing\", or mentions \"GCLID issues\", \"conversion discrepancy\", or \"Enhanced Conversions not working\". Do NOT use for: initial conversion tracking setup (use conversion-tracking-setup), Meta conversion issues (use meta tools), GA4 event debugging (use ga4 tools).

Read from the skill and the 3 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about google-ads-conversion-tracking-debugger

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/Ad-Superpowers/ad-superpowers-plugin.git /tmp/ad-superpowers-plugin
git -C /tmp/ad-superpowers-plugin sparse-checkout set "plugin/skills/google-ads-conversion-tracking-debugger"
mkdir -p ~/.claude/skills/google-ads-conversion-tracking-debugger
cp -R "/tmp/ad-superpowers-plugin/plugin/skills/google-ads-conversion-tracking-debugger/." ~/.claude/skills/google-ads-conversion-tracking-debugger/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

Or take the whole library

This repo ships a .claude-plugin manifest, so Claude Code can install all 120 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.

/plugin marketplace add Ad-Superpowers/ad-superpowers-plugin
/plugin

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from Ad-Superpowers/ad-superpowers-plugin/blob/9b6385d2d2d228e4dac096a1d6bc5715c04fa736/plugin/skills/google-ads-conversion-tracking-debugger/SKILL.md, which is licensed MIT (repository). 738 words, 11 headings.

Conversion Tracking Debugger

Systematic troubleshooting guide for Google Ads conversion tracking issues. Use the diagnostic flow below to quickly identify root causes, then follow the detailed decision trees in the references.

Quick Diagnosis Flow

WHAT IS THE PROBLEM?
│
├─► [A] Conversions NOT appearing
│   ├── Timing check: Wait 24-48 hours before debugging
│   ├── Check: Google Ads → Goals → Conversions → Status column
│   │   ├── "Inactive" → Tag not found on site
│   │   ├── "Unverified" → Setup incomplete
│   │   └── "No recent conversions" → Tag found but not firing
│   ├── Verify tag: Chrome DevTools → Network → filter "googleads"
│   └── Detailed steps: See references/decision-trees.md Section 1
│
├─► [B] Too MANY conversions (duplicates)
│   ├── Add unique transaction_id to conversion tag
│   ├── Set Count: "One" for leads, "Every" for purchases
│   ├── Check for duplicate tags (GTM + hardcoded)
│   └── Detailed steps: See references/decision-trees.md Section 2
│
├─► [C] Numbers DON'T MATCH (GA4 vs Ads)
│   ├── 10-30% difference = NORMAL (different attribution models)
│   ├── Align attribution windows for comparison
│   ├── Compare "All Conversions" column in Google Ads
│   └── Detailed steps: See references/decision-trees.md Section 3
│
├─► [D] Enhanced Conversions not working
│   ├── Check user_data object in dataLayer
│   ├── Verify consent: ad_user_data = "granted"
│   ├── Validate SHA-256 hash format (if pre-hashed)
│   ├── Wait 48-72 hours for status update
│   └── Detailed steps: See references/decision-trees.md Section 4
│
├─► [E] Offline conversion import failing
│   ├── Validate GCLID format and age (< 90 days)
│   ├── Check timestamp timezone (must match account)
│   ├── Verify conversion action name matches exactly
│   ├── Handle partial failures via error report
│   └── Detailed steps: See references/decision-trees.md Section 5
│
└─► [F] Tag/Pixel firing issues
    ├── Check JS console for errors
    ├── Verify GTM container is published
    ├── Test trigger conditions in GTM Preview
    ├── Remove duplicate implementations
    └── Detailed steps: See references/decision-trees.md Section 6

MCP Tool Integration

STEP 1: Pull current conversion data
google_ads_run_gaql(query="
  SELECT
    conversion_action.name,
    conversion_action.status,
    conversion_action.type,
    metrics.conversions,
    metrics.all_conversions,
    metrics.conversions_by_conversion_date
  FROM conversion_action
  WHERE segments.date DURING LAST_30_DAYS
  ORDER BY metrics.conversions DESC
")

STEP 2: Compare with GA4 (if linked)
ga4_run_report(
  property_id="YOUR_PROPERTY",
  metrics=["keyEvents", "sessions"],
  dimensions=["sessionDefaultChannelGroup"],
  start_date="30daysAgo",
  end_date="today"
)

STEP 3: Check for tracking anomalies
google_ads_run_gaql(query="
  SELECT
    campaign.name,
    metrics.conversions,
    metrics.clicks,
    metrics.conversions_from_interactions_rate
  FROM campaign
  WHERE segments.date DURING LAST_7_DAYS
    AND metrics.clicks > 100
    AND metrics.conversions_from_interactions_rate < 0.001
  ORDER BY metrics.clicks DESC
")
→ Campaigns with clicks but near-zero conversions = likely tracking issue

Quick Reference Card

CONVERSION TRACKING DEBUG CHEAT SHEET
======================================

NOT SHOWING?
→ Check tag presence (Network tab)
→ Verify conversion ID/label
→ Test consent state
→ Wait 24-48 hours

DUPLICATES?
→ Add transaction_id
→ Set Count: "One" for leads
→ Check for duplicate tags
→ Implement sessionStorage check

GA4 DISCREPANCY?
→ 10-30% difference = normal
→ Align attribution windows
→ Compare All Conversions column
→ Accept baseline, track trends

ENHANCED NOT WORKING?
→ Check user_data in dataLayer
→ Verify consent: ad_user_data
→ Validate hash format
→ Wait 48 hours for status

OFFLINE IMPORT FAILING?
→ Validate GCLID format/age
→ Check timestamp timezone
→ Verify conversion action name
→ Handle partial failures

TAG NOT FIRING?
→ Check JS console for errors
→ Verify GTM published
→ Test trigger conditions
→ Remove duplicate implementations

Consent Mode v2 Impact (2024+)

CONSENT MODE & CONVERSIONS
───────��───────────────────
EU visitors with consent denied:
├── Basic consent mode: No conversion tags fire
├── Advanced consent mode: Cookieless pings → modeled conversions
└── Check: Google Ads → Conversions → "Modeled" column

IF modeled conversions are low:
├── Verify consent mode implementation (GTM → Consent Overview)
├── Check CMP (Consent Management Platform) is firing before tags
├── Ensure default consent state is set before page load
└── Consider: Advanced consent mode for better modeling

Output: Debug Report Template

# Conversion Tracking Debug Report

## Issue
- **Problem type:** [Missing / Duplicate / Discrepancy / Enhanced / Offline / Tag]
- **First noticed:** [Date]
- **Affected campaigns:** [List]

## Diagnosis
- **Root cause:** [Description]
- **Evidence:** [What you found]

## Fix Applied
1. [Action taken]
2. [Verification step]

## Verification
- [ ] Conversion firing in Tag Assistant
- [ ] Conversion appearing in Google Ads (wait 24-48h)
- [ ] Numbers align with GA4 (within 10-30%)
- [ ] No duplicate conversions
- [ ] Consent mode working correctly

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what google-ads-conversion-tracking-debugger does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.