Сейчас в сети: 5.4K
Учитесь работать в AdWords вместе с нами!
favorite_border

Сделай Сам: ежедневный экспорт показателя качества

Показатель качества aka QS один из самых важных параметров AdWords и в то же время один из самых загадочных. 

Высокий показатель качества ключевого слова позволяет показывать объявления по нему чаще, дешевле, на более высоких позициях. Изменение показателя качества как на уровне ключевого слова, так и среднего показателя на уровне аккаунта/кампании/групп объявлений является хорошим индикатором проблемных мест аккаунта.

 

К сожалению, интерфейс AdWords не позволяет отслеживать динамику изменения этого показателя. В этой статье я покажу, как можно реализовать экспорт своими силами (а также силами скриптов AdWords и таблиц Google). Начнем!

 

Шаг 1. Готовим таблицу для выгрузки данных

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

 

Для этого заходим на drive.google.com и жмем кнопку "создать":

 

 

Получилось? Двигаемся дальше!

 

После создания скрипта необходимо

1. Сделать таблицы доступными для просмотра из аккаунта AdWords, в котором мы будем настраивать экспорт. Самый простой способ - открыть доступ на просмотр всем, у кого есть ссылка на таблицу.

2. Скопировать ссылку на таблицы в наш скрипт 

 

Шаг 1а. Назначаем ярлыки для клиентов (только если работаем с MCC):

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

Мы на половине пути к успеху Веселый 

 

Шаг 2. Создаем скрипт

Теперь, когда все подготовительные операции выполнены, создаем скрипт для экспорта.

Для MCC аккаунта скрипты вынесены в раздел с одноименным названием, для стандартного аккаунта - в разделе "Массовые операции".

 

В зависимости от типа аккаунта (MCC или обычный), с которым мы будем работать, копируем скрипт из файла:

http://goo.gl/ivjKuy

 

Вносим в скрипт необходимые изменения - добавляем URL на таблицы Google и название ярлыка (для MCC-скрипта) 

 

На заметку: энтузиасты могут настроить скрипт под себя, добавив-убрав определенные параметры. Также следует обратить внимание, что скрипт экспортирует только активные фразы в активных группах и кампаниях.

 

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

На заметку: текущий скрипт не имеет смысла запускать чаще 1 раза в сутки, поскольку он не сохраняет данные о часе экспорта. Вы можете самостоятельно добавить час экспорта в выгрузку и запускать скрипт каждый час, чтобы получить более интересные данные.

 

 

Шаг 3. Работаем с полученными данными.

 

Теперь, когда мы получаем данные на ежедневной основе, можем разобраться, как они нам помогут в оптимизации.

 

Как я писал выше, показатель качества является одним из индикаторов "здоровья" аккаунта: среднее значение QS в аккаунте 7 - аккаунт здоров; ниже 4 - нужна срочная реанимация. Оперативная оптимизация "нездоровых" участков аккаунта потенциально позволяет

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

Таблицу Google позволяют быстро преобразовать нашу выгрузку в удобную для анализа форму.

Для этого необходимо выделить наши данные и создать на их основе сводную таблицу (Данные>Отчет в виде сводной таблицы)

 

 

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

Например, можем группировать строки по Группам, столбцы - под неделям, а в качестве значений указать среднее значение показателя качества. Это позволит увидеть динамику среднего значения показателя качества для групп: 

 

На больших аккаунтах проще начинать анализ с уровня клиента и постепенно углубляться до уровня ключевого слова.

 

***

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

 

Анализируйте на здоровье Веселый

 

P.S. присылайте ссылки на свои выгрузки - будем изучать QS вместе!

 

Владимир Ковтун

Привет! Меня зовут Владимир Ковтун. Я сертифицированный специалист Google AdWords и не только :-) Фанат своего ремесла. Всегда рад помочь!

Комментарии
demureless Ведущий участник
марта 2015

Отличная и полезная статья Владимир!

Maxim-M Ведущий участник
марта 2015

Классная идея "поженить" Google таблицы и скрипты AdWords - быстро и бесплатно!

Спасибо!

 

Roma-net-ua
марта 2015

