TikTok, Pixel y Events API
Tracking server-side de conversiones vía la TikTok Events API 2.0. Espejo de la arquitectura de Meta CAPI, con captura de ttclid desde los parámetros URL en landings desde clic de anuncio.
Lo que necesitas
- Una cuenta de TikTok Ads Manager con facturación configurada.
- Unos 5 minutos.
1. Crear una fuente de datos en TikTok
- Abre TikTok Ads Manager en
ads.tiktok.com. - Tools, Events, Web Events, Connect data source.
- Método de conexión: elige TikTok Pixel + Events API (Recommended). Ni "Events API only" ni "TikTok Pixel only". La opción combinada usa el mismo Pixel ID más access token y mantiene abierto el modo híbrido (ruta browser-pixel) para más adelante.
- Salta el snippet HTML del browser-pixel que TikTok ofrece. Beaconry corre server-side, no lo necesitas.
2. Desactivar los defaults invasivos de TikTok
TikTok pregunta sobre tres opciones de privacidad durante el setup. Desactiva las tres para mantener el estricto cumplimiento GDPR:
- Automatic Advanced Matching (AAM) OFF. Escanearía campos de formulario en el navegador y los enviaría a TikTok sin consentimiento explícito por campo. Beaconry hashea los mismos campos server-side con paths de código controlados.
- Allow first-party cookies OFF. Pondría cookies de TikTok bajo tu dominio cliente, saltándose el consent gate.
- Allow enhanced data postback OFF. Enviaría meta-tags, structured-data, clics en botones y datos de rendimiento a TikTok más allá de lo que rastreas explícitamente.
TikTok los marca como "Recommended" por defecto. Cambia cada uno a OFF.
3. Elegir una plantilla de business funnel
TikTok pide una "Business funnel template". Elige Custom (o "Other" / "Skip" si está disponible). Las plantillas solo predefinen qué objetivos de conversión sugiere TikTok en su UI. Beaconry envía cada evento que configures sin importar qué plantilla hayas elegido. Si TikTok te obliga a elegir una plantilla, elige la que se ajuste aproximadamente a tu negocio (E-commerce / Lead generation / Travel). No tiene impacto en qué datos fluyen.
4. Obtener el Pixel ID
Abre el Pixel tras crearlo. El Pixel ID (alfanumérico, ~20 caracteres) se muestra justo debajo del nombre del Pixel. Cópialo.
5. Generar un access token de TikTok
- Pixel-Settings, Events API, Set up manually, Generate Access Token.
- El token se muestra UNA SOLA VEZ. Cópialo inmediatamente. No hay forma de recuperarlo después, tendrías que regenerarlo.
6. Pegar las credenciales en Beaconry
WordPress Admin, Beaconry, Tracking, TikTok. Pega el Pixel ID y el access token, guarda.
El token se cifra en reposo con AES-256-GCM. Alternativa con constantes: BCNR_TIKTOK_PIXEL_ID y BCNR_TIKTOK_ACCESS_TOKEN en wp-config.php.
7. (Opcional) Configurar un Test Event Code
En TikTok Events Manager, pestaña Test Events, genera un Test Event Code. Pégalo en Beaconry. Mientras esté configurado, cada evento se enruta a Test Events en lugar de ir en vivo. Quítalo antes de pasar a producción.
8. Enviar el evento de prueba
Pulsa Enviar evento de prueba TikTok. HTTP 200 con code: 0 significa que las credenciales funcionan. Los eventos aparecen en TikTok Events Manager, Test Events en pocos segundos cuando el code está configurado.
Qué se envía automáticamente
Los 14 standard events de TikTok están soportados:
- Pageview, ViewContent, AddToCart, InitiateCheckout, AddPaymentInfo, CompletePayment, Lead, CompleteRegistration, Subscribe, Search, Contact, Download, ClickButton, AddToWishlist.
Captura de ttclid: TikTok añade un parámetro ttclid a cada URL de landing desde clic de anuncio. Beaconry lo captura en la primera carga de página y lo persiste en la cookie nl_ext junto con fbclid (Meta) y gclid (Google). Cada evento server-side posterior incluye ttclid para una atribución precisa.
(Opcional) Modo híbrido
Carga pixel.js en paralelo para que TikTok vea las cookies first-party _ttp y ttclid del visitante. Deduplicado vía event_id. El server-side por sí solo ya cubre el 100 por ciento de los visitantes con consentimiento, el modo híbrido es para mejor match-rate. Desactivado por defecto.
Troubleshooting
- "code: 40000". Token inválido o revocado. Regenera.
- "code: 40005, content_id required". Al evento le faltaba un
content_id. Beaconry lo configura automáticamente para eventos WooCommerce. Si disparas eventos custom con la API JS, incluyecontent_idencontents[], no en el top level. - Eventos llegan pero sin atribución de anuncio. La captura de ttclid se basa en que el visitante aterrice desde un anuncio TikTok con
?ttclid=.... Las visitas directas no lo tendrán, eso es normal.