Маркетинг
Mello
292

Ищем альтернативу скриптам 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, Engagements, 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.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Mello", "author_type": "self", "tags": [], "comments": 0, "likes": -1, "favorites": 10, "is_advertisement": false, "subsite_label": "marketing", "id": 88306, "is_wide": false, "is_ugc": true, "date": "Wed, 16 Oct 2019 13:08:17 +0300", "is_special": false }
0
{ "id": 88306, "author_id": 295562, "diff_limit": 1000, "urls": {"diff":"\/comments\/88306\/get","add":"\/comments\/88306\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/88306"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199113, "last_count_and_date": null }
Комментариев нет
Популярные
По порядку
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }