Продвижение сайтов & web-аналитика

Выберите язык

Задать вопрос +38 096 558 7514

Скрипты Google Ads (Adwords)

Никто не задумывается об автоматизации, пока нет системного количества повторяющихся операций. Точно так же и в контекстной рекламе. В этом случае приходят на помощь скрипты Google Ads (Adwords).

Скрипты Google Реклама – программные решения, которые позволяют с помощью JavaScript управлять системными функциями рекламного кабинета Google Ads (Adwords) независимо от пользователя.

Важное уточнение! «Независимо от пользователя» - значит, что Вы можете задать режим выполнения частотой от 1 часа до 1 раза в месяц и не посещать аккаунт для выполнения конкретной задачи. Скрипт все сделает за Вас.

В аккаунте Google Реклама, скрипты достаточно легко найти:

Инструменты ➔ Массовые операции ➔ Скрипты

Далее перед Вами будет открытый JavaScript код с которым Вы можете вести работу.

скрипты Google Ads

Возможности скриптов достаточно велики. Начиная от каких-то базовых уведомлений, заканчивая активными действиями в аккаунте. Мы полностью через это прошли, так как сами пишем скрипты для гугл рекламы (адвордс), чтобы систематизировать свою работу.

В интернете Вы найдете множество бесплатных скриптов, но они будут достаточно типичными. Мы столкнулись с тем, что нам из тысячи бесплатных скриптов пригодились только 2-3:

Скрипт уведомления граничной суммы остатка баланса.

Механизм достаточно простой: если сумма остатка аккаунта меньше заданной – Вам приходит email уведомление. Выглядит этот скрипт так:


    function main() {
  //Настройки скрипта 
  var days = 7; // Минимальное число дней для отправки уведомления
  var alertLimit = 30000; // Минимальный остаток для отправки уведомления
  var email = [' Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.']; //Добавляются адреса всех, кому должно прийти письмо с уведомлением
  var alertType = true; // true - уведомление при малом остатке, при значении false - при количестве дней
  var includeVAT = true;
  var budgetOrder = AdWordsApp.budgetOrders().get().next();
  var SpendingLimit = budgetOrder.getSpendingLimit(); // Общий лимит аккаунта
  var adjustments = budgetOrder.getTotalAdjustments(); // Возвращенные средства на аккаунт
  var Spent = AdWordsApp.currentAccount().getStatsFor('ALL_TIME').getCost(); // Расход за все время
  var lastWeekSpent = AdWordsApp.currentAccount().getStatsFor('LAST_7_DAYS').getCost(); // Расход за последние 7 дней
  var thisMonthSpent = AdWordsApp.currentAccount().getStatsFor('THIS_MONTH').getCost();
  var vat = thisMonthSpent * 0.2;
  var limit = budgetOrder.getSpendingLimit();
  var spent = AdWordsApp.currentAccount().getStatsFor('ALL_TIME').getCost();
  var amountOfBudget = limit - spent+388;  
  Logger.log("Остаток аккаунта - " + amountOfBudget);
  if (alertType) {
    if (amountOfBudget < alertLimit) {
      sendSimpleTextEmail(email);
    }
  }

  function sendSimpleTextEmail(mail) {
    MailApp.sendEmail( mail,
                      'Минимальный остаток бюджета! ' + AdWordsApp.currentAccount().getName(),
                      'В аккаунте Holostenko & Partners заканчиваются средства. Внесите оплату!');    
  }
} 
    

Этот скрипт поможет в случаях, когда у Вас происходят либо частые пополнения баланса, либо когда Вы редко заглядываете в Google Ads.

Скрипт приостановки объявлений по которым нет показов:


    var TO_NOTIFY = "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.";
function main() {
  var kwIter = AdWordsApp.keywords()
    .withCondition("Impressions = 0") // could be "Clicks = 0" also
    .forDateRange("ALL_TIME")
    .withCondition("Status = ENABLED")
    .withCondition("CampaignStatus = ENABLED")
    .withCondition("AdGroupStatus = ENABLED")
    .get();
  var toPause = [];
  while (kwIter.hasNext()) {
    var kw = kwIter.next();
    toPause.push(kw);
    if(AdWordsApp.getExecutionInfo().isPreview() &&
       AdWordsApp.getExecutionInfo().getRemainingTime() < 10) {
      break;
    }
  }
  for(var i in toPause) {
    toPause[i].pause();
    //Или можете использовать toPause[i].remove(); чтобы удалить объявление
  }
  // Отправка уведомления на почту
  MailApp.sendEmail(TO_NOTIFY, 
                    "AdWords Script Paused "+toPause.length+" Keywords.", 
                    "Your AdWords Script paused "+toPause.length+" keywords.");
}
  

Этот скрипт позволяет почистить объявления, которых тысячи и вручную это сделать будет не совсем просто.

Скрипт выключения и включения кампаний на праздники:


Приостановка кампаний:

function main() {
  var searchdisplaycampIter = AdsApp.campaigns().withCondition("LabelNames CONTAINS_ALL ['праздники']").get()
  while(searchdisplaycampIter.hasNext()){
    var searchdisplaycamp = searchdisplaycampIter.next()
    searchdisplaycamp.pause()
  }
  
  var videocampIter = AdsApp.videoCampaigns().withCondition("LabelNames CONTAINS_ALL ['праздники']").get()
  while(videocampIter.hasNext()){
    var videocamp = videocampIter.next()
    videocamp.pause()
  }
  
  var shopcampIter = AdsApp.shoppingCampaigns().withCondition("LabelNames CONTAINS_ALL ['праздники']").get()
  while(shopcampIter.hasNext()){
    var shopcamp = shopcampIter.next()
    shopcamp.pause()
  }
}

Включение кампаний:

function main() {
  var searchdisplaycampIter = AdsApp.campaigns().withCondition("LabelNames CONTAINS_ALL ['праздники']").get()
  while(searchdisplaycampIter.hasNext()){
    var searchdisplaycamp = searchdisplaycampIter.next()
    searchdisplaycamp.enable()
    searchdisplaycamp.removeLabel('праздники')
  }
  
  var videocampIter = AdsApp.videoCampaigns().withCondition("LabelNames CONTAINS_ALL ['праздники']").get()
  while(videocampIter.hasNext()){
    var videocamp = videocampIter.next()
    videocamp.enable()
    videocamp.removeLabel('праздники')
  }
  
  var shopcampIter = AdsApp.shoppingCampaigns().withCondition("LabelNames CONTAINS_ALL ['праздники']").get()
  while(shopcampIter.hasNext()){
    var shopcamp = shopcampIter.next()
    shopcamp.enable()
    shopcamp.removeLabel('праздники')
  }
}

Оба скрипта работают по заданному расписанию
  

Если у Вас ставки на уровне ключевых слов и есть необходимость удерживать конкретную позицию, то это отличный вариант для ежечасных корректировок или как Вы выставите.

Больше бесплатных решений вы можете найти на сайте www.freeadwordsscripts.com.

Но это все стандартные бесплатные решения, которые не всегда в точку. Именно поэтому мы занялись собственными разработками.

Как агентство, мы открыли для себя возможности, которые повышают комфорт работы с контекстной рекламой:

  • ежечасный контроль дневного бюджета кампаний, что позволяет работать с очень активными аккаунтами при ограниченном бюджете;
  • ежедневный контроль расходов и других показателей, уведомление при нарушениях и аномальных ситуациях;
  • ежечасное регулирование ставок на уровне групп объявлений (на уровне ключевых слов);
  • плюс все различные индивидуальные доработки.

Скрипты Google открывают новые возможности для автоматизации, когда нет стандартных автоматизированных правил. Именно поэтому мы и начали работать со скриптами, что позволяет нам быть более гибкими и динамичными.

Кастомные скрипты под заказ

Кастомные скрипты Google Ads

Для интернет-магазинов, проектов с крупными аккаунтами, либо просто для среднего и малого бизнеса, мы предоставляем услуги написания скриптов Google Ads по требованиям заказчика. От Вас – логическая задача, от нас – исполнение. Более подробно отправляйте заявку либо обращайтесь по телефонам агентства.

* Для клиентов пакета Ultra, доступны по умолчанию кастомные скрипты нашей разработки для контроля контекстной рекламы.

Если у Вас есть вопросы по нашим услугам, пожалуйста напишите, как с Вами связаться и кратко опишите свой бизнес.

* Ваши личные данные полностью защищены и не будут переданы третьим лицам.

Выберите, каким способом С Вами лучше связаться.

  • United States+1
  • United Kingdom+44
  • Afghanistan (‫افغانستان‬‎)+93
  • Albania (Shqipëri)+355
  • Algeria (‫الجزائر‬‎)+213
  • American Samoa+1
  • Andorra+376
  • Angola+244
  • Anguilla+1
  • Antigua and Barbuda+1
  • Argentina+54
  • Armenia (Հայաստան)+374
  • Aruba+297
  • Ascension Island+247
  • Australia+61
  • Austria (Österreich)+43
  • Azerbaijan (Azərbaycan)+994
  • Bahamas+1
  • Bahrain (‫البحرين‬‎)+973
  • Bangladesh (বাংলাদেশ)+880
  • Barbados+1
  • Belarus (Беларусь)+375
  • Belgium (België)+32
  • Belize+501
  • Benin (Bénin)+229
  • Bermuda+1
  • Bhutan (འབྲུག)+975
  • Bolivia+591
  • Bosnia and Herzegovina (Босна и Херцеговина)+387
  • Botswana+267
  • Brazil (Brasil)+55
  • British Indian Ocean Territory+246
  • British Virgin Islands+1
  • Brunei+673
  • Bulgaria (България)+359
  • Burkina Faso+226
  • Burundi (Uburundi)+257
  • Cambodia (កម្ពុជា)+855
  • Cameroon (Cameroun)+237
  • Canada+1
  • Cape Verde (Kabu Verdi)+238
  • Caribbean Netherlands+599
  • Cayman Islands+1
  • Central African Republic (République centrafricaine)+236
  • Chad (Tchad)+235
  • Chile+56
  • China (中国)+86
  • Christmas Island+61
  • Cocos (Keeling) Islands+61
  • Colombia+57
  • Comoros (‫جزر القمر‬‎)+269
  • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
  • Congo (Republic) (Congo-Brazzaville)+242
  • Cook Islands+682
  • Costa Rica+506
  • Côte d’Ivoire+225
  • Croatia (Hrvatska)+385
  • Cuba+53
  • Curaçao+599
  • Cyprus (Κύπρος)+357
  • Czech Republic (Česká republika)+420
  • Denmark (Danmark)+45
  • Djibouti+253
  • Dominica+1
  • Dominican Republic (República Dominicana)+1
  • Ecuador+593
  • Egypt (‫مصر‬‎)+20
  • El Salvador+503
  • Equatorial Guinea (Guinea Ecuatorial)+240
  • Eritrea+291
  • Estonia (Eesti)+372
  • Eswatini+268
  • Ethiopia+251
  • Falkland Islands (Islas Malvinas)+500
  • Faroe Islands (Føroyar)+298
  • Fiji+679
  • Finland (Suomi)+358
  • France+33
  • French Guiana (Guyane française)+594
  • French Polynesia (Polynésie française)+689
  • Gabon+241
  • Gambia+220
  • Georgia (საქართველო)+995
  • Germany (Deutschland)+49
  • Ghana (Gaana)+233
  • Gibraltar+350
  • Greece (Ελλάδα)+30
  • Greenland (Kalaallit Nunaat)+299
  • Grenada+1
  • Guadeloupe+590
  • Guam+1
  • Guatemala+502
  • Guernsey+44
  • Guinea (Guinée)+224
  • Guinea-Bissau (Guiné Bissau)+245
  • Guyana+592
  • Haiti+509
  • Honduras+504
  • Hong Kong (香港)+852
  • Hungary (Magyarország)+36
  • Iceland (Ísland)+354
  • India (भारत)+91
  • Indonesia+62
  • Iran (‫ایران‬‎)+98
  • Iraq (‫العراق‬‎)+964
  • Ireland+353
  • Isle of Man+44
  • Israel (‫ישראל‬‎)+972
  • Italy (Italia)+39
  • Jamaica+1
  • Japan (日本)+81
  • Jersey+44
  • Jordan (‫الأردن‬‎)+962
  • Kazakhstan (Казахстан)+7
  • Kenya+254
  • Kiribati+686
  • Kosovo+383
  • Kuwait (‫الكويت‬‎)+965
  • Kyrgyzstan (Кыргызстан)+996
  • Laos (ລາວ)+856
  • Latvia (Latvija)+371
  • Lebanon (‫لبنان‬‎)+961
  • Lesotho+266
  • Liberia+231
  • Libya (‫ليبيا‬‎)+218
  • Liechtenstein+423
  • Lithuania (Lietuva)+370
  • Luxembourg+352
  • Macau (澳門)+853
  • North Macedonia (Македонија)+389
  • Madagascar (Madagasikara)+261
  • Malawi+265
  • Malaysia+60
  • Maldives+960
  • Mali+223
  • Malta+356
  • Marshall Islands+692
  • Martinique+596
  • Mauritania (‫موريتانيا‬‎)+222
  • Mauritius (Moris)+230
  • Mayotte+262
  • Mexico (México)+52
  • Micronesia+691
  • Moldova (Republica Moldova)+373
  • Monaco+377
  • Mongolia (Монгол)+976
  • Montenegro (Crna Gora)+382
  • Montserrat+1
  • Morocco (‫المغرب‬‎)+212
  • Mozambique (Moçambique)+258
  • Myanmar (Burma) (မြန်မာ)+95
  • Namibia (Namibië)+264
  • Nauru+674
  • Nepal (नेपाल)+977
  • Netherlands (Nederland)+31
  • New Caledonia (Nouvelle-Calédonie)+687
  • New Zealand+64
  • Nicaragua+505
  • Niger (Nijar)+227
  • Nigeria+234
  • Niue+683
  • Norfolk Island+672
  • North Korea (조선 민주주의 인민 공화국)+850
  • Northern Mariana Islands+1
  • Norway (Norge)+47
  • Oman (‫عُمان‬‎)+968
  • Pakistan (‫پاکستان‬‎)+92
  • Palau+680
  • Palestine (‫فلسطين‬‎)+970
  • Panama (Panamá)+507
  • Papua New Guinea+675
  • Paraguay+595
  • Peru (Perú)+51
  • Philippines+63
  • Poland (Polska)+48
  • Portugal+351
  • Puerto Rico+1
  • Qatar (‫قطر‬‎)+974
  • Réunion (La Réunion)+262
  • Romania (România)+40
  • Russia (Россия)+7
  • Rwanda+250
  • Saint Barthélemy+590
  • Saint Helena+290
  • Saint Kitts and Nevis+1
  • Saint Lucia+1
  • Saint Martin (Saint-Martin (partie française))+590
  • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
  • Saint Vincent and the Grenadines+1
  • Samoa+685
  • San Marino+378
  • São Tomé and Príncipe (São Tomé e Príncipe)+239
  • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
  • Senegal (Sénégal)+221
  • Serbia (Србија)+381
  • Seychelles+248
  • Sierra Leone+232
  • Singapore+65
  • Sint Maarten+1
  • Slovakia (Slovensko)+421
  • Slovenia (Slovenija)+386
  • Solomon Islands+677
  • Somalia (Soomaaliya)+252
  • South Africa+27
  • South Korea (대한민국)+82
  • South Sudan (‫جنوب السودان‬‎)+211
  • Spain (España)+34
  • Sri Lanka (ශ්‍රී ලංකාව)+94
  • Sudan (‫السودان‬‎)+249
  • Suriname+597
  • Svalbard and Jan Mayen+47
  • Sweden (Sverige)+46
  • Switzerland (Schweiz)+41
  • Syria (‫سوريا‬‎)+963
  • Taiwan (台灣)+886
  • Tajikistan+992
  • Tanzania+255
  • Thailand (ไทย)+66
  • Timor-Leste+670
  • Togo+228
  • Tokelau+690
  • Tonga+676
  • Trinidad and Tobago+1
  • Tunisia (‫تونس‬‎)+216
  • Turkey (Türkiye)+90
  • Turkmenistan+993
  • Turks and Caicos Islands+1
  • Tuvalu+688
  • U.S. Virgin Islands+1
  • Uganda+256
  • Ukraine (Україна)+380
  • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
  • United Kingdom+44
  • United States+1
  • Uruguay+598
  • Uzbekistan (Oʻzbekiston)+998
  • Vanuatu+678
  • Vatican City (Città del Vaticano)+39
  • Venezuela+58
  • Vietnam (Việt Nam)+84
  • Wallis and Futuna (Wallis-et-Futuna)+681
  • Western Sahara (‫الصحراء الغربية‬‎)+212
  • Yemen (‫اليمن‬‎)+967
  • Zambia+260
  • Zimbabwe+263
  • Åland Islands+358
Спасибо! Ваше сообщение отправлено.
Отправка не удалась. Пожалуйста, исправьте ошибки и попробуйте еще раз.