Pipeline de atribución server-side end-to-end diseñado para eliminar la dependencia del tracking client-side (
gtag.js/gtm) y sus limitaciones frente a itp 2.3+, truncación de cookies third-party en navegadores Chromium-based y bloqueo por ad blockers (EasyList/EasyPrivacy).
La captura client-side se ejecuta via snippet JS en
theme.liquid. Intercepta el parámetro gclid (token criptográficamente firmado por Google) en DOMContentLoaded, persistiéndolo en cookie first-party (TTL 90 días, alineado con la ventana de atribución Google Ads) y localStorage como fallback. Cookie first-party garantiza supervivencia ante Storage Access API y partición de cookies Safari/WebKit.
La propagación del GCLID al backend ocurre durante la creación del draft order vía Shopify Admin api rest. El frontend transmite el gclid en post /api/create-draft-order al servidor vercel (
node.js serverless). El servidor lo inyecta como note_attribute en el draft order — persistencia a nivel DB, no volátil, independiente de sesión.
El trigger de conversión es un webhook Shopify orders/paid hacia /api/conversions en Vercel. El endpoint deserializa el payload, extrae email, phone, total_price, currency, order_number y recupera el GCLID desde note_attributes.
Se aplica normalización y hashing SHA-256 conforme a Enhanced Conversions: email en lowercase + trim pre-hash; teléfono normalizado a formato E.164. Permite deterministic matching sin exponer PII en tránsito.
La llamada se ejecuta contra UploadClickConversions de Google Ads API v23, autenticada via OAuth2 con refresh token (modo Production). Payload: conversion_action (resource name), gclid, conversion_date_time (ISO 8601), conversion_value, currency_code y user_identifiers hasheados. Deduplicación nativa via order_id como transaction_id.
Stack completamente asíncrono e independiente del navegador post-click, inherentemente resiliente a la degradación del tracking browser-side.
Prazo de Entrega: Não estabelecido