Pixel- och taggkontroller

Fungerar min TikTok-pixel? Så kontrollerar du den

TikTok-pixeln skickar POST-anrop till analytics.tiktok.com/api/v2/pixel med en JSON-kropp, så till skillnad från Meta syns händelsen inte i adressen: öppna anropets Payload för att se din pixelkod och händelsens namn. Ett köp ska komma fram som CompletePayment (eller Purchase) med värde, valuta och event_id.

Två saker gör TikTok annorlunda. Allt intressant ligger i anropets kropp, så listan med adresser säger ingenting. Och pixeln har en egen samtyckesbrytare, ttq.holdConsent(), som många installationer aldrig anropar. Då ignorerar pixeln cookiebannern om inte samtyckesverktyget blockerar den helt.

Hoppa över DevTools: den gratis skanningen öppnar din sida i en riktig webbläsare, godkänner och nekar cookiebannern och visar vad TikTok-pixeln faktiskt skickade. Rapporten är på engelska.

En CompletePayment-händelse: det intressanta finns under fliken Payload
POST https://analytics.tiktok.com/api/v2/pixel

{"event"1:"CompletePayment","event_id"2:"order-20391","context":{"pixel":{"code"3:"C4ABCDEFGHIJKLMNOPQR"},"page":{"url":"https://shop.example/thank-you"}},"properties":{"value"4:59,"currency"5:"GBP"}}
  1. "event" händelsens namn: Pageview, AddToCart, CompletePayment…
  2. "event_id" ID:t som TikTok använder för att slå ihop händelsen med samma händelse från Events API.
  3. "code" din pixelkod.
  4. "value" orderns värde, som ett tal.
  5. "currency" valutakoden enligt ISO.

Exempelvärden. Långa anrop är förkortade till de parametrar som spelar roll.

I korthet

Taggskript
analytics.tiktok.com/i18n/pixel/events.js?sdkid=<pixelkod>
Händelseanrop
POST till analytics.tiktok.com/api/v2/pixel, med händelsens detaljer i en JSON-kropp
Pixelkod
Ungefär 20 versaler och siffror, oftast med C först
Klick-ID
ttclid
Samtycke
ttq.holdConsent() innan pixeln laddas, sedan ttq.grantConsent() eller ttq.revokeConsent()

Följ den i din egen webbläsare

  1. Öppna din sajt i ett privat fönster med DevTools på fliken Network och filtrera på analytics.tiktok.com.
  2. Godkänn cookiebannern och ladda om. Du ska se events.js laddas och sedan ett eller flera anrop till /api/v2/pixel.
  3. Öppna ett av anropen och titta under Payload: context.pixel.code är din pixelkod och event är händelsens namn (sidvisningen heter oftast Pageview).
  4. Gör ett testköp. På orderbekräftelsen ska kroppen innehålla "event": "CompletePayment" (eller "Purchase") och under properties ett numeriskt value och en currency som "SEK". Kontrollera även att event_id finns.
  5. Öppna pixeln i TikTok Events Manager och använd Test events för att se samma händelser komma in.

TikTok Pixel Helper (ett Chrome-tillägg) ger en snabbare översikt, med varningar för parametrar som saknas.

Därför slutar TikTok-pixeln fungera, och så åtgärdar du det

CompletePayment utan värde eller valuta

Värdebaserad optimering och ROAS-rapportering kräver båda. TikToks standardhändelser förväntar sig value som ett tal och currency som en ISO-kod:

ttq.track('CompletePayment', {
  value: 59.00,
  currency: 'GBP',
  contents: [{ content_id: 'SKU-123', quantity: 1, price: 59.00 }]
}, { event_id: 'order-20391' });

För katalogannonser (video shopping) måste content_id stämma med produkt-ID:na i din TikTok-katalog, annars kan händelserna inte kopplas till produkter.

Pixeln och Events API räknas två gånger

Shopify och andra plattformar skickar ofta samma händelser från servern via TikToks Events API. TikTok deduplicerar en händelse från webbläsaren och en från servern när båda har samma event_id (och händelsenamn). Utan det rapporteras köpen två gånger. Kontrollera att kroppen från webbläsaren har ett event_id och att din serverintegration skickar samma värde.

Samma pixel installerad två gånger

En pixel som har lagts in via TikToks försäljningskanal plus en manuell installation i temat eller Google Tag Manager betyder att varje händelse skickas två gånger. I fliken Network ser du två /api/v2/pixel-anrop med samma händelse per sidvisning. Ta bort en av installationerna.

Pixeln ignorerar cookiebannern

TikTok-pixeln har en egen samtyckesbrytare: anropa ttq.holdConsent() innan den laddas, så att den väntar, och ttq.grantConsent() när besökaren godkänner. Utan det, eller utan att samtyckesverktyget blockerar pixeln, skickas händelser innan besökaren har svarat. Se Ad pixel fires before consent or after "reject" (på engelska).

ttclid försvinner på landningssidan

TikTok lägger till ttclid på annonsklick, och pixeln sparar det för attribuering. En omdirigering som tappar parametrarna (från http till https, till en språkversion, till en adress med avslutande snedstreck) tappar det, och konverteringar från TikTok ser ut att komma från ingenstans. Testa med testet av klick-ID vid omdirigering.

Det här kontrollerar den gratis skanningen

  • TikTok-pixeln laddas och skickar minst en sidvisning
  • Bara ett ID för plattformen, annars en varning
  • TikTok-pixeln väntar tills besökaren har godkänt cookies
  • TikTok-pixeln slutar skicka när besökaren klickar på "neka alla"
  • Inga e-postadresser i klartext i anropen
  • På en orderbekräftelse: köpet har värde, valuta och händelse-ID
  • Klick-ID:t ttclid följer med genom dina omdirigeringar

Händelser från servern (Conversions API:er, server-side-taggning) syns inte för en publik skanning, så rapporten markerar dem aldrig som fungerande eller trasiga.

Läs också

Källor

Bygger på plattformarnas offentliga dokumentation (oftast på engelska) och de anrop som deras publika taggar gör. Menyer och namn ändras, så kontrollera de länkade sidorna om ett steg ser annorlunda ut.

Andra plattformar