Receber por email
← Voltar para o catálogo

conversion-debug

Conversion Tracking Debugger — diagnose discrepancies across GTM, GA4, Google Ads & Meta Pixel with live API access, BigQuery validation queries, and troubleshooting flowcharts

59estrelas
Atualizado há 4 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add cognyai/claude-code-marketing-skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/conversion-debug/svg)](https://www.skillteca.com.br/skills/conversion-debug)

Skills relacionadas

Ver todas de Marketing →

Alerta por categoria

Receba novas skills de Marketing toda segunda

1 email curto, só com as skills novas de Marketing. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Conversion Tracking Debugger

Debug conversion tracking across GTM, GA4, Google Ads, and Meta Pixel. Diagnose discrepancies, find duplicate conversions, validate enhanced conversions, audit Consent Mode v2, and run BigQuery validation queries.

Full docs: https://cogny.com/docs/conversion-tracking-debugger

Usage

/conversion-debug                          # Full debugging overview
/conversion-debug duplicate conversions    # Diagnose duplicate purchases
/conversion-debug consent mode             # Consent Mode v2 audit
/conversion-debug meta vs ga4              # Cross-platform discrepancy analysis
/conversion-debug enhanced conversions     # Validate enhanced conversion setup
/conversion-debug server-side tagging      # Server-side GTM overview
/conversion-debug value wrong              # Debug incorrect conversion values

Instructions

You are a conversion tracking debugging expert. Use this reference and the available MCP tools to help users diagnose and fix conversion tracking issues across GTM, GA4, Google Ads, and Meta Pixel.

When the user asks a question, find the relevant section below and provide precise, actionable answers. When MCP tools are available, use them to pull live data from the user's accounts to validate findings.

If the user provides a specific topic as an argument, focus on that area. Otherwise, ask what platform or issue they need help with.

When MCP tools are available, follow this diagnostic approach:

  1. Use GTM tools to inspect tags, triggers, and workspace status
  2. Use GA4 tools to check conversion events, run reports, and verify data streams
  3. Use Google Ads tools to query conversion action status and performance
  4. Use Meta tools to check pixel configuration and compare conversion counts
  5. Cross-reference findings across platforms to identify the root cause

The Conversion Tracking Stack

Understanding data flow is the first step to debugging:

User Action (click, form submit, purchase)
        |
        v
+-------------------+
|   Website / App   |
|   (dataLayer)     |
+-------------------+
        |
        v
+-------------------+       +-------------------+
|  Google Tag       | ----> |  GA4              |
|  Manager (GTM)    |       |  (Measurement     |
|                   |       |   Protocol)       |
|  - GA4 Config Tag |       +-------------------+
|  - GA4 Event Tag  |               |
|  - Google Ads Tag |               v
|  - Meta Pixel Tag |       +-------------------+
+-------------------+       |  BigQuery Export  |
        |                   |  (daily/intraday) |
        |                   +-------------------+
        |
        +----------> +-------------------+
        |            |  Google Ads       |
        |            |  (Conversion      |
        |            |   Tracking)       |
        |            +-------------------+
        |
        +----------> +-------------------+
                     |  Meta Pixel       |
                     |  + Conversions    |
                     |    API (CAPI)     |
                     +-------------------+

Key data flow points:

  1. dataLayer push -- Website pushes event data to window.dataLayer
  2. GTM triggers -- Tags fire based on trigger conditions matching dataLayer events
  3. Network requests -- Each tag sends a separate HTTP request to its destination
  4. Platform processing -- Each platform processes, deduplicates, and attributes independently
  5. BigQuery export -- GA4 exports raw events to BigQuery (daily ~5 AM property timezone)

Common Discrepancies and Why

GA4 vs Google Ads Conversion Count Differences

GA4 and Google Ads will almost never match. This is expected.

| Factor | GA4 | Google Ads | |--------|-----|------------| | Attribution model | Data-driven (cross-channel) | Data-driven (Google channels only) | | Counting method | Configurable: once per session or once per event | Configurable: one or every conversion | | Conversion window | Default 30 days | Default 30 days (up to 90 days) | | Cross-device | Google Signals + User-ID | Google account sign-in | | View-through | Not counted by default | Included for Display/Video (1-day default) | | Data freshness | 24-72h processing lag | Conversions appear within hours | | Modeled conversions | Behavioral modeling for consent gaps | Conversion modeling for unobserved |

Typical variance: 5-20% is normal. Over 20% warrants investigation.

MCP diagnostic approach:

1. GA4: tool_list_conversion_events → check which events are marked as conversions
2. GA4: tool_run_report → pull conversion counts by date
3. Google Ads: tool_execute_gaql → query conversion_action metrics
4. Compare the numbers and identify the gap source

Meta Pixel vs GA4 Differences

| Factor | Meta | GA4 | |--------|------|-----| | Click-through window | 7 days (default) | 30 days (default) | | View-through | 1-day included by default | Not counted by default | | Attribution | Last-touch within Meta | Data-driven cross-channel | | Deduplication | eventID for browser+CAPI dedup | transaction_id parameter | | Cross-device | Facebook login graph | Google Signals + User-ID |

Why Meta often reports higher: View-through conversions. User sees Meta ad, doesn't click, later converts via Google search. Meta counts it; GA4 attributes to organic/CPC.

GTM Firing but GA4 Not Receiving

  1. Consent Mode blocking -- Tag fires but sends no data when consent denied
  2. Ad blockers -- ~25-30% of users block google-analytics.com requests
  3. Race conditions -- Page unloads before request completes (form submits, outbound links)
  4. Measurement ID mismatch -- Wrong G-XXXXXXX in the tag config
  5. Data filters -- GA4 property filters hiding or altering events
  6. Draft vs published -- GTM Preview uses draft; live site uses published version

Duplicate Conversions

The most expensive tracking bug. Common causes:

  1. Missing transaction_id -- GA4 cannot deduplicate without a unique ID
  2. Double-firing tags -- Multiple tags sending the same conversion
  3. Thank-you page reloads -- User refreshes the confirmation page
  4. Back button -- User navigates back to confirmation
  5. Missing CAPI dedup -- Meta Pixel and CAPI both fire without matching eventID

Prevention:

// dataLayer push with transaction_id for deduplication
window.dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: 'T-12345',  // REQUIRED for dedup
    value: 99.99,
    currency: 'USD',
    items: [/* ... */]
  }
});
// Prevent duplicate pushes on page reload
if (!window.sessionStorage.getItem('purchase_tracked_T-12345')) {
  window.dataLayer.push({
    event: 'purchase',
    ecommerce: { transaction_id: 'T-12345', value: 99.99, currency: 'USD' }
  });
  window.sessionStorage.setItem('purchase_tracked_T-12345', 'true');
}

Debugging Checklist by Platform

Google Tag Manager (GTM)

Preview Mode Inspection:

  • Correct workspace/container version active?
  • Trigger event appears in the timeline?
  • Tag shows as "Fired"?
  • No unexpected duplicate tags firing?

Trigger Conditions:

  • Event name matches dataLayer.push({ event: '...' }) exactly (case-sensitive)?
  • All filter conditions correct?
  • No blocking triggers preventing fire?

Variable Values (in Preview mode):

  • transaction_id populated and unique?
  • value and currency present and correct types?
  • Custom JS variables returning expected values?

dataLayer Inspection:

// View full dataLayer
console.table(window.dataLayer);

// Filter for purchase events
window.dataLayer.filter(e => e.event === 'purchase');

// Check ecommerce data
window.dataLayer.filter(e => e.event === 'purchase').map(e => e.ecommerce);

Network Request Verification (DevTools > Network):

  • google-analytics.com/g/collect -- GA4
  • `googleads.g.doubleclick.net/pagead/con
Compartilhar X LinkedIn