Если кто-то будет считать средний QS по аккаунту — то помните, что его правильно считать не средним арифметическим, а средневзвешенный (то есть показы по слову 1 * QS слова 1 +показы по слову 2 * QS слова 2 + ... / общее количество показов)

Roma-net-ua
марта 2015

И вот ещё одна версия скрипта — http://www.freeadwordsscripts.com/2013/04/store-account-campaign-and-adgroup.html

Да, годное замечание. В таблицах Гугла median - это и есть серднее взвешенное. 

 

Roma-net-ua
марта 2015

Медиана и среднее взвешенное — это разные вещи. Проверьте сами на такой выборке

 

1 показ QS 1

1 показ QS 1

1 показ QS 1

 

1000 показов QS 7

 

Медиана выйдет 1

А средневзвешенный QS = (1*1+1*1+1*1+1000*7)/(1+1+1+1000)=6.98

 

Поэтому нужно считать средневзвешенный, а не медианну.

Roma-net-ua
марта 2015

Кому лень заморачиваться со скриптами — хорошо считает QS тулза от WordStream http://www.wordstream.com/blog/ws/2013/03/26/google-quality-score

 Все, понял. Спасибо! Веселый

МаксимSM
марта 2015

Не уверен, что стоит считать показатель качества как средневзвешенное. 

Такой расчет нужен для показателей, которые накапливаются со временем (например средняя цена за клик по ключевому слову - чем больше показов у слова тем значительнее показатель для общей статистики). У показателя качества другой принцип. Он расчитывается мгновенно и каждый следующий расчет не зависит от предидущего. Допустим у нас слово с показателем качества 10 и у него 1000 показов. Мы изменили объявление и показатель качества стал 4. И эти 4 будут, независимо от того, сколько было до этого показов у слова, хоть 1000 хоть 100000. То есть у предыдущего показателя нет никакого веса при расчете нового. И если дальше считать, вообще получается неразбериха. Показатель качества 4, показов 1000, средневзвешенное будет неверным в корне, потому что мы передаем вес 1000 показов слову, у которого показатель качества только что стал 4. 

Но даже если не брать в расчет момент изменения показателя качества у слов с большим количеством показов и оставить начальные условия, все равно выходит сомнительно. К примеру:

Слово1 - 1000 показов - качество 10.

Слово2 - 200 показов - качество 8.

Слово3 - 50 показов - качество 3.

Среднее арифметическое - 7, средневзвешенное - 9,4.

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

Roma-net-ua
марта 2015

«Он расчитывается мгновенно и каждый следующий расчет не зависит от предидущего»

Это было проверено измериями?Или опираемся на то, что написано в справке Google? 
Насколько велик разброс значений, если не брать кардинальных измений сайта?

 

«Такой расчет наоборот вводит в заблуждение, игнорируя тот факт, что есть слова с низким показателем качества, из-за которого у них возможно и было так мало показов. »

А возможно эти слова вводят так редко, что не стоит на них обращать внимание.

Низкий QS в такой ситуации будет проще диагностировать по словам с недостаточными показами из-за нехватки ставки. Или сортировкой по QS всех слов, но о здоровье аккаунта они говорят мало, поскольку если по ним всё плохо — то это редко изменятся будет. Зато из-за них сможем пропустить снижение в важных словах.

 

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

 

Нам же интересно как меняется QS для самых трафиковых слов в первую очередь, потому что там длиннее рычаг:

  • больше всего показов и потенциально кликов
  • больше всего расходов
  • больше всего возможностей для оптимизации малой кровью (переписать одно объявление проще чем сотни)
МаксимSM
марта 2015

"Это было проверено измериями?Или опираемся на то, что написано в справке Google? 
Насколько велик разброс значений, если не брать кардинальных измений сайта?"

Проверено логикой, справкой, наблюдениями, чем угодно. Ни одного факта в пользу обратного я не знаю. Могу выслушать, если таковые есть.

"А возможно эти слова вводят так редко, что не стоит на них обращать внимание."

Использовать неверный способ рассчета как костыль, для того, чтобы отфильтровать малозначимые слова? Для этого в скрипте можно дописать одну строчку с фильтром в селекторе. Я согласен, что для расчета показателя качества не стоит учитывать все слова, но решается это другими способами, специально для того существующими.

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

