Annonsplattformar och webbshoppar

Meta Conversions API (CAPI): en praktisk guide

En praktisk guide till Meta Conversions API: kör det vid sidan av pixeln med ett event_id, skicka rätt parametrar, testa händelser och åtgärda vanliga fel.

·Uppdaterad ·9 min läsning·Av ROASaurus-teamet

Det viktigaste
  • Meta Conversions API skickar händelser som Purchase från din server, så att de når Meta även när webbläsarpixeln är blockerad.
  • Kör det vid sidan av pixeln och ge båda kopiorna samma händelsenamn och event_id; då räknar Meta händelsen en gång om båda kommer in inom 48 timmar.
  • Webbplatshändelser kräver action_source, event_source_url och köparens user agent; hashad e-post och telefon, IP-adress, fbp och fbc avgör hur väl Meta kan matcha dem.
  • Testa med fliken Test events i Events Manager och ta sedan bort testkoden, eftersom testhändelser inte kasseras.
  • De flesta problem beror på händelse-id:n som inte stämmer överens, serverns egen IP-adress, en tappad fbclid eller kontaktuppgifter som har hashats utan normalisering.

Metas Conversions API (CAPI) låter din server skicka händelser som Purchase direkt till Meta. Meta-pixeln skickar samma händelser från köparens webbläsare. CAPI skickar dem från din server, så de kommer ändå fram när en annonsblockerare stoppar pixeln, en cookie har försvunnit eller tacksidan aldrig laddas.

Den här guiden tar upp vad en händelse i Conversions API innehåller, hur du kör det vid sidan av pixeln med ett gemensamt event_id, vilka parametrar Meta kräver och rekommenderar, hur du testar med Test events och vilka fel som uppstår oftast.

Vad är Meta Conversions API?

Conversions API är en del av Metas Graph API. Din server skickar en HTTPS POST-förfrågan till graph.facebook.com/VERSION/PIXEL_ID/events med en åtkomsttoken och en data-lista med upp till 1,000 händelser. Varje händelse beskriver en handling, till exempel ett köp, i tre delar: vad som hände, vem som gjorde det och detaljerna.

FältVad det innehåller
event_nameHandlingen, till exempel Purchase, AddToCart eller InitiateCheckout
event_timeNär det hände, som Unix-tidsstämpel i sekunder
event_idEtt unikt id för den här händelsen, som används för att deduplicera den mot pixeln
action_sourceVar det hände: website för köp i butiken
event_source_urlURL:en till sidan där händelsen inträffade
user_dataKundinformation för matchning: hashad e-post och telefon, IP-adress, user agent, fbp och fbc
custom_dataDetaljer som value, currency och content_ids
Varje händelse i Conversions API har samma form: handlingen, kundinformationen och detaljerna.

En förkortad Purchase-händelse ser ut så här:

Conversions API: en Purchase-händelse (förkortad)
{
  "data": [{
    "event_name": "Purchase",
    "event_time": 1792929600,
    "event_id": "order-1042",
    "action_source": "website",
    "event_source_url": "https://yourstore.com/checkouts/thank-you",
    "user_data": {
      "em": ["<SHA-256 of the normalized email>"],
      "ph": ["<SHA-256 of the normalized phone>"],
      "client_ip_address": "203.0.113.24",
      "client_user_agent": "Mozilla/5.0 (iPhone; ...)",
      "fbp": "fb.1.1792928400000.1234567890",
      "fbc": "fb.1.1792928400000.AbCdEf123"
    },
    "custom_data": { "value": 74.00, "currency": "USD" }
  }]
}

Kontaktfält som e-post och telefon normaliseras och hashas med SHA-256 innan de lämnar din server. IP-adressen, user agent, fbp och fbc skickas som de är.

Varför köra Conversions API vid sidan av pixeln?

Meta rekommenderar att du kör Conversions API vid sidan av pixeln och skickar samma händelser genom båda. Varje sida ser något som den andra inte ser, och tillsammans ger de Meta mer komplett data.

Meta-pixeln (webbläsaren)
  • Sätter cookien _fbp och lagrar fbclid från ett annonsklick i cookien _fbc
  • Ser sidan och webbläsaren medan besöket pågår
  • Går förlorad när webbläsaren blockerar den eller sidan inte laddas
Conversions API (server)
  • Skickar den betalda ordern från din butiksdata
  • Kan lägga till hashad e-post, telefon och adress från ordern
  • Beror inte på webbläsaren, så annonsblockerare stoppar den inte
Pixeln tar med webbläsaridentifierarna och servern tar med ordern. Var och en för sig missar en del av bilden.

Priset för att köra båda är att Meta nu får två kopior av varje händelse. Nästa avsnitt visar hur Meta behåller bara en.

Hur fungerar deduplicering med ett event_id?

Meta behandlar en webbläsarhändelse och en serverhändelse som samma händelse när två saker stämmer: händelsenamnet och händelse-id:t. I pixeln anges id:t i alternativet eventID. I Conversions API anges samma värde i event_id.

Meta-pixeln: samma Purchase med eventID
fbq('track', 'Purchase', { value: 74.00, currency: 'USD' }, { eventID: 'order-1042' });
Köparen betalarOrder 1042, $74.00
Pixeln skickar PurchaseeventID order-1042, från webbläsaren
Servern skickar Purchaseevent_id order-1042, från ordern
Meta räknar enSamma namn och id inom 48 timmar
Båda kopiorna har samma händelsenamn och id, så Meta behåller ett köp i stället för två.

Meta deduplicerar ett matchande par bara när de två kopiorna kommer in inom 48 timmar från varandra. Några regler får det att fungera i praktiken:

  • Skapa id:t en gång. Bygg det av något som båda sidor känner till, till exempel ordernumret, och skicka det till både webbläsaren och servern. Två system som var och ett skapar sitt eget id kommer inte att matcha.
  • Använd ett enda format. order-1042 och 1042 är olika id:n.
  • Matcha händelsenamnet exakt. Purchase och purchase är olika händelser.
  • Skicka serverhändelsen i tid. En serverhändelse som kommer in mer än 48 timmar efter webbläsarhändelsen räknas en andra gång.

Meta beskriver också en andra metod som parar ihop händelser via fbp eller external_id. Meta säger att den i allmänhet bara fungerar när webbläsarhändelsen kommer in före serverhändelsen, så ett gemensamt event_id är det mer tillförlitliga valet. Om Meta ändå rapporterar fler köp än din butik hade listar vår guide om dubbla köphändelser de vanliga orsakerna.

De obligatoriska fälten gör en händelse giltig. De rekommenderade fälten avgör hur många av dina händelser Meta kan matcha mot en person, och bara matchade händelser kan användas för attribution och annonsleverans.

ParameterWebbplatshändelserVad du ska skicka
event_nameObligatorisktEn standardhändelse som Purchase, eller ett eget händelsenamn
event_timeObligatorisktUnix-tid i sekunder, högst 7 dagar bakåt i tiden
action_sourceObligatorisktwebsite för händelser i din butik
event_source_urlObligatorisktURL:en till sidan där händelsen inträffade
client_user_agentObligatorisktKöparens webbläsarsträng, inte din servers
user_dataObligatorisktMinst en parameter med kundinformation
event_idRekommenderasSamma id som pixeln använder, för deduplicering
em, phRekommenderasE-post och telefon, normaliserade och hashade med SHA-256
client_ip_addressRekommenderasKöparens IP-adress, inte hashad
fbp, fbcRekommenderasCookies med webbläsar-id och klick-id, inte hashade
external_idRekommenderasDitt eget kund-id, detsamma i webbläsar- och serverhändelser
value, currencySkicka med PurchaseOrdervärdet och en valutakod på tre bokstäver
Meta listar action_source, event_source_url och client_user_agent som obligatoriska för webbplatshändelser som skickas via Conversions API.

Tre detaljer orsakar de flesta problemen:

  • Normalisera innan du hashar. Meta förväntar sig e-post utan blanksteg i ändarna och med gemener, och telefonnummer som siffror med landskod. Anna@Example.com och anna@example.com ger olika hashar, och bara den andra kan matcha.
  • Hasha inte webbläsaridentifierare. fbp, fbc, IP-adressen och user agent skickas som vanliga värden.
  • Behåll klick-id:t exakt som det är. Värdet fbc består av fb.1., skapandetiden i millisekunder, en punkt och fbclid från landningssidans URL. fbclid är skiftlägeskänslig. Spara den när besökaren landar, eftersom den inte längre finns i URL:en i kassan.

Hur väl de här fälten matchar är vad Metas Event Match Quality-poäng mäter. Vår guide om Event Match Quality går igenom varje parameter, hashningsreglerna och vilken poäng du bör sikta på.

Hur testar du händelser med Test events?

Events Manager har en flik Test events som visar händelser när de kommer in. Använd den innan du litar på en ny uppsättning.

  1. Öppna Test events

    Välj ditt dataset (pixel) i Events Manager och öppna fliken Test events. Kopiera testkoden som visas.

  2. Lägg till koden i dina serverhändelser

    Skicka den som test_event_code i anropet. I ROASaurus klistrar du in den i fältet Test event code för Meta-pixeln.

  3. Lägg en testorder

    Besök butiken, lägg en produkt i varukorgen och betala, så att både pixeln och servern skickar ett Purchase.

  4. Jämför de två kopiorna

    Båda kopiorna ska visa samma händelsenamn, händelse-id, värde och valuta.

  5. Kontrollera kundinformationen

    Serverhändelsen ska bära hashad e-post och telefon, IP-adressen, user agent och fbp, plus fbc om besöket började med ett annonsklick.

  6. Ta bort testkoden

    Meta säger att fältet bara är till för test, så ta bort det innan du litar på händelserna.

Purchase browser order-1042 74.00 USDFrån pixeln
Purchase server order-1042 74.00 USDFrån Conversions API
event_name + event_id matchRäknas som ett köp
em ph fbp fbc client_ip_address client_user_agentKundinformation i serverhändelsen
Vad en bra testorder visar (exempelvärden): två kopior, ett id och fullständig kundinformation.

Vanliga fel i Conversions API och hur du åtgärdar dem

Det du serTrolig orsakLösning
Hela anropet misslyckas och inga händelser bearbetasEn händelse i batchen har en event_time som är mer än 7 dagar gammalSkicka händelser när de inträffar. Åtgärda eller släng gamla händelser innan du försöker igen.
Meta rapporterar fler köp än din butik hadeOlika händelse-id:n, en pixelhändelse utan eventID, eller en andra app som skickar samma pixelAnvänd ett id för båda kopiorna och en serveravsändare per pixel.
Låg matchningskvalitet på serverhändelserDin server skickar sin egen IP-adress och user agentSkicka vidare den IP-adress och user agent som registrerades från köparens webbläsare eller order.
Få händelser med fbcfbclid sparades inte på landningssidan, eller så ändrades denSpara fbclid exakt som den kommer in och bygg fbc av den.
E-post och telefon matchar inteVärden som hashats utan normalisering, eller skickats utan hashningTa bort blanksteg och gör e-posten till gemener, behåll siffrorna och landskoden i telefonnumret och hasha sedan med SHA-256.
Anropen misslyckas med felet att token har gått utÅtkomsttoken kom från en Facebook-inloggning, och inloggningstokens har en utgångstidAnslut igen, eller använd en System User-token från Business Manager, som du kan skapa utan utgångsdatum.
De flesta problem med Conversions API visar sig som avvisade anrop, dubbelräkning eller låg matchningskvalitet.

Efter några dagars live-trafik öppnar du fliken Diagnostics i Events Manager. Meta listar problem där, med rekommendationer om hur du åtgärdar dem. Jämför sedan det dagliga antalet Purchase i Events Manager med de betalda ordrarna i din butik för samma dagar. Om Meta är klart högre listar vår hjälpsida om att förhindra dubbelräkning de inställningar som ska kontrolleras.

Så sätter du upp Conversions API med ROASaurus

ROASaurus skickar Conversions API-händelser från din butiks orderdata, så du slipper bygga serversidan själv. Klicka på Connect with Facebook i Tracking & platforms och välj ditt annonskonto och din pixel, eller klistra in pixelns (datasetets) id och en Conversions API-token. Uppsättningsguiden för Meta går igenom båda alternativen, och Metas integrationssida listar alla fält som skickas.

  • Ett id på båda sidor. Webbläsar- och serverhändelser delar ett händelse-id. För ett köp är det order- följt av order-id:t.
  • En kort väntan före köpet. Purchase från servern väntar en kort stund efter att ordern kommit in, så att webbläsarens köphändelse hinner kopplas ihop först. Dess IP-adress, user agent och sidans URL skickas sedan med serverhändelsen, tillsammans med den fbp och fbc som sparats för besökaren.
  • Kundinformation från ordern. E-post, telefon, namn och adress normaliseras och hashas med SHA-256. Butikens kund-id och ROASaurus besökar-id skickas hashade som external_id.
  • Händelser som Meta inte kan matcha hoppas över. En händelse utan fbc, fbp, e-post, telefon eller IP-adress skickas inte.

Event log visar varje serverleverans med anropet och Metas svar. Om dina marginaler skiljer sig mycket mellan produkter kan du också skicka ett vinstvärde vid sidan av varje köp: vår guide om Metas värdeoptimering för vinst förklarar hur. För hela dataflödet från klick till order, se server-side tracking.

Källor

  1. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  2. Meta for Developers: Server Event Parameters
  3. Meta for Developers: Customer Information Parameters
  4. Meta for Developers: Using the API - Conversions API
  5. Meta for Developers: ClickID and the fbp and fbc Parameters

I ROASaurus

Läs vidare

Annonsplattformar och webbshopparKonverteringstracking för postförskott och externa kassorKonverteringstracking för postförskott: varför pixlar missar ordrar med postförskott och externa kassor, när köpet ska skickas och hur du hanterar ordrar som kunden vägrar ta emot.Annonsplattformar och webbshopparKonverteringstracking för CCV Shop: en installationsguideKonverteringstracking för CCV Shop: skicka betalda ordrar till Meta och TikTok med en signerad webhook, koppla dem till annonsklick, sätt upp, testa och hantera sena betalningar.Annonsplattformar och webbshopparGoogle Ads enhanced conversions på ShopifyEnhanced conversions lägger till hashad kunddata på Google Ads-köp på Shopify. Så fungerar de, hur de skiljer sig från offlineimporter och hur du sätter upp dem.
Vanliga frågor

Frågor, besvarade

Behöver jag både Meta-pixeln och Conversions API?

Meta rekommenderar att använda båda. Pixeln lägger till webbläsardata som cookien fbp, och Conversions API levererar händelser som webbläsaren missar. Ge båda kopiorna samma händelsenamn och händelse-id så att Meta räknar varje händelse en gång.

Hur länge väntar Meta med att deduplicera en webbläsarhändelse och en serverhändelse?

Meta deduplicerar en webbläsarhändelse och en serverhändelse med samma händelsenamn och händelse-id när de kommer in inom 48 timmar från varandra. En kopia som kommer senare räknas igen.

Måste kunddata hashas för Conversions API?

Ja, för kontaktuppgifter. Fälten för e-post, telefon, namn och adress måste normaliseras och hashas med SHA-256. IP-adressen, user agent, fbp och fbc skickas utan hashning.

Vilka fält är obligatoriska för en webbplatshändelse?

Varje händelse behöver event_name, event_time, action_source och minst en parameter med kundinformation. För webbplatshändelser kräver Meta dessutom event_source_url och client_user_agent.

Kan jag skicka gamla ordrar via Conversions API?

Bara nyare. Parametern event_time får ligga högst 7 dagar bakåt i tiden, och om en händelse i ett anrop är äldre avvisar Meta hela anropet.

Varje försäljning, spårad till annonsen som genererade den

Server-side tracking, vinst och livstidsvärde i en app. 14 dagars gratis provperiod, inget kreditkort.

Starta din gratis provperiod →