Nemáte přehled o tom, kolik aktivních reklam máte v každé sestavě v Skliku? Zjistěte to rychle, jednoduše a hlavně automaticky pomocí tohoto Sklik skriptu!
Problém: Chcete si ověřit počet aktivních rozšířených inzerátů v každé sestavě. Je jich někde málo? Nebo naopak moc?
U klienta, kde se často aktualizuje znění reklam, se mi stalo, že některé reklamy měly být už pozastavené, ale stále jsou aktivní, ačkoliv je měl importní soubor vygenerovaný z Google AdWords Editoru zastavit.
Sklik sám ve svém prostředí nabízí přehled nad kampaněmi vč. počtu inzerátů, ale zaprvé není moc přehledný, nelze v něm filtrovat, ale hlavně zahrnuje do počtu také pozastavené reklamy.
Pomocí generátoru reportů Standy Jílka jsem si vygenerovala základ kódu, který jsem následně upravila tak, abych získala report s počtem aktivních rozšířených reklam (ETA) v každé sestavě. Tento report se generuje do Google Sheets a odkaz na něj je zaslán emailem, jakmile je připraven.
Když si hotový report otevřete, udělejte si nad daty filtr, seřaďte sloupec “Počet inzerátů” a najděte sestavy s nízkým nebo naopak vysokým počtem inzerátů. Výstup bude vypadat takto:
Jak skript implementovat?
Skript byl připraven v prostředí Google Scripts. Vytvořte si nový spreadsheet v Google Sheets, běžte do Nástroje => Editor skriptu a tam vložte kód, který najdete níže.
Aby skript správně pracoval je třeba vyplnit následující parametry, které najdete na jeho začátku:
- odkaz na nový prázdný spreadsheet v Google Sheets (optimálně ten, který jste právě vytvořili pro vložení skriptu)
- váš email, kde bude zaslán odkaz na hotový report
- Sklik token, který získáte v nastavení vašeho Sklik účtu
- Název (email) individuálního účtu v případě, že používáte token pro MCC
Jakmile je vše připraveno, můžete skript spustit přes menu Spustit => Spustit funkci => main (poprvé bude třeba skript autorizovat) a je to! 🙂 Počkejte si na email, který vám brzy dorazí.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
//Nastavení---------------------------------------------------------------------------------------------- //******************************************************************************************************* var spreadsheet = ''; //uveďte url adresu prázdného Google Sheets var email = ''; //uveďte emailovou adresu, kam bude report zaslán //Token var token = ''; //uveďte Sklik token var sklik_account = ''; //používáte-li token z MCC účtu, zadejte název single účtu /******************************************************************************************************** Skript vytvořila Hana Kobzová, https://hanakobzova.cz Základ skriptu byl vygenerován generátorem od Standy Jílka na adrese: www.standajilek.cz/skripty/navody/sklik-api/generator/ ********************************************************************************************************/ function main() { //Nadefinování spreadsheetu var ss = SpreadsheetApp.openByUrl(spreadsheet).getActiveSheet(); //Pole pro export do spreadsheetu var sheet_export = []; var sheet_row = []; //Přihlášení //client.login------------------------------------------------------------------------------------------- var client_login = sklik_api([token], 'client.loginByToken'); var session = client_login.session; //client.get--------------------------------------------------------------------------------------------- var client_get = sklik_api([{'session': session}], 'client.get'); //cyklus, který projde všechny účty a přiřadí správné userId vámi nadefinovaného účtu for (var i = 0; i < client_get.foreignAccounts.length; i++) { if (sklik_account.toLowerCase() == client_get.foreignAccounts[i].username.toLowerCase()) { var sklik_account_id = client_get.foreignAccounts[i].userId; } } //Datum-------------------------------------------------------------------------------------------------- //Počet dní zpátky var start_date = new Date(); start_date.setUTCDate(start_date.getUTCDate() - 1); start_date = Utilities.formatDate(start_date, 'GTM - 1', 'yyyy-MM-dd'); var end_date = new Date(); end_date.setUTCDate(end_date.getUTCDate() - 1); end_date = Utilities.formatDate(end_date, 'GTM - 1', 'yyyy-MM-dd'); //createReport------------------------------------------------------------------------------------------- var createReport = sklik_api([{'session': session, 'userId': sklik_account_id}, {'isDeleted': false, 'status': ['active'], 'adType': ['eta'], 'campaign': {'isDeleted': false, 'status': ['active']}, 'group': {'isDeleted': false, 'status': ['active']}, 'dateFrom': start_date, 'dateTo': end_date}], 'ads.createReport'); var report_id = createReport.reportId; var limit = createReport.totalCount; var offset = Math.ceil(limit / 5000); for (var i = 0; i < offset; i++) { try { //readReport--------------------------------------------------------------------------------------------- var readReport = sklik_api([{'session': session, 'userId': sklik_account_id}, report_id, {'offset': i * 5000, 'limit': 5000, 'allowEmptyStatistics': true, 'displayColumns': ['campaign.name', 'group.name', 'id']}], 'ads.readReport'); //cyklus pro procházení statistik if (readReport.report.length > 0) { var array = []; var output = []; for (var j = 0; j < readReport.report.length; j++) { array.push([readReport.report[j].campaign.name, readReport.report[j].group.name]); } array.sort(compareSecondColumn); var count = 0; for (var k = 1; k < array.length; k++) { if (array[k][0].equals(array[k-1][0]) && (array[k][1].equals(array[k-1][1]))) { count++; } else { count++; output.push([array[k-1][0], array[k-1][1], count]); count = 0; } } } } catch (err) { } Utilities.sleep(200); } //Hlavička tabulky ss.getRange(1, 1, 1, 3).setValues([['Název kampaně', 'Název sestavy', 'Počet inzerátů']]); //Smazání předchozích dat ss.getRange(2, 1, ss.getLastRow(), 3).clearContent(); //Export do spreadsheetu if (output.length > 0) { ss.getRange(2, 1, output.length, 3).setValues(output); } //client.logout------------------------------------------------------------------------------------------ var client_logout = sklik_api([{'session': session}], 'client.logout'); //Obnovení spreadsheetu SpreadsheetApp.flush(); //Výstup Logger.log(spreadsheet); MailApp.sendEmail(email, "Sklik script - Počet inzerátů", "", {htmlBody: spreadsheet}); } //------------------------------------------------------------------------------------------------------- //Funkce pro komunikaci function sklik_api(parameters, method) { var url = 'https://api.sklik.cz/jsonApi/drak/' + method; var options = {'method': 'post', 'contentType': 'application/json', 'muteHttpExceptions': true, 'payload': JSON.stringify(parameters)}; try { return(JSON.parse(UrlFetchApp.fetch(url, options))); } catch (err) { Utilities.sleep(1000); try { return(JSON.parse(UrlFetchApp.fetch(url, options))); } catch (err) { Utilities.sleep(1000); return(JSON.parse(UrlFetchApp.fetch(url, options))); } } } //Funkce pro seřazení pole function compareSecondColumn(a, b) { if (a[1] === b[1]) { return 0; } else { return (a[1] < b[1]) ? -1 : 1; } } |
Máte problém s implementací skriptu nebo byste rádi nějaké úpravy? Kontaktujte mě.