Или верным, если кто-то докажет это убедительными аргументами =)

Ігор Лемешев
марта 2015

Зачем заморачиваться, уже есть готовые решения.

Anton T
марта 2015

Зачем заморачиваться, уже есть готовые решения.

Умение написать скрипт лишним не будет, пусть даже и есть решения.

Коллеги!

 

Благодарю за то, что обратили внимание на мой труд и за интерес к проблеме!

 

Согласен с МаксимSM, QS пересчитывается при каждом аукционе. Следует понимать, что нам эти вычисленные значения недоступны - мы можем видеть некое примерное значение.

 

Также обращаю внимание, что изначально предполагается, что мой пример будет выгружать данные раз в сутки. Это, в свою очередь, означает, что для каждого ключевого слова будет сохраняться QS за каждый день в периоды его активности+сопутствующие параметры-метрики (т.е. сможем смотреть на QS в динамике для ключевых слов). Поэтому здесь я соглашусь с Романом, что QS следует взвешивать. В любом случае, никто не мешает смотреть как на среднее, так и на средневзвешенное значение, или вообще отфильтровать ненужные ключевики (вам доступны сырые данные, с которыми можно делать, что захочется). 

 

На мой взгляд, ценность скрипта представляет не возможность считать средний QS для кампаний с помощью сводной таблицы (коллеги справедливо заметили, что есть другие скрипты/сервисы, которые с этим отлично справляются), а возможность сформировать почву для исследования QS. Даром, что установка скрипта занимает от силы 10 минут (с учетом добавления нужных параметров/метрик), и результатами легко обмениваться между желающими (все хранится в google spreadsheets).

 

Вот Веселый  

 

P.S. Буду рад от вас услышать пожелания по новым скриптам, может у кого идеи интересные есть.

 

Roma-net-ua
марта 2015

Изучать поведение QS как мы изучаем динамику позиций — это интересно.

Спасибо, сразу не подумал о таком применении.

Алексей Я
марта 2015

Владимир, спасибо. Действительно, полезный скрипт. 

 

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

 

Вместо всех ключевых слов, при выполнении он добавляет в таблицу всего лишь одну строку

Дата и средневзвешенный QS для всего аккаунта. 

 

/**********************************************************
* Вставьте URL таблиц Google для экспорта данных
**********************************************************/
var spreadSheetUrl = '{здесь ссылка на таблицу}';
/**********************************************************
* Присвойте ярлык аккаунтам, для которых нужно настроить экспорт (макс. количество аккаунтов за итерацию - 50 шт.)
* Вставьте название вашего ярлыка (qs-median по умолчанию)
**********************************************************/
var labelName = 'qs-median'

/**********************************************************
* За сколько дней считать взвешенный QS
**********************************************************/
var days = 7;
/**********************************************************
* Сохраняем и настраиваем автоматический запуск каждую неделю
**********************************************************/
function main() {
  MccApp.accountLabels().withCondition("Name = '"+labelName+"'").get().next().accounts().executeInParallel('trackQS');
}
//Функция, которая отвечает за экспорт данных из AdWords
function trackQS(){
  //Подключаемся к таблице Google
  var period = 'LAST_' + days + '_DAYS';
  var spreadsheet = SpreadsheetApp.openByUrl(spreadSheetUrl);
  //Генерируем отчет по QS
  var report = AdWordsApp.report(
    //выбираем метрики-параметры для экспорта
    'SELECT KeywordText, KeywordMatchType, AdGroupName, CampaignName, QualityScore, Date, Week, Month, Year , AverageCpc, AveragePosition, Clicks, Cost, CpcBid, Ctr, FirstPageCpc, Impressions, SearchRankLostImpressionShare, SearchImpressionShare, TopOfPageCpc ' +
    //выбираем тип отчета: https://developers.google.com/adwords/scripts/docs/features/reports
    'FROM   KEYWORDS_PERFORMANCE_REPORT ' +
    //фильтруем данные - собираем статистику только для активных ключевых слов
    'WHERE Status = ENABLED '+
    'AND IsNegative = FALSE ' +
    'AND QualityScore > 0 ' +
    'AND AdGroupStatus = ENABLED ' +
    'AND CampaignStatus = ENABLED ' +
    //собираем данные за определенный период
    'DURING ' + period);
  //экспортируем отчет в таблицу Google
  var sheet = spreadsheet.getSheetByName(AdWordsApp.currentAccount().getName()) || prepareSheet(spreadsheet,AdWordsApp.currentAccount().getName());
  var rows = report.rows();
  var rowsValues = [];
  var qsSum = 0;
  var impressionsSum = 0;
  var name = AdWordsApp.currentAccount().getName()
  
  Logger.log(name+" - started collecting");

  while (rows.hasNext()) {
    var row = rows.next();
    qsSum = qsSum + row.QualityScore * parseInt(row.Impressions);
    impressionsSum = impressionsSum + parseInt(row.Impressions);
  }
  
  var averegeQS = qsSum / impressionsSum;
  var currentDate = getFormattedDate();
  
  Logger.log(name+" - finished collecting");

  rowsValues.push([currentDate, averegeQS]);
  
  var range = sheet.getRange(sheet.getLastRow()+1,1,rowsValues.length,rowsValues[0].length);
  range.setValues(rowsValues);
  Logger.log(name+" - export finished");
  return "Export Finished";
}
//Создаем лист с названиями колонок в певой строке
function prepareSheet(spreadsheet,name){
  var sheet = spreadsheet.insertSheet(name);
  sheet.appendRow(["Date", "Median QS"]);
  return sheet;
}


function getFormattedDate() {
  var d = new Date();
  var curr_date = d.getDate();
  var curr_month = d.getMonth();
  var curr_year = d.getFullYear();
  return curr_date + "." + curr_month+ "." + curr_year;
}

 

Алексей, отлично!

 

Такими темпами в сообществе ветку со скриптами делать придется Веселый

Roman P
апреля 2015

Добрый день! А есть ли такой скрипт, чтобы выгружать показатель качества кампании? Встроил этот - и он выгружает только по ключевым словам, а хотелось бы чтобы были данные по кампании ежедневно за последнюю неделю и чтобы они добавлялись в один файл

 

Спасибо!

Владимир Ковтун Ведущий участник
апреля 2015

Вроде Алексей в комментариях предлагал свою версию.

 

Как-нибудь добавлю в библиотеку скриптов (наш новый раздел на форуме) свою версию.

Сергей М
августа 2015

У меня вот такая ошибка при выполнении. http://joxi.ru/vn2YdBQIzw7Zm6 большой аккаунт?

Владимир Ковтун Ведущий участник
августа 2015

Судя по всему, да. Упираетесь в лимит таблиц гугла (2 000 000 ячеек). 

Эта ошибка с первого запуска вылезает? 

 

Можно выгружать меньше параметров (например, убрать неделю-год и т.п.).Либо отправлять данные не в таблицы гугл

 

 

Pavel G
октября 2015

У меня почему-то не собирает цену клика. Мне показалось стоит работать на QS именно для снижения цены клика для фразы. А у меня почему-то нет цены клика ежедневной(. Мне почему-то показалось, что поле Cost должно содержать цену клика.

 

Подскажие, пожалуйста, как добавить цену клика для 1 страницы и для спецразмещения.

 

Благодарю!

michaelgor
октября 2015

У меня выдал такую ошибку для обычного аккаунта

 

Column 'KeywordText' is not valid for report type KEYWORDS_PERFORMANCE_REPORT. Double-check your SELECT clause. (line 20)

Есть что делать? 

Аркадий Ш
ноября 2015

Данная ошибка происходит из за отсутствия столбца KeywordText, либо просто удалите его, либо замените на Criteria. Теперь он так называется.

michaelgor
ноября 2015

Спасибо. Заработало

Алексей Я
ноября 2015

Обновил скрипт подсчета средневзвешенного показателя качества аккаунта в Google AdWords из-за новых изменений в API. Действительно, пропал столбец KeywordText Веселый
Забирать скрипт тут: http://goo.gl/IcwX0m

 

 

Владимир Ковтун Ведущий участник
ноября 2015

Обновил скрипт Веселый