Pracujeme s Facebook marketing API bez bolesti

Marek Čepček   4. 8. 2016


Tento článok je dobrým začiatkom, či už máte v pláne sami používať facebookové API na správu reklám, alebo či vás len zaujíma, čo to za „kúzla“ používajú vývojári. Cieľom nie je priniesť podrobný návod práce s API, ale len zhrnúť základné informácie, výhody a úskalia, na ktoré určite narazíte pri práci, podobne ako sa to stalo mne. Poďte na to!

Po stopách gigantu menom Google AdWords je Facebook ďalším členom rodiny marketingových platforiem, ktorý otvára zadné dvierka ku správe vašich reklám a kampaní. Vytvára sa tak priestor pre vývojové oddelenia, ktoré vaše predstavy o automatizácií a spravovaní stoviek reklám bez nutnosti úmorného klikania a nudného kopírovania môžu s radosťou zmeniť na realitu. Takto ušetrený čas môžete venovať plánovaniu lepšej marketingovej stratégie. Je to ale už naozaj skutočnosť, alebo sa toho musí Facebook od strýka Google ešte veľa učiť?

Začíname s API

Skôr ako sa pustím do špecifických informácií, trochu priblížim, čo to vlastne API je. Zjednodušene sa dá povedať, že ide o súbor funkcií, ktoré poskytujú prístup k službám „programátorskou“ cestou. Tento prístup môže mať rôzne formy. V prípade Facebooku sa jedná o takzvané REST API, čo v praxi znamená odoslanie špecifických HTTP požiadaviek na server, na základe ktorých potom server vykoná určitú akciu, alebo zašle užívateľovi požadované dáta. Pre niekoho nezainteresovaného to môže znieť zložito, ale aj otvorenie nasledujúcej URL v prehliadači je takou požiadavkou.

Server v prípade správne vyplnených parametrov môže odoslať užívateľovi správu

{
    "birthday": "06/25/1991",
    "name": "Marek Čepček",
    "id": "10201712126801288"
}

Používanie API je teda, laicky povedané, odosielanie správnych požiadaviek na server a spracovávanie ich výstupu. Otvorenie vyššie uvedenej URL v prehliadači je požiadavkou, ktorá konkrétne zistí aktuálne prihláseného užívateľa na Facebooku a zašle o ňom požadované informácie. Ako užívateľ môžem samozrejme otvoriť priamo Facebook, aby som získal tieto informácie. Nie je to ale také jednoduché, pokiaľ s tými informáciami potrebujem pracovať v nejakom programe, alebo ich nejako automaticky spracovať.

Práve pomocou API spracujeme tieto informácie veľmi jednoducho, pretože nám ich Facebook zašle v „programátorsky“ prívetivom formáte. V tomto prípade je to momentálne najviac používaný formát, takzvaný JSON. To je už ale iná kapitola, ktorej sa v tomto článku venovať nebudem. Radšej sa pozrime bližšie na to, ako správne vytvoriť vlastné facebookové požiadavky.

Prvá požiadavka

Každá požiadavka sa skladá zo štyroch základných častí, ako to je vidno aj na predchádzajúcej URL.

  1. Server (https://graph.facebook.com), na ktorý je smerovaná daná požiadavka.
  2. Verzia API (v2.7), ktorá určuje podľa akej špecifikácie je vytvorená aktuálna požiadavka. Keďže sa Facebook neustále vyvíja, sú do neho pridávané nové funkcie (prípadne odoberané staré), je potrebné si zachovať určitú kompatibilitu. Je to z dôvodu, aby sa nemohlo stať, že Facebook zruší podporu určitej funkcie a nám zrazu prestane niečo fungovať. Preto sú zmeny vykonávané len vytvorením novej verzie, pričom určitú dobu ostávajú aktívne aj tie staršie, aby mali programátori dostatok času prispôsobiť svoje programy zmenám.
  3. Uzol (me) určuje, s akými dátami, respektíve objektmi chceme pracovať. Na tomto mieste môže byť zadefinovaný užívateľ, reklamný účet, kampaň, reklama, atď., v podstate akýkoľvek objekt na Facebooku, ktorý má svoje ID. Každý uzol navyše poskytuje špecifické funkcie, takzvané hrany, ktoré zaisťujú prístup k objektom, ktoré sú v nejakej relácií so zadaným uzlom. Napríklad hrana „photos“ v požiadavku vráti ID všetkých fotiek prihláseného užívateľa.
  4. Parametre (?fields=birthday,name &access_token=abcde) upresňujú požadovanú akciu. V tomto prípade (v URL vyššie) parameter „fields“ určuje, že vo výstupe chceme mať zahrnuté polia „dátum narodenia“ a „meno“ („id“ sa pridáva automaticky). Dôležitým, a vo väčšine požiadaviek povinným parametrom je tzv. access_token. Je to špeciálny reťazec, ktorý v sebe nesie informácie o prístupových právach užívateľa. Tento reťazec je možné získať prostredníctvom Oauth autentizácie, alebo pomocou jednoduchej aplikácie, ktorú poskytuje priamo Facebook a pre nás bohate stačí. Okrem Oauth autentizácie táto aplikácia poskytuje aj jednoduchý prístup k všetkým funkciám API a je tak super nástrojom na testovanie.

Jedno API všetkým vládne

Môže sa naskytnúť otázka, prečo vôbec pracujem s príkladom, ktorý nemá nič spoločné s marketingom, keď tento článok má byť o marketingovom API? Dôvod je ten, že Facebook má v skutočnosti len jedno takzvané Graph API pre všetko. Pod pojmom marketingové API sa označujú špecifické uzly a hrany, ktoré pod Graph API patria. Ich vyčerpávajúci, ale zato prehľadaný zoznam a popis je možné nájsť v dokumentácií. Nemá zmysel vymenovať všetky dostupné funkcie, keď sa ľahko môže stať, že už v čase čítania tohto článku sú úplne iné. Dôležité je poznať základný princíp a vedieť, kde informácie o aktuálnych funkciách hľadať. V tom spočíva znalosť API. Aké jednoduché, však?

Teoreticky áno, prakticky nie…

Odvrátená strana

Všetko je super, dokedy nezačneme možnosti API využívať „naplno“. Tým naplno myslím automaticky meniť obrázky u stoviek reklám v určitých časových intervaloch, vypínať a zapínať ich, prípadne meniť popisky u nich. A práve tu prichádza na rad vyššie spomínaná bolesť hlavy - kvôli limitom.

Limity sú rozdelené do niekoľkých úrovní, pričom každú vyššiu úroveň si treba „zaslúžiť“. Presnejšie, je potrebné prejsť náročným schvaľovacím procesom a spĺňať kritéria Facebooku pre postup na ďalšiu úroveň.

Hlavným problémom pritom nie je ani počet povolených operácií za určitý čas, ktorý sa navyšuje s vyššími úrovňami, ale skutočnosť, že o vyčerpanom limite sa dozvieme až vtedy, keď sa vyčerpá. V tom momente nasleduje niekoľkominútové blokovanie požiadavok, kým sa limity opäť nedobijú. Ale ako zistíme, či sú dobité? Vyskúšame zadať požiadavku znova. Pokiaľ ale ešte nemáme dostatok limitu, tie sa nám opäť vynulujú, a požiadavka sa nerealizuje.

Používanie API teda prebieha metódou pokus - omyl. Pokiaľ budete pátrať po riešení tohto problému, tak narazíte na jedno priam komické riešenie od Facebook. Natrafil som na to v dokumentácií a je ním „rob zatiaľ niečo iné a skús operáciu zopakovať neskôr“. Od Facebooku by som teda očakával niečo sofistikovanejšie.

Mojím riešením bolo pokúsiť sa predísť vyčerpaniu limitov úplne, a to zaradením dostatočne dlhých páuz medzi požiadavkami (niekedy aj niekoľko sekúnd). Dĺžka pauzy pritom závisela od operácie, pretože každá operácia zaberá iný počet limitov. Stačí sa riadiť ale základným pravidlom: lepšie stokrát vytvoriť ako raz upraviť. 🙂

Zhrnutie

Aj napriek pár neduhom, na ktoré som narazil, hodnotím prácu s API pozitívne. Prispela k tomu hlavne prehľadná dokumentácia s množstvom praktických ukážok, ktorú je radosť čítať. Samozrejme, nesmiem zabudnúť ani na prepracované testovacie nástroje. Čerešničkou na torte sú priamo Facebookom podporované knižnice na prácu s API, dostupné v rôznych programovacích jazykoch. Tie efektívne znižujú hranicu úsilia, ktoré je potrebné vynaložiť na minimum a umožnia tak vytvorenie prvej reklamy cez API doslova za minútu od zapnutia editora.