Усі знають, що з жовтня 2017 року кампанії в Google Ads можуть витрачати вдвічі більше грошей, ніж задано в їхньому денному бюджеті. Існують різні види скриптів для Adwords, але ми написали свій.
Існують різні види скриптів для Adwords, які дають змогу перевіряти витрати кампаній і зупиняти їх, коли вони виходять за рамки заданого бюджету. Однак ми зіткнулися з проблемами у всіх знайдених нами скриптів:
- При типі кампанії Search with Display Select функція getCost не враховує витрати кампанії в КМС.
- Аналогічна ситуація з Youtube кампаніями, де потрібно викликати окрему API функцію, щоб отримати витрати.
Тому ми написали для себе скрипт, який використовує функцію report і отримує сумарну витрату по обліковому запису, і враховує всі типи кампаній та місць розміщення. Він відмінно підходить коли вам потрібно:
- Слідкувати за денною витратою облікового запису і бути впевненим, що ви не витратите вдвічі більше від запланованих бюджетів.
- Слідкувати за тижневою або місячною витратою, особливо це актуально, коли у вас витрата на місяць підтверджується актами, із заздалегідь узгодженими в них сумами.
Перевіряє витрати облікового запису за заданий вами в налаштуваннях скрипту часовий проміжок, день, тиждень, місяць тощо.
Якщо витрата більша за заданий вами в налаштуваннях скрипта значення, він зупиняє активні кампанії.
Далі скрипт, як і раніше, буде робити перевірки, і коли побачить що настав новий день, тиждень, місяць і відповідно у нас є заново бюджет, то включить назад компанії, які отримували покази перед паузою.
У принципі пункти 2 і 3 ви можете налаштувати як вам потрібно, наприклад, додати умову, щоб не зупиняти Бренд кампанію, або включати назад не всі кампанії, а з певними назвами. Основний зміст цього скрипту в 1 пункті та функції report, яка точно показує всю витрату акаунту та будь-якого типу кампаній у ньому.
google ads
google scripts
account
budget
function main() {
var budget = 10000;//set target budget value
var report = AdWordsApp.report(‘SELECT Cost ‘ + ‘FROM ACCOUNT_PERFORMANCE_REPORT ‘ +
‘DURING THIS_MONTH’);//choose: TODAY YESTERDAY LAST_7_DAYS LAST_WEEK LAST_30_DAYS THIS_MONTH LAST_MONTH ALL_TIME
var rows = report.rows();//log actual account costs
while (rows.hasNext()) {
var row = rows.next();
var cost = row[‘Cost’];
Logger.log(cost);
}
var EnabledCampaignsList = [];//get currently enabled campaigns list
var campaignIterator1 = AdWordsApp.campaigns().withCondition(“Status = ENABLED”).get();
while (campaignIterator1.hasNext()) {
var campaign = campaignIterator1.next();
EnabledCampaignsList.push(campaign);
}
if (cost > budget){//pause enabled campaigns if actual account costs > target budget value
for (var i = 0; i < EnabledCampaignsList.length; i++) {
var campaign = EnabledCampaignsList[i];
Logger.log(campaign.getName())
campaign.pause();
}
}
var WasEnabledCampaignsList = [];//get campaigns with impressions before list
var campaignIterator2 = AdWordsApp.campaigns().withCondition(“Impressions > 0”)
.forDateRange(“LAST_7_DAYS”).get();//choose date range YESTERDAY LAST_7_DAYS LAST_30_DAYS for impressions > 0 rule
while (campaignIterator2.hasNext()) {
var campaign = campaignIterator2.next();
WasEnabledCampaignsList.push(campaign);
}
if (cost < budget){//enable campaigns with impressions before if actual account costs > target budget value
for (var i = 0; i < WasEnabledCampaignsList.length; i++) {
var campaign = WasEnabledCampaignsList[i];
Logger.log(campaign.getName())
campaign.enable();
}
}
}
Залишіть заявку і ми підберемо рішення для Вас
Залиште заявку та обговоріть з маркетологом
завдання та детальний розрахунок ціни
Запишіться на безкоштовну консультацію до маркетолога
Ми з Вами зв'яжемося найближчим часом.