- 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ält | Vad det innehåller |
|---|---|
event_name | Handlingen, till exempel Purchase, AddToCart eller InitiateCheckout |
event_time | När det hände, som Unix-tidsstämpel i sekunder |
event_id | Ett unikt id för den här händelsen, som används för att deduplicera den mot pixeln |
action_source | Var det hände: website för köp i butiken |
event_source_url | URL:en till sidan där händelsen inträffade |
user_data | Kundinformation för matchning: hashad e-post och telefon, IP-adress, user agent, fbp och fbc |
custom_data | Detaljer som value, currency och content_ids |
En förkortad Purchase-händelse ser ut så här:
{
"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.
- 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
- 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
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.
fbq('track', 'Purchase', { value: 74.00, currency: 'USD' }, { eventID: 'order-1042' });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-1042och1042är olika id:n. - Matcha händelsenamnet exakt.
Purchaseochpurchaseä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.
Vilka parametrar är obligatoriska, och vilka rekommenderas?
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.
| Parameter | Webbplatshändelser | Vad du ska skicka |
|---|---|---|
event_name | Obligatoriskt | En standardhändelse som Purchase, eller ett eget händelsenamn |
event_time | Obligatoriskt | Unix-tid i sekunder, högst 7 dagar bakåt i tiden |
action_source | Obligatoriskt | website för händelser i din butik |
event_source_url | Obligatoriskt | URL:en till sidan där händelsen inträffade |
client_user_agent | Obligatoriskt | Köparens webbläsarsträng, inte din servers |
user_data | Obligatoriskt | Minst en parameter med kundinformation |
event_id | Rekommenderas | Samma id som pixeln använder, för deduplicering |
em, ph | Rekommenderas | E-post och telefon, normaliserade och hashade med SHA-256 |
client_ip_address | Rekommenderas | Köparens IP-adress, inte hashad |
fbp, fbc | Rekommenderas | Cookies med webbläsar-id och klick-id, inte hashade |
external_id | Rekommenderas | Ditt eget kund-id, detsamma i webbläsar- och serverhändelser |
value, currency | Skicka med Purchase | Ordervärdet och en valutakod på tre bokstäver |
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.comochanna@example.comger 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
fbcbestår avfb.1., skapandetiden i millisekunder, en punkt ochfbclidfrå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.
- Öppna Test events
Välj ditt dataset (pixel) i Events Manager och öppna fliken Test events. Kopiera testkoden som visas.
- Lägg till koden i dina serverhändelser
Skicka den som
test_event_codei anropet. I ROASaurus klistrar du in den i fältet Test event code för Meta-pixeln. - 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.
- Jämför de två kopiorna
Båda kopiorna ska visa samma händelsenamn, händelse-id, värde och valuta.
- 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.
- 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 pixelnPurchase server order-1042 74.00 USDFrån Conversions APIevent_name + event_id matchRäknas som ett köpem ph fbp fbc client_ip_address client_user_agentKundinformation i serverhändelsenVanliga fel i Conversions API och hur du åtgärdar dem
| Det du ser | Trolig orsak | Lösning |
|---|---|---|
| Hela anropet misslyckas och inga händelser bearbetas | En händelse i batchen har en event_time som är mer än 7 dagar gammal | Skicka 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 hade | Olika händelse-id:n, en pixelhändelse utan eventID, eller en andra app som skickar samma pixel | Använd ett id för båda kopiorna och en serveravsändare per pixel. |
| Låg matchningskvalitet på serverhändelser | Din server skickar sin egen IP-adress och user agent | Skicka vidare den IP-adress och user agent som registrerades från köparens webbläsare eller order. |
| Få händelser med fbc | fbclid sparades inte på landningssidan, eller så ändrades den | Spara fbclid exakt som den kommer in och bygg fbc av den. |
| E-post och telefon matchar inte | Värden som hashats utan normalisering, eller skickats utan hashning | Ta 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ångstid | Anslut igen, eller använd en System User-token från Business Manager, som du kan skapa utan utgångsdatum. |
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
fbpochfbcsom 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
- Meta for Developers: Handling Duplicate Pixel and Conversions API Events
- Meta for Developers: Server Event Parameters
- Meta for Developers: Customer Information Parameters
- Meta for Developers: Using the API - Conversions API
- Meta for Developers: ClickID and the fbp and fbc Parameters