Choć w Google AdWords można automatycznie otrzymywać drogą mailową wiele typów powiadomień, w tym także na temat niezaakceptowanych reklam tekstowych, to system wciąż w żaden sposób nie informuje o odrzuconych rozszerzeniach.
Jest to o tyle problematyczne, że szczególnie w przypadku zarządzania wieloma kontami, trudno jest codziennie sprawdzać, czy któreś z nich nie straciło właśnie akceptacji, a efekt takiej zmiany może nie być widoczny na pierwszy rzut oka w statystykach.
Należy podkreślić, że rozszerzenia reklam są jednym z czynników wpływających na ranking reklamy, dlatego istotne jest, by korzystać z nich w jak największym zakresie. Ktoś mógłby powiedzieć, że jeśli tworzy się teksty zgodnie z zasadami AdWords, nie ma potrzeby martwić się o odrzucone rozszerzenia reklam – niestety, niejednokrotnie zdarzają się one bez winy autorów, co zespół wsparcia po stronie Google określa wdzięczną nazwą “overflagging”.
Nie wliczając tych automatycznych, obecnie możemy korzystać z rozszerzeń:
- linków do podstron,
- połączeń,
- aplikacji,
- lokalizacji,
- opinii,
- objaśnień,
- informacji,
- wiadomości,
- ceny,
- promocji.
Jest więc ich całkiem sporo i by być pewnym, że każde z nich może się wyświetlać, warto skorzystać z dodatkowego rozwiązania, którym jest poniższy skrypt.
Jak działa skrypt sprawdzający odrzucone rozszerzenia reklam?
Skrypty w Google AdWords są zaawansowaną opcją, która pomaga zautomatyzować część pracy i procesów zachodzących na koncie. Do ich tworzenia wymagana jest znajomość JavaScript oraz dokumentacji, jednak by korzystać z już gotowych rozwiązań nie będą potrzebne żadne dodatkowe umiejętności.
Poniższy kod ma proste zadanie: informować użytkownika drogą mailową, jeśli na koncie AdWords pojawi się odrzucone rozszerzenie któregokolwiek z wyżej wymienionych rodzajów. Skrypt przygotowany jest z myślą o kontach menadżera, czyli kontach zbiorczych (MCK).
Za każdym razem, gdy kod jest uruchamiany, sprawdzane są wszystkie rozszerzenia na koncie, które można znaleźć w udostępnionych zasobach (a dokładnie w firmowych bazach danych, gdzie pojawiają się automatycznie po utworzeniu).
Jeśli wykryte zostaną elementy odrzucone, są one szczegółowo odnotowane w arkuszu kalkulacyjnym Google – można w nim znaleźć treść rozszerzenia, jego rodzaj, a także powód odrzucenia. Gdy wszystkie konta objęte analizą są już sprawdzone, na określony adres email wysyłana jest wiadomość zawierająca listę kont AdWords z błędami i linkiem do arkusza. W przypadku braku problematycznych rozszerzeń wiadomość nie jest wysyłana.
Wdrożenie skryptu
Przed wdrożeniem kodu zaloguj się na swoje konto Google i utwórz na dysku nowy arkusz kalkulacyjny – link do niego trzeba będzie wkleić w odpowiednim miejscu w kodzie. Zaloguj się na konto MCK. Utwórz nową etykietę “extensionsChecker” i oznacz nią konta, które mają być objęte analizą. Następnie wejdź w operacje zbiorcze i w menu “Skrypty” dodaj nowy, klikając na czerwony przycisk.

Dodaj nowy skrypt
Zastąp obecną treść okna następującym kodem:
/**
* Copyright 2017, SmartYou All Rights Reserved.
*
* @name Ad Extensions Checker v 1.0.
*
* @author Maciek Tysper maciej@smartyou.pl
*
* INSTRUKCJA:
* 1. Utwórz na poziomie MCK etykietę 'extensionsChecker' i oznacz nią konta, które mają być analizowane.
* 2. Utwórz nowy arkusz Google i podaj jego adres w zmiennej 'spreadsheetUrl'.
* 3. W zmiennej 'recipient' podaj adres email, na który mają przychodzić powiadomienia.
* 4. Zapisz skrypt w MCK i ustaw harmonogram.
* 5. Obsługiwane rozszerzenia:
* - linki do podstron,
* - rozszerzenia połączeń,
* - rozszerzenia aplikacji,
* - rozszerzenia lokalizacji,
* - rozszerzenia opinii,
* - rozszerzenia objaśnień,
* - rozszerzenia informacji,
* - rozszerzenia wiadomości,
* - rozszerzenia cen,
* - rozszerzenia promocji.
*/
function main() {
/**
* SPRAWDZ PONIZSZE DANE
*/
var includeLabel = "extensionsChecker"; //Utworz taka etykiete na MCK i oznacz nia konta, ktore beda analizowane
var recipient = "twoj@email.pl"; //Twoj adres email
var spreadsheetUrl = "https://docs.google.com/spreadsheets/d/ID/edit#gid=0"; //Podaj link do arkusza
/**
* Przygotownie arkusza
*/
var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
var sheet = spreadsheet.getActiveSheet();
sheet.clear();
sheet.getRange("A1:E1").setValues([['Konto','Typ rozszerzenia','Atrybuty','Status','Powód odrzucenia']]);
/**
* Rejestr kont z odrzuconymi elementami
*/
var accountsList = "Konta z odrzuconymi rozszerzeniami:n";
var numberOfAccounts = 0;
/**
* Zapytanie API
*/
var query = "SELECT AccountDescriptiveName, PlaceholderType, AttributeValues, ValidationDetails, DisapprovalShortNames " +
"FROM PLACEHOLDER_FEED_ITEM_REPORT " +
"WHERE DisapprovalShortNames != '' " +
"AND Status = 'ENABLED' " +
"AND PlaceholderType IN [1,2,3,7,8,17,24,31,35,38]";
/**
* Przetwarzanie kont
*/
var accountIterator = MccApp.accounts()
.withCondition("LabelNames CONTAINS '" + includeLabel + "'")
.get();
while (accountIterator.hasNext()) {
var account = accountIterator.next();
var accountName = account.getName();
MccApp.select(account);
var report = AdWordsApp.report(query);
var rows = report.rows();
if (rows.hasNext()) {
accountsList += accountName + 'n';
numberOfAccounts++;
}
while (rows.hasNext()) {
var row = rows.next();
var attributes = row['AttributeValues'];
var placeholderType = placeholderName(parseInt(row['PlaceholderType']));
var status = row['ValidationDetails'];
var disapprovalReason = row['DisapprovalShortNames'];
sheet.appendRow([accountName, placeholderType, attributes, status, disapprovalReason]);
}
}
/**
* Wysyłanie maila
*/
if (numberOfAccounts > 0) {
MailApp.sendEmail(recipient, "[SKRYPT] Odrzucone rozszerzenia", accountsList + "nnZobacz szczegóły:n" + spreadsheetUrl);
}
function placeholderName (int) {
switch (int) {
case 1:
return 'Link do podstrony';
case 2:
return 'Rozszerzenie połączeń';
case 3:
return 'Rozszerzenie aplikacji';
case 7:
return 'Rozszerzenie lokalizacji';
case 8:
return 'Rozszerzenie opinii';
case 17:
return 'Rozszerzenie objaśnień';
case 24:
return 'Rozszerzenie informacji';
case 31:
return 'Rozszerzenie wiadomości';
case 35:
return 'Rozszerzenie ceny';
case 38:
return 'Rozszerzenie promocji';
default:
return 'Inny';
}
}
}
W skrypcie potrzebne są dwie modyfikacje:
1) Podaj swój adres email w cudzysłowie dla zmiennej “recipient”,
2) Wklej adres do utworzonego wcześniej arkusza kalkulacyjnego w cudzysłowie przy zmiennej “spreadsheetUrl”.

Podaj email oraz adres URL do arkusza w Google Sheet
Następnie kliknij “Podgląd” i autoryzuj skrypt. Uruchom podgląd jeszcze raz – teraz wszystkie konta powinny zostać przeskanowane.

Uruchom podgląd i autoryzuj skrypt
Zapisz zmiany, po czym ustaw harmonogram, by kod uruchamiał się z określoną częstotliwością (np. raz dziennie).

Ustaw harmonogram
To już wszystko – dzięki bieżącym poprawkom w rozszerzeniach, alerty mailowe będą przychodzić tylko wtedy, gdy pojawią się nowe odrzucenia. W ten sposób udaje się załatać jedną z luk w komunikatach systemowych.
Maciek Tyśper