Шукаємо альтернативу скриптам 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.

Читайте також  Brand Analytics: індекс цитованості Telegram знижується, а Яндекс.Дзена зростає

Давайте перевіримо тестовий скрипт для показника 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.

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

Вам також сподобається...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *