Шукаємо альтернативу скриптам Google Ads, що працюють на основі середньої позиції

Автор: Андрій Педченко, керівник відділу контекстної реклами в Mello
Багато хто вже в курсі, що Google як і обіцяв, скасував показник «Середня позиція» в інтерфейсі Google Ads. І на зміну йому вже остаточно ввів нові метрики. Але що робити, якщо в облікових записах були налаштовані скрипти, які працювали на основі середньої позиції? Спробуємо розібратися.
У найпростішому випадку логіка роботи програми була очевидною, як і у будь-якого сценарію на основі одного показника — якщо середня позиції на рівні об’єкта (ключ, кампанія, група) за заданий період більше/менше N, змінюємо ставку на коефіцієнт. Подивимося, що можна робити з новими показниками для такого ж простого випадку.
Але перш варто перевірити, в скриптах середня позиція ще доступна. (Так з API Діректа ставки для позицій спецрозміщення все ще не зникли.)
Перевіряємо простий скрипт, який виводить статистику з середньої позиції в розрізі ключових слів за останні 30 днів.

Як бачимо, метод getAveragePosition доступний ще й працює, хоча на цій сторінці сказано, що у вересні він повинен бути вилучений. Це чудово, що метод ще активний, і старі скрипти поки не видають помилок, але раз написано, що він буде видалений, то варто поквапитися і відредагувати код.
Подивимося, які методи статистики доступні.

Ні одного з нових показників за відсотками отриманих/втрачених показів немає. Що ж робити? Отримання статистики через метод getStatsFor не єдиний спосіб, щоб дізнатися значення показників за минулий період. Статистику можна отримувати через об’єкт звіту AdsApp.Report. А саме за допомогою Keywords Performance Report, якщо говоримо про ефективність ключових слів.
В даному звіті доступні цілих 72 можливих метрики (в тому числі і нові показники Ads): AbsoluteTopImpressionPercentage, ActiveViewCpm, ActiveViewCtr, ActiveViewImpressions, ActiveViewMeasurability, ActiveViewMeasurableCost, ActiveViewMeasurableImpressions, ActiveViewViewability, AllConversionRate, AllConversions, AllConversionValue, AverageCost, AverageCpc, AverageCpe, AverageCpm, AverageCpv, AveragePageviews, AveragePosition, AverageTimeOnSite, BounceRate, ClickAssistedConversions, ClickAssistedConversionsOverLastclickconversions, ClickAssistedConversionValue, Clicks, ConversionRate, Conversions, ConversionValue, Cost, CostPerAllConversion, CostPerConversion, CostPerCurrentModelAttributedConversion, CrossDeviceConversions, Ctr, CurrentModelAttributedConversions, CurrentModelAttributedConversionvalue, EngagementRate, Аудиту, GmailForwards, GmailSaves, GmailSecondaryClicks, HistoricalCreativeQualityScore, HistoricalLandingPageQualityScore, HistoricalQualityScore, HistoricalSearchPredictedCtr, ImpressionAssistedConversions, ImpressionAssistedConversionsOverlastclickconversions, ImpressionAssistedConversionValue, Impressions, InteractionRate, Interactions, InteractionTypes, PercentNewVisitors, SearchAbsoluteTopImpressionShare, SearchBudgetLostAbsoluteTopImpressionshare, SearchBudgetLostTopImpressionShare, SearchExactMatchImpressionShare, SearchImpressionShare, SearchRankLostAbsoluteTopImpressionshare, SearchRankLostImpressionShare, SearchRankLostTopImpressionShare, SearchTopImpressionShare, TopImpressionPercentage, ValuePerAllConversion, ValuePerConversion, ValuePerCurrentModelAttributedConversion, VideoQuartile100Rate, VideoQuartile25Rate, VideoQuartile50Rate, VideoQuartile75Rate, VideoViewRate, VideoViews, ViewThroughConversions.
Давайте перевіримо тестовий скрипт для показника SearchAbsoluteTopImpressionShare (Відсоток показів на самій верхній позиції). Програма буде піднімати ставки для ключових слів, у яких значення обраної метрики менше 50%.
Код скрипта:
function main(){ function testFunc() { var report = AdWordsApp.report( 'SELECT AdGroupId, SearchAbsoluteTopImpressionShare, Id' + // Ці три метрики обов'язкові для даної задачі 'FROM KEYWORDS_PERFORMANCE_REPORT' + // Вибрали тип звіту "WHERE SearchAbsoluteTopImpressionShare <0.5 "+ // Задали умови 'DURING LAST_30_DAYS'); var rows = report.rows(); var stats=[]; var ids=[]; var i=0; while (rows.hasNext()) { // Перебираємо рядка звіту var row = rows.next(); var adGroupId = row['AdGroupId']; var searchAbsoluteTopImpressionShare = row['SearchAbsoluteTopImpressionShare']; var id = row['Id']; ids[i]=[adGroupId id]; // Заповнюємо масив з id груп і ключів stats[i]=searchAbsoluteTopImpressionShare; // Заповнюємо масив зі значеннями відсотка показів на самій верхній позиції i++; } Logger.log(ids); // Друкуємо Logger.log(stats); var keySelector = AdWordsApp.keywords().withIds(ids).get(); // Вибираємо потрібні ключі while (keySelector.hasNext()) { // Перебираємо ключі var key = keySelector.next(); var currentBid = key.bidding().getCpc(); key.bidding().setCpc(currentBid*1.2); // Ставимо нову ставку, помножену на 1.2 } } testFunc(); // Запускаємо функцію }
Скріни про успішне виконання:


Все коректно працює, здорово!
У коді є коментарі, проблем бути не повинно. Це базовий варіант скрипта, який можна легко розширити, додавши додаткові умови і дії. Масив stats для роботи не потрібен, він просто виводиться на консоль для наочності.
Якщо ви ще використовуєте скрипти, які працюють з середньої позиції, то поки у вас є час і, найголовніше, можливість, щоб оновити свої інструменти. Ну а якщо не хочеться розбиратися зі скриптами, починайте використовувати автоматичні стратегії Google Ads.