AutomatyzacjaRaportowanieSkrypty Google AdsSkrypt Google Ads – kampanie z zerową liczbą kliknięć

2 listopada 20220

W dzisiejszym wpisie znajdziesz skrypt, który pozwoli Ci monitorować działanie kampanii, bez konieczności codziennego zaglądania na konto. Dzięki temu zaoszczędzisz czas i codziennie w formie maila otrzymasz informację o wszystkich kampaniach, które nie generują kliknięć.

Skrypt Google Ads - kampanie z zerową liczbą kliknięć

Skrypt wysyła mailem informację, które konkretnie kampanie wygenerowały zero kliknięć. W mailu znajdzie się również nazwa kampanii Google Ads oraz liczba wyświetleń. W ten sposób można szybko zorientować się, które kampanie nie działają poprawnie (np. skończył się budżet, reklamy zostały odrzucone).
Skrypt został dostosowany do nowej wersji skryptów Google Ads.

Jak skonfigurować skrypt?

1. Skrypt działa na poziomie konta MCK (Narzędzia i ustawienia ⇒ Działania zbiorcze ⇒ Skrypty).
2. Skrypt wymaga autoryzacji do zarządzania kampania oraz wysyłania maili.
3. W wierszu const DATE_RANGE_TO_CHECK = ”TODAY” wybierz zakres dat, który ma być brany pod uwagę przy sprawdzaniu kampanii (w naszym przypadku jest to dzień dzisiejszy, więc wybrana wartość to TODAY; jeśli chcesz wybrać inną, w skrypcie znajdziesz inne nazwy zakresu dat, które możesz wykorzystać).
4. W wierszu const ACCOUNT_LABEL_NAME =”Nazwa-Etykiety” dodaj nazwę etykiety, którą oznaczone są konta w MCK, które będą sprawdzane (wielkość liter ma znaczenie).
5. W wierszu const RECIPIENT = ”twoj-adres-email@gmail.com” dodaj swój adres mailowy.
6. W wierszu const TITLE = ”Google Ads Script: Campaigns with zero clicks” wpisz nazwę maila.

/*

Name: MCC Level Google Ads script to list accounts with campaigns with zero clicks

Description: Script is checking MCC for campaigns with zero clicks on child accounts.
Results are storing in log console and sending by e-mail.
Version: 1.1 (16.10.2022)

*/

function main() {

/* =======

Configure script

======== */

//Change the settings according to your preferences
const RECIPIENT = "twoj-adres-email@gmail.com"; //E-mail address for sending results
const DATE_RANGE_TO_CHECK = "TODAY"; //Possible values:
//TODAY, YESTERDAY, LAST_7_DAYS, LAST_BUSINESS_WEEK, THIS_MONTH, LAST_MONTH, LAST_14_DAYS, LAST_30_DAYS,
//THIS_WEEK_SUN_TODAY, THIS_WEEK_MON_TODAY, LAST_WEEK_SUN_SAT, LAST_WEEK_MON_SUN
const ACCOUNT_LABEL_NAME = "Nazwa-Etykiety"; //Checks labeled accounts only
const TITLE = "Google Ads Script: Campaigns with zero clicks"; //E-mail subject

/* =======

Script Code

======== */

//Results composer
const mccId = AdsApp.currentAccount().getCustomerId().replaceAll("-", "");
const accountLabels = AdsManagerApp.accountLabels().withCondition("Name = '" + ACCOUNT_LABEL_NAME + "'").get();
if (!accountLabels.hasNext()) {
Logger.log("Create the label first.");
}
const includeLabelId = accountLabels.next().getId();
let numOfResults = 0;
let htmlBody = '<html><body>' + TITLE;
const date = Utilities.formatDate(new Date(), AdsApp.currentAccount().getTimeZone(), 'MMMM dd, yyyy @ hh:mma z');
htmlBody += '<br/ ><br/ >';
htmlBody += '<table border="1" width="95%" style="border-collapse:collapse;">';
htmlBody += '<tr>';
htmlBody += '<td align="left"><b>Account</b></td>';
htmlBody += '<td align="left"><b>Campaign</b></td>';
htmlBody += '<td align="center"><b>Clicks</b></td>';
htmlBody += '<td align="center"><b>Impressions</b></td>';
htmlBody += '</tr>';

//Processes accounts
let accounts = AdsManagerApp.accounts().withCondition("customer_client.applied_labels CONTAINS ANY ('customers/" + mccId + "/labels/" + includeLabelId + "')").get();
while (accounts.hasNext()) {
let account = accounts.next();
AdsManagerApp.select(account);
processAccounts();
}

//Ends E-mail body
htmlBody += '</table>';
htmlBody += '<br/ >';
htmlBody += date;
htmlBody += '</body></html>';

//Sends E-mail
let options = {htmlBody: htmlBody};
if (numOfResults > 0 ) {
MailApp.sendEmail(RECIPIENT, TITLE, TITLE, options);
}

//Account processing function
function processAccounts() {
const query = "SELECT customer.descriptive_name, customer.id, campaign.name, metrics.clicks, metrics.impressions " +
"FROM campaign " +
"WHERE campaign.experiment_type = 'BASE' AND campaign.status = 'ENABLED' AND metrics.clicks = 0 AND campaign.serving_status NOT IN ('ENDED') " +
"AND segments.date DURING " + DATE_RANGE_TO_CHECK + " " +
"ORDER BY campaign.name";
let report = AdsApp.search(query);
while (report.hasNext()) {
numOfResults += 1;
let campaign = report.next();
let name = campaign.campaign.name;
Logger.log('%s,%s,%s,%s,%s', campaign.customer.id, campaign.customer.descriptiveName, campaign.campaign.name, campaign.metrics.clicks, campaign.metrics.impressions);
htmlBody += '<tr><td align="left">' + campaign.customer.descriptiveName +
'</td><td align="left">' + campaign.campaign.name +
'</td><td align="center">' + campaign.metrics.clicks +
'</td><td align="center">' + campaign.metrics.impressions +
'</td></tr>';
}
}

}

Przypominam, że istnieje limit dotyczący liczby jednorazowo sprawdzanych kont i wynosi on 50. W przypadku większej liczby kont, można zastosować więcej etykiet i pod każdą uruchomić ten sam skrypt.

 

WSPÓŁPRACA ZE MNĄ
Od 2011 roku jako specjalista Google Ads zajmuję się prowadzeniem i optymalizacją kampanii w systemie reklamowym Google. Dotychczas przeprowadziłem ponad 2300 kampanii, których budżet przekroczył już 30 mln zł. Jeśli szukasz kogoś komu chcesz zlecić prowadzenie swoich kampanii, napisz do mnie. Pracuję tylko z firmami, które poważnie podchodzą do tematu, dlatego zapoznaj się proszę z moimi zasadami współpracy. Jeśli je akceptujesz, wyślij mi wiadomość :)

 

Zostaw odpowiedź

Twoj adres e-mail nie bedzie opublikowany.

Cześć!

Potrzebujesz pomocy przy kampanii Google Ads?

Napisz do mnie i sprawdź jak mogę Ci pomóc :)

➡️KONTAKT⬅️

This will close in 40 seconds