Facebook Conversion API

Facebook Conversion API
2021-05-27T18:01:46+02:00
2021-05-27T18:24:00+02:00
2022-10-17T09:35:33+02:00
  • 10. Most éppen a Deduplicate részét olvasom: Deduplicate Pixel and Server-Side Events - Marketing API - Documentation - Facebook for Developers
    Józan paraszti eszemmel az gondolnám, hogy simán kiveszem a JS kódot, ami eddig küldözgette az adatokat és hagyom csak ezt az újat, de erről is írtak jó sokat...
    Mutasd a teljes hozzászólást!
  • Ha valaki szintén belefut ebbe a témába, talán megspórol pár felesleges munkaórát, ha előtte elolvassa ezt. Röviden összefoglalva:
    1. iOS 14-en nem futnak le a 3th party szkriptek, tehát az eddig általánosan használt ilyen-olyan mérőkódok sem.
    2. Már hetek óta megy a huzavona, hogy az egyik ügyfelünk FB-marketinggel megbízott cége majd kér tőlünk valamit. Át is küldtek egy teljesen értelmezhetetlen és rettenetesen hosszú lére eresztett irományt, amiben hosszú oldalakon keresztül tárgyalták, hogy mi ez és miért kell, meg hogyan kell  meghívni Kollagén Artúr fejlesztőt ezt implementálni stb. stb. stb. De hogy egészen pontosan mit is, az persze nem derült ki.
    3. Ma reggel végre nekiültünk. A rettentő sok blabla elolvasása után arra a következtetésre jutottunk, hogy:
    3.1. Kell a pixel ID
    3.2. Kell generálni egy tokent
    3.3. cURL-el elposztoljuk az adatokat
    4. Ezekkel felvértezve nekiláttam a cURL-es megoldást belebuherálni a php szkriptbe. Semmi extrát nem vártam tőle, de valamiért mégsem működött. Van egy ilyen oldal: Using the API - Marketing API - Documentation - Facebook for Developers meg egy ilyen is: Payload Helper - Marketing API - Documentation - Facebook for Developers , én eléggé bamba módon beletettem ezt a struktúrát egy az egyben egy JSON-ba, amitől viszont folyamatosan kiakadt.
    5. Tudom, én voltam a szamár, mert NEM a változóban kell legyen a data, HANEM maga a változó kell legyen a data... Az ördög tudja, hogy ők miért így adják meg a változót (illetve hát "kódot" - de minek is a kódját?):

    { "data": [ { "event_name": "Purchase", "event_time": 1622129417, "action_source": "email", "user_data": { "em": "7b17fb0bd173f625b58636fb796407c22b3d16fc78302d79f0fd30c2fc2fc068", "ph": null }, "custom_data": { "currency": "USD", "value": "142.52" } } ] }
    mert amúgy

    data=[ { "event_name": "Purchase", "event_time": 1622129417, "action_source": "email", "user_data": { "em": "7b17fb0bd173f625b58636fb796407c22b3d16fc78302d79f0fd30c2fc2fc068", "ph": null }, "custom_data": { "currency": "USD", "value": "142.52" } } ]
    a jó, ahogy a parancssori kódban is szerepel :)
    6. Az összes többi "fejlesztői eszköz" ezek után már nem is kellett (Graph API Explorer, különböző tesztelők meg társaik), mert hát lényegében pofonegyszerű az egész, csak valamiért a sok mellébeszélés miatt elveszítettem a józan eszemet és nem vettem észre, hogy mi a baja.

    Összegzésként elmondhatom, hogy kissé elszomorított a saját balfékségem... Egyrészt ott volt ez a totál haszontalan, mindenféle fölösleges és redundáns infókkal megspékelt leírás, másrészt viszont nem volt ott egy használható PHP kód, amit az ember átalakítson és beillesszen. Cserébe itt az enyém:

    $fb_api = curl_init(); curl_setopt($fb_api, CURLOPT_URL, "https://graph.facebook.com/v10.0/[pixel_ID]/events?access_token=[token]"); curl_setopt($fb_api, CURLOPT_RETURNTRANSFER, true); curl_setopt($fb_api, CURLOPT_POST, true); $fb_dat = 'data=[ { "event_name": "Purchase", "event_time": '.$time.', "action_source": "website", "event_source_url": "'.$url.'", "user_data": { "client_ip_address": "'.$clip.'", "client_user_agent": "'.$clua.'" }, "custom_data": { "currency": "HUF", "value": "'.$value.'" } } ]'; curl_setopt($fb_api, CURLOPT_POSTFIELDS, $fb_dat); $fb_out = curl_exec($fb_api); curl_close($fb_api);
    7. A kódról csak annyit, hogy vigyázni kell nagyon a szintaktikájára, mert bármiféle elírás esetén is előjön avval, hogy "nincs data paraméter", ami viszont pont ugyanaz a hibaüzenet, mintha valóban nem is küldtünk volna data paramétert.
    8. A JSON data-nak vannak kötelező és nem kötelező elemei, ezek eléggé viccesek, mert hát ez csak teszteléskor derül ki, hogy mihez ragaszkodik és mihez nem. Erre vannak gondolom a tool-ok, de itt szerencsére nem kell túl sok adatot átvinni, ezért ebbe már nem is bonyolódtunk bele.
    9. Érdekes, hogy egy bizonyos feldolgozottsági szint fölött megpróbált a cURL ékezetes magyar hibaüzeneteket lökni, ki tudja miféle kódolással, mert eléggé olvashatatlan az egész... Pl. ha nem volt elég user_data-ja, azt ékes magyarsággal próbálta a tudomásomra hozni, amúgy viszont angolul jöttek a hibák.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd