Plataformas publicitarias y tiendas online

Tracking de conversiones en CCV Shop: guía de configuración

Tracking de conversiones en CCV Shop: envía los pedidos pagados a Meta y TikTok con un webhook firmado, vincúlalos a los clics en anuncios, configúralo, pruébalo y gestiona los pagos tardíos.

·Actualizado el ·10 min de lectura·Por el equipo de ROASaurus

Ideas clave
  • El tracking de conversiones en CCV Shop es más completo cuando cada pedido pagado se envía desde los datos de pedido de CCV en el servidor, con un fragmento en la página de confirmación del pedido que vincula el pedido con el clic del anuncio.
  • Un clic en Create webhook hace que CCV Shop informe de cada pedido en el momento en que se marca como pagado, y cada envío debe llevar el token privado de tu tienda.
  • Los pedidos de CCV Shop no incluyen la dirección IP del comprador, así que el fragmento de la página de confirmación del pedido importa más en CCV Shop que en la mayoría de las plataformas.
  • La comprobación de 5 minutos solo mira los pedidos creados recientemente, así que los pedidos pagados días después dependen del webhook: mantenlo activo.
  • Meta rechaza los eventos del servidor que llegan más de 7 días después de crearse el pedido, así que una transferencia bancaria muy tardía no llega a Meta.

El tracking de conversiones en CCV Shop consiste en informar de cada pedido pagado de tu tienda online en CCV Shop a plataformas publicitarias como Meta y TikTok, para que atribuyan correctamente los anuncios y optimicen sobre ventas reales. La forma más completa es enviar cada compra desde los datos de pedido de CCV en el servidor y añadir un breve fragmento a la página de confirmación del pedido que vincule el pedido con el clic del anuncio.

CCV Shop es una plataforma de tiendas online alojada de la empresa neerlandesa CCV, que afirma tener 17,000 tiendas online. Esta guía explica cómo se conecta ROASaurus con ella, cómo se vinculan los pedidos con los clics de los anuncios, qué llega a Meta y TikTok, la configuración, las pruebas y cómo funcionan los pagos tardíos. Para la idea general, lee qué es el server-side tracking.

¿Cómo se conecta ROASaurus con CCV Shop?

ROASaurus usa tres partes de CCV Shop, todas descritas en la documentación de la API de CCV:

Parte de CCV ShopPara qué la usa ROASaurus
API REST, con una clave pública y una clave secretaLee cada pedido pagado y sus líneas de pedido
Webhook para el evento orders.updated.ispaidCCV informa de un pedido en el momento en que cambia su estado de pago
La página de confirmación del pedido, con Vertoshop.jsEl fragmento lee ahí el id del pedido y vincula el pedido con el visitante
La API y el webhook entregan el pedido. El fragmento de la página de confirmación lo vincula con el clic del anuncio.
Pedido marcado como pagadoEn CCV Shop, tras el pago
WebhookCCV envía el id del pedido, firmado con x-hash
ROASaurusLee el pedido y sus líneas con llamadas a la API firmadas
Plataformas publicitariasPurchase con el id de evento order-58213
El recorrido de los datos de cada pedido pagado. ROASaurus comprueba que el pedido esté pagado antes de enviar nada.

¿Por qué los píxeles del navegador pierden las compras de CCV Shop?

Un píxel del navegador solo informa de una compra cuando el navegador del comprador carga la página de confirmación del pedido y se ejecuta el script del píxel. Varias situaciones habituales lo impiden:

  • El comprador paga mediante redirección, por ejemplo con iDEAL, y cierra la pestaña antes de que se cargue la página de confirmación.
  • Un bloqueador de anuncios o un ajuste de privacidad del navegador bloquea el script del píxel.
  • El visitante rechaza las cookies de marketing, así que el píxel no debe cargarse.
  • El pedido se paga más tarde, por transferencia bancaria o en la entrega, cuando no interviene ningún navegador.

En todos estos casos, CCV Shop sigue marcando el pedido como pagado. ROASaurus envía ese pedido desde el servidor, así que la compra se informa pase lo que pase en el navegador. El fragmento de la página de confirmación tiene otra función: le dice a ROASaurus a qué visitante, y por tanto a qué clic de anuncio, pertenece el pedido.

El webhook de pedido pagado y la comprobación de 5 minutos

Qué hace Create webhook

Cuando pulsas Create webhook, ROASaurus registra un webhook de CCV para el evento orders.updated.ispaid, que CCV activa cuando cambia la propiedad de pagado de un pedido. La dirección es la URL de webhook de tu tienda en ROASaurus, que contiene tu clave de tienda y un token privado. CCV no añade a un webhook nada que identifique la tienda, y su documentación aconseja poner un identificador en la dirección. La clave de tienda cumple esa función.

CCV da a cada webhook su propia clave secreta de 32 caracteres. Cuando CCV devuelve esa clave, ROASaurus la guarda y, a partir de entonces, cada envío debe llevar un encabezado x-hash válido. Cada envío también debe llevar el token de tu tienda. Cuando ROASaurus recibe un envío, ignora los pedidos que no están pagados, lee el pedido completo y sus líneas desde la API y envía el pedido solo cuando CCV dice que está pagado.

Llamadas a la API firmadas

CCV exige que cada llamada a la API esté firmada. ROASaurus envía tres encabezados: x-public con tu clave pública, x-date con la hora actual y x-hash. CCV rechaza una marca de tiempo que difiera más de 5 minutos de la hora de su servidor. Tu clave secreta nunca se envía.

Cómo firma CCV Shop las solicitudes
API call (ROASaurus → CCV)
x-hash = HMAC-SHA512( public_key|METHOD|uri|body|timestamp , secret_key )

Webhook (CCV → ROASaurus)
x-hash = HMAC-SHA512( address|payload , webhook_key )

La comprobación de 5 minutos

Cada 5 minutos, ROASaurus también pide a CCV los pedidos pagados creados desde su última comprobación, con 30 minutos de solapamiento, y registra los que aún no tiene. CCV filtra los pedidos solo por fecha de creación. Por eso la comprobación encuentra los pedidos que se pagan poco después de realizarse, y un pedido pagado días más tarde llega a ROASaurus solo por el webhook.

CCV considera correcta una respuesta 200, 201, 202 o 204. Mantiene abierto un envío y lo reintenta en la siguiente ocurrencia tras una respuesta 307, 408, 503 o 504, y marca como fallida cualquier otra respuesta. Espera 2 segundos para una conexión y 5 segundos para la respuesta.

¿Cómo se vincula un pedido de CCV Shop con el clic del anuncio?

Para atribuir un anuncio, la plataforma necesita los identificadores de clic del visitante que hizo el pedido, como el click id de Meta (fbc) y el de TikTok (ttclid). El script de ROASaurus los guarda para cada visitante cuando llega desde un anuncio. ROASaurus no obtiene ese id de visitante del pedido de CCV, así que vincula los pedidos con los visitantes de otras formas:

MétodoEn CCV ShopCómo funciona
1. Fragmento de la página de confirmación del pedidoSíLee el id del pedido con Vertoshop.getOrder().getId(), además del total del pedido y la moneda, y lanza una compra de ROASaurus con el id de evento order-58213
2. Email anteriorSíUn email con hash que el visitante dio antes en tu sitio, en un formulario emergente o mediante una llamada Identify
3. Dirección IP y navegadorNoLos pedidos de CCV Shop no incluyen la dirección IP ni el navegador del comprador, así que este recurso alternativo no tiene nada que comparar
En la mayoría de las demás plataformas, el recurso de la IP atrapa algunos pedidos que se le escapan al fragmento. En CCV Shop no puede, así que añade el fragmento.

ROASaurus espera un poco antes de enviar cada compra, para que el evento de la página de confirmación pueda llegar primero, y vuelve a intentar la vinculación en el momento del envío. La página Orders muestra el resultado por pedido en la columna Matched by: thank_you, email o not matched.

Un pedido que no se vincula sigue llegando a tus plataformas publicitarias con los datos de cliente con hash del pedido. No tiene identificadores de clic y, como los pedidos de CCV no llevan dirección IP ni navegador, tampoco tiene ninguno de esos datos. Eso reduce la proporción de eventos que Meta puede asociar con una persona; Event Match Quality explica cómo la puntúa Meta. En la atribución de ROASaurus, un pedido sin vincular aparece como directo o desconocido.

¿Qué llega a Meta y TikTok desde un pedido de CCV?

Datos de pedido de CCVEnviado como
idEl id de evento order-58213 y el id del pedido
total_price, currencyValor y moneda (EUR cuando CCV no indica moneda)
create_dateLa hora del evento
Email, móvil o teléfono, nombre y apellidos del clienteCon hash SHA-256
Ciudad, código postal y código de país de facturaciónCon hash SHA-256
Id de clienteId externo con hash
Líneas de pedido: número de producto, id de producto, cantidad, precio y nombreProductos con id, cantidad y precio
Dirección IP y navegadorNo están en los pedidos de CCV: se toman del evento de la página de confirmación o del visitante vinculado
Lo que ROASaurus lee de cada pedido de CCV Shop y cómo aparece en el evento del servidor.

Meta recibe un Purchase a través de su Conversions API, y TikTok un CompletePayment a través de su Events API, ambos con el id de evento order-58213. TikTok ahora muestra CompletePayment como Purchase en sus informes. Cuando marcas la opción de cargar también el píxel del navegador, el fragmento de la página de confirmación dispara los mismos eventos en el navegador con el mismo id de evento, y Meta y TikTok se quedan con una sola copia. Los mismos pedidos van a Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn y las demás plataformas publicitarias cuando las conectas. Las conversiones de compra de Google Ads solo se envían desde el checkout de Shopify, así que ROASaurus no las envía desde CCV Shop.

Cómo configurar el tracking de conversiones en CCV Shop

  1. Añade la tienda en ROASaurus

    Ve a Add a store, elige CCV Shop e introduce la dirección de tu tienda. La pestaña Connection te muestra entonces tu etiqueta de script y el fragmento de la página de confirmación.

  2. Localiza tus claves de API

    En CCV Shop, ve a My webshop › Settings › General › API settings y haz clic en New API key. Si no lo ves, instala primero la app de API desde la CCV App Store.

  3. Añade el script a todas las páginas

    Pega la etiqueta de script en el Header HTML de tu tienda. El centro de ayuda de CCV lo sitúa en Mijn webshop › Instellingen › Lay-out › Layout, al final de la página. Un bloque de código de app en la cabecera también funciona.

  4. Añade el fragmento a la página de confirmación

    Ve a Mijn webshop › Instellingen › Algemeen › Teksten, abre el texto que se muestra después de realizar un pedido, cambia a Source y pega ahí el fragmento. CCV Shop lo ejecuta entonces en la página de agradecimiento del pedido.

  5. Conecta la API

    En la pestaña Connection, introduce la clave pública y la clave secreta. Rellena Shop URL solo cuando tu API se ejecute en un dominio distinto al de tu tienda. Guarda, pulsa Test connection y después Create webhook.

  6. Conecta tus plataformas publicitarias

    En Tracking & platforms, usa Connect with Facebook o Add pixel para Meta, y Add pixel para TikTok. Marca la opción de cargar también el píxel del navegador.

Consentimiento

Fuera de Shopify, el script de ROASaurus lee la decisión del visitante en las herramientas de consentimiento habituales: Cookiebot, OneTrust, los banners IAB TCF y Google consent mode. Con otro banner de cookies, llama a tlq('consent', true) cuando el visitante acepte las cookies de marketing y a tlq('consent', false) cuando las rechace. Hasta que el visitante acepte, no tiene id de visitante ni click ids, y no se dispara ningún píxel del navegador. El pedido pagado se sigue enviando desde el servidor con datos del cliente con hash a partir del pedido. La página de ayuda sobre consentimiento explica los detalles.

¿Cómo se prueba el tracking de conversiones en CCV Shop?

  • Abre tu tienda con ?roasaurus=connected en la dirección. Una alerta confirma que el script se ejecuta. ?roasaurus=debug registra en la consola del navegador lo que envía.
  • En el Event log, en Collected events, las visitas de página deberían mostrar un id de visitante.
  • Haz un pedido y págalo, o márcalo como pagado. En Collected events, el Event log debería mostrar un Purchase con el id de pedido de CCV en sus datos. Si no aparece, el fragmento de la página de confirmación no se ejecutó.
  • En la pestaña Connection, Last order received muestra el pedido y Last sync la última comprobación de 5 minutos, con cualquier error de CCV.
  • En Server deliveries del Event log, cada plataforma conectada tiene una línea con el estado sent y la respuesta de la plataforma.
PageView visitor 51c0e9a7Script en todas las páginas
Purchase order-58213Fragmento de la página de confirmación del pedido
webhook orders.updated.ispaidFirma comprobada, pedido pagado
Meta Purchase sentMatched by thank_you
TikTok CompletePayment sentMismo id de evento, deduplicado
Ejemplo de un pedido de prueba correcto. Fetch orders now en la pestaña Connection ejecuta la comprobación de 5 minutos al instante.

Para ver el evento en Meta, pega el código de Events Manager › Test events en el campo Test event code de tu píxel de Meta en ROASaurus y elimínalo cuando termines.

Pagos tardíos y otros límites

Las transferencias bancarias y el pago contra reembolso se pagan después de realizar el pedido. Esto es lo que ocurre con un pedido de ejemplo por transferencia bancaria, desde el día en que se realiza:

CuándoQué ocurreResultado
Día 0, en el checkoutEl pedido se crea, no se pagaNo enviado: la comprobación de 5 minutos solo pide pedidos pagados
Día 0, unos 35 minutos despuésLa hora de creación del pedido sale de la ventana de comprobaciónA partir de ahora, solo el webhook puede informar de él
Día 3Marcas el pedido como pagadoLlega el webhook y ROASaurus lo envía. La hora del evento, el día 0, tiene 3 días: Meta lo acepta
Día 9, en cambioMarcas el pedido como pagadoLlega el webhook y ROASaurus lo envía. 9 días es más de 7: Meta lo rechaza
Cronología ilustrativa. La hora del evento es la fecha de creación del pedido, y Meta acepta los eventos del servidor hasta 7 días después de la hora del evento.
  • Pago contra reembolso. ROASaurus envía estos pedidos cuando CCV los marca como pagados, normalmente después de la entrega. Consulta el tracking en pago contra reembolso para saber cuándo contar estos pedidos.
  • Compras del navegador antes del pago. El fragmento de la página de confirmación se ejecuta cuando se realiza el pedido, así que los píxeles del navegador informan de un pedido por transferencia bancaria antes de que se pague. Si el pago llega más de 48 horas después, Meta y TikTok no pueden fusionar las copias del navegador y del servidor.
  • Sin recurso alternativo por IP. Añade el fragmento de la página de confirmación y, cuando puedas, captura los emails antes en tu sitio.
  • Las cancelaciones y los reembolsos no se envían. Una vez enviada una compra, se queda en la plataforma publicitaria.
  • Solo visitas de página, sin código. Las visitas de producto y los añadidos al carrito se detectan automáticamente solo en Shopify. En CCV Shop, un desarrollador puede enviarlos con una llamada de seguimiento tlq.

La página de la integración con CCV Shop reúne los datos de la conexión en un solo lugar, y la página de ayuda para otras tiendas online compara CCV Shop con las demás plataformas a las que se conecta ROASaurus, como Lightspeed.

Fuentes

  1. CCV Shop: API Documentatie
  2. CCV: Webshop API
  3. Meta for Developers: Server Event Parameters
  4. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  5. TikTok Ads Manager: About Event Deduplication

En ROASaurus

Sigue leyendo

Plataformas publicitarias y tiendas onlineTracking de conversiones en pago contra reembolso y checkouts externosTracking de conversiones en pago contra reembolso: por qué los píxeles no detectan los pedidos COD ni los de checkouts externos, cuándo enviar la compra y cómo gestionar los pedidos rechazados.Plataformas publicitarias y tiendas onlineConversiones mejoradas de Google Ads en ShopifyLas conversiones mejoradas añaden datos de cliente con hash a las compras de Google Ads en Shopify. Cómo funcionan, en qué se diferencian de las importaciones offline y cómo configurarlas.Plataformas publicitarias y tiendas onlineTracking de conversiones de Lightspeed para tiendas online eComTracking de conversiones de Lightspeed eCom (C-Series): envía los pedidos pagados a Meta y TikTok desde el servidor, vincúlalos a los clics en anuncios, configúralo y pruébalo.
Preguntas frecuentes

Tus preguntas, resueltas

¿Dónde encuentro mis claves de API de CCV Shop?

En My webshop › Settings › General › API settings. Si falta esa página, instala primero la app de API desde la CCV App Store.

¿Qué hace el fragmento de la página de éxito del pedido?

Lee el id del pedido con Vertoshop.getOrder().getId(), además del total del pedido y la moneda, y lanza la compra de ROASaurus con ese id. ROASaurus lo usa para vincular el pedido con el visitante y su clic de anuncio.

¿Por qué ROASaurus no puede vincular los pedidos de CCV por dirección IP?

Los pedidos de CCV Shop no incluyen la dirección IP ni el navegador del comprador. Sin el fragmento ni un email que el visitante diera antes en el sitio, un pedido queda sin vincular.

¿Se siguen enviando los pedidos pagados días después?

Sí, a través del webhook de pedido pagado. La comprobación de 5 minutos solo mira los pedidos creados recientemente, así que mantén activo el webhook. Meta rechaza los eventos que llegan más de 7 días después de crearse el pedido.

¿Cómo usa ROASaurus mi clave secreta de CCV Shop?

ROASaurus guarda la clave secreta cifrada y la usa solo para firmar cada llamada a la API con HMAC-SHA512, como exige CCV. La clave en sí nunca se envía a CCV, solo la firma.

Cada venta, rastreada hasta el anuncio que la generó

Server-side tracking, beneficio y valor de vida del cliente en una sola app. Prueba gratuita de 14 días, sin tarjeta de crédito.

Empieza tu prueba gratuita →