Jak automaticky stahovat údaje o reklamách na Facebooku do Google tabulek?

Growth Hacking Facebook API

Všichni víme, jak moc growh hackeři milují tabulky. Jsou univerzální, umožňují rychlé analýzy a není nutné žádné kódování.

Často se také používají jako interní řídicí dashboardy k měření a sledování výkonu reklam.

Věděli jste ale, že ke spuštění skriptů v tabulkách Google je možné použít JavaScript? Trochu známá funkce nám dokonce umožňuje psát vlastní vlastní tabulkové funkce, které lze použít v jakékoli buňce libovolného listu.

Toto je funkce ze skriptů Google Apps, kterou použijeme k automatickému načítání údajů o reklamách na Facebooku přímo do našich tabulek.

Jak přistupovat ke skriptům Google Apps?

Nejprve si vytvořte nový Google Spreadsheet česky Tabulky Google. Omluvte mě, ale budu to nazývat jak mě to zrovna napadne 🙂 Mám Sheety v angličtině, aby mi fungovali správně funkce a nepletli se mi tam české vzorečky. Doporučuji si tedy tedy taky přepnout tabulky do angličtině.

Měla by se zobrazit prázdná tabulka Google, jak je uvedeno níže.

empty sheet

Jak přepnout Google tabulky do angličtiny?

  1. Klikněte na Soubor > Nastavení tabulky > Jazyk = Spojené státy
  2. Pokračujme dále > Časové pásmo = GTM+1 Prague
  3. Jazyk zobrazení si můžete nechat češtinu.
  4. Zaklikněte „Vždy používat anglické názvy funkcí“.

Jak spustit vlastní skript v Google tabulkách

Nyní se vraťme zpět. Klikněte na záložku nástroje > Editor skriptu.

script editor menu

Mělo by se otevřít nové okno prohlížeče zobrazující editor kódu Google Apps Script s prázdnou funkcí myFunction.

empty script

Upozorňuju, že skripty Google Apps nepodporují ES6, ale pouze starší verze JavaScriptu.

První kroky s Google Apps skripty

Hello, World! ve skriptu Google Apps

Pojďme udělat rychlý úvod ve skriptování v rámci Google Apps.

Jedním z hlavních rozdílů od základního JavaScriptu je to, že protokolování neprovádí console.log(), ale místo toho Logger.log().

Vložte Logger.log (‚Hello, World‘); ve funkci „myFunction“:

function myFunction () {
Logger.log ('Hello, World!');
}

Stiskněte Uložit 💾 nebo použijte klávesovou zkratku Ctrl / Cmd + S.

Dále spusťte skript ▶ ️.

Přejděte na Zobrazit> Protokoly nebo pomocí zkratky Ctrl / Cmd + Enter otevřete okno Protokoly.

Gratuluji, spustili jste svůj první skript Google Apps!

logs hello world 700

Jak vytvořit vlastní funkci v Google tabulkách?

Příklad základní vlastní funkce

Udělejme si velmi jednoduchou vlastní funkci, abychom ukázali, jak je možné vytvářet vlastní funkce v tabulách Google.

Nahraďte kód v editoru kódu skriptu Google Apps tak, aby byl:

function double(number) {
  return number * 2;
}

Cílem funkce je vrátit dvojnásobek čísla použitého jako vstup.

Stiskněte Uložit 💾 a vyzkoušejte novou tabulkovou funkci:

double example

Gratuluji, právě jste rozšířili svoji Google tabulku o sílu JavaScriptu!

Jak vytvořit požadavek HTTP(S)

A teď už vážně: pojďme si ukázat jak získat data z Facebook API.

Budeme používat UrlFetchApp z Google Apps Script.

Nejzákladnějším příkladem požadavku HTTP pomocí UrlFetchApp ve skriptu Google Apps je:

function FBInsights() {
  var response = UrlFetchApp.fetch('https://example.com');

  Logger.log(response.getContentText());
}

Stiskněte Uložit 💾 a měli byste vidět autorizaci, protože je to poprvé, co spustíme skript schopný dotazovat se na externí data.

Až vás vyskakovací okno vyzve, klikněte na Potvrdit oprávnění.

unsafe app 600

Klikněte na Pokročilé a poté Přejít na {název projektu} (nebezpečné) (je to bezpečné, protože jste tvůrcem projektu).

this will allow 650

Klikněte na Povolit

logs example

Jak vidíte výše, máme úplnou odpověď HTML na GET dotaz na doméně example.com.

Pojďme udělat skutečnou věc pomocí rozhraní Facebook Insights API.

Dotazování na Facebook Insights API

Ověření

Facebook Marketing API potřebuje způsob, jak se autentizovat, abyste k datům měli přístup pouze vy.

Budete muset získat přístupový token. Můžete si přečíst můj článek Začínáme s Facebook Marketing API, kde se dozvíte, jak ho získat.

Příklad logování údajů služby Facebook Insights za včerejšek:

function FBInsights(entity_id) {
  var access_token = 'REPLACE_BY_YOUR_ACCESS_TOKEN'; //tuto hodnotu nahraďte vaším tokenem mezi uvozovky.
  var url = 'https://graph.facebook.com/v9.0/' //pokud FB udělal upgrade tak zde změňte na aktuální verzi, skript vám sám nahlásí chybu.
    + entity_id
    + '/insights'
    + '?date_preset=yesterday'
    + '&access_token=' + access_token

  var response = UrlFetchApp.fetch(url);
  var json = response.getContentText();
  var data = JSON.parse(json);

  return data;
}

function run() {
  Logger.log(FBInsights('act_XXXXXXXXXXXXXXXX')); //SEM za XXX nahraďte ID reklamního účtu
}

Všimněte si, že od té doby, co je odpověď Facebooku v JSONu, analyzujeme odpověď pomocí JSON.parse ().

Nezapomeňte nahradit access_token vlastním přístupovým tokenem a přidat své vlastní ID reklamního účtu Facebook, všimněte si, že je FBInsights() volána uvnitř run() (nebo jiného ID entity, jako je ID kampaně nebo ID sady reklam).

K zabalení funkce FBInsights() je potřeba funkce run(), aby bylo možné ji spustit s parametry. Nezapomeňte před kliknutím na ▶ ️ přepnout funkci, kterou má spustit run().

change function

Otevřete log událostí a měla by se zobrazit data vaší entity ze včerejška.

yesterday logs

Dotaz s vlastními daty

Vyladíme náš stávající skript, abychom mohli použít vlastní datum:

function FBInsights(entity_id, date) {
  var access_token = 'REPLACE_BY_YOUR_ACCESS_TOKEN';
  var url = 'https://graph.facebook.com/v9.0/'
    + entity_id
    + '/insights'
    + '?time_range=' + encodeURIComponent(JSON.stringify({'since': date, 'until': date}))
    + '&access_token=' + access_token

  var response = UrlFetchApp.fetch(url);
  var json = response.getContentText();
  var data = JSON.parse(json);

  return data;
}

function run() {
  Logger.log(FBInsights('act_XXXXXXXXXXXXXXXX', '2021-05-02'));
}

Rozhraní Facebooks Insights API používá objekt ve formátu {‚since‘: RRRR-MM-DD, ‚until‘: RRRR-MM-DD} pro parametr time_range. JSON.stringify() se používá k převodu z nativního objektu JS na JSON, který pak zabalíme pomocí encodeURIComponent().

Použitím stejného data od a do té doby získáváme výsledky pro tento jeden den.

Z toho vyplývá, že pokud budete mít rozsah dat od – do, bere se to včetně tohoto data. Od 1.5. 2021 do 2.5.2021 bude obsahovat tedy dva dny dat.

Výběr pole

function FBInsights(entity_id, date, field) {
  var access_token = 'REPLACE_BY_YOUR_ACCESS_TOKEN';
  var url = 'https://graph.facebook.com/v9.0/'
    + entity_id
    + '/insights'
    + '?time_range=' + encodeURIComponent(JSON.stringify({'since': date, 'until': date}))
    + '&fields=' + field
    + '&access_token=' + access_token

  var response = UrlFetchApp.fetch(url);
  var json = response.getContentText();
  var data = JSON.parse(json);

  return parseFloat(data['data'][0][field]);
}

function run() {
  Logger.log(FBInsights('act_XXXXXXXXXXXXXXXX', '2020-01-20', 'spend'));
}

Tím se přidá pole jako parametr funkce, přidá se do adresy URL nezbytný parametr dotazu a vylepší se příkaz return, který vrátí pouze data z daného konkrétního pole, analyzovaná jako float.

Chcete-li se dozvědět více o všech možných polích, přečtěte si příručku Guide to Facebook Insights API.

Finální demonstrace funkce

Nyní můžete ve svých Google Sheetech použít vlastní funkci =FBInsights („entity_id“, TEXT („date“, „yyyy-mm-dd“), „field_name“)!

=TEXT() je užitečné převést libovolné datum do formátu RRRR-MM-DD požadovaného Facebookem.

Zde je příklad načtení nákladů za data ve sloupci A. Vzorec, který používám v níže uvedeném příkladu: =FBInsights („REPLACE_BY_YOUR_ENTITY_ID“, TEXT (A2, „rrrr-mm-dd“), „náklady“)

spend by date

Nyní to zkuste sami s různými poli (kliknutí, zobrazení, konverze…)!

PS: Pro účely tohoto článku jsem přidal * Math.random() do svého návratového prohlášení, abych vynásobil čísla výdajů náhodným číslem, abych zamaskoval, jaké jsou moje skutečné údaje o nákladech o reklamě 🙂

Závěr

Nejen, že jste se naučili, jak vytvořit vlastní funkci v Google tabulkách, ale také jste se naučili, jak zadávat dotazy na marketingové rozhraní API společnosti Facebook a rozhraní Insights API. Kombinace těchto dvou možností vám umožní vyhledávat údaje o vašich reklamách na Facebooku přímo ve Spreadsheetech a ušetří vám stovky hodin.

Pokud byste chtěli udělat něco podobného s daty z Skliku, přečtěte si článek Jak automaticky stahovat údaje o reklamách z Skliku do Google tabulek?

V případě jakýchkoli dotazů k článku mě neváhejte kontaktovat.

Komentáře

Přidat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Vaše osobní údaje budou použity pouze pro účely zpracování tohoto komentáře.