Как продолжать глубоко прорабатывать поисковые запросы в Google Ads

Newser

Moderator
Команда форума
Регистрация
5 Фев 2019
Сообщения
291
Не так давно Google сильно урезал отчет о поисковых запросах. Не то чтобы совсем, но уж как-то существенную их часть. Учитывая, что это был источник постоянного пополнения семантики и минус-фраз, рынок специалистов выдал громкий нецензурный вой и стал придумывать, как дальше не упустить из-под контроля одну из самых важных основ оптимизации рекламных кампаний. Хочу поделится своим решением данного вопроса.

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

Код:
/***************************************************
* Undefined Search Terms Report
* @version 1.1
* @author: Naman Jindal (Optmyzr)
****************************************************/

var LAST_N_DAYS = 30; // Number of previous days to include in report
var EMAILS = ['example@example.com']; // Array of Emails to be notified and given access to the results in a Google Sheet
var PRIMARY_METRIC = 'Cost'; // E.g. Impressions, Cost, Clicks

function main() {
  var map = {};
  var DATE_RANGE = getAdWordsFormattedDate(LAST_N_DAYS, 'yyyyMMdd') + ',' + getAdWordsFormattedDate(1, 'yyyyMMdd');
  var query = [
    'SELECT Date, Impressions, Cost, Clicks FROM ACCOUNT_PERFORMANCE_REPORT',
    'WHERE AdNetworkType1 = SEARCH', 'DURING', DATE_RANGE
  ].join(' ');
 
  var rows = AdsApp.report(query).rows();
  while(rows.hasNext()) {
    var row = rows.next();
    map[row.Date] = {
      'ACTUAL': 0,
      'QUERIES': 0
    };
    map[row.Date].ACTUAL = parseInt(row[PRIMARY_METRIC], 10);
  }
 
  var query = [
    'SELECT Date, Query, Impressions, Cost, Clicks FROM SEARCH_QUERY_PERFORMANCE_REPORT',
    'WHERE AdNetworkType1 = SEARCH',
    'DURING', DATE_RANGE
  ].join(' ');
 
  var rows = AdsApp.report(query).rows();
  while(rows.hasNext()) {
    var row = rows.next();
    map[row.Date].QUERIES += parseInt(row[PRIMARY_METRIC], 10);
  }
 
  var output = [];
  for(var date in map) {
    output.push([date, map[date].ACTUAL, map[date].QUERIES, (map[date].ACTUAL - map[date].QUERIES) / map[date].ACTUAL]);
  }
 
  if(!output.length) {
    Logger.log('No data in the account');
  }
 
  var TEMPLATE_URL = 'https://docs.google.com/spreadsheets/d/1G1-zPqm0kqQjZSPEwS8cfndYVzkswbyl80SiLlqiPF8/edit#gid=0';
  var template = SpreadsheetApp.openByUrl(TEMPLATE_URL);
  var ss = template.copy(AdsApp.currentAccount().getName() + ' - Undefined Search Terms Report by ' + PRIMARY_METRIC);
  ss.addEditors(EMAILS);
 
  var tab = ss.getSheets()[0];
  tab.getRange(2,1,tab.getLastRow(),tab.getLastColumn()).clearContent();
  tab.getRange(2,1,output.length,output[0].length).setValues(output).sort([{'column': 1, 'ascending': true}]);
 
  var msg = 'Hi,\nPlease find below the undefined search terms report for your Google Ads account:\n'+ss.getUrl();
  MailApp.sendEmail(EMAILS.join(','), AdsApp.currentAccount().getName() + ' - Undefined Search Terms Report by ' + PRIMARY_METRIC, msg);
  Logger.log("Your report is ready at " + ss.getUrl());
}


function round_(num,n) {   
  return +(Math.round(num + "e+"+n)  + "e-"+n);
}

function getAdWordsFormattedDate(d, format){
  var date = new Date();
  date.setDate(date.getDate() - d);
  return Utilities.formatDate(date,AdsApp.currentAccount().getTimeZone(),format);
}
в котором вам остаётся в первых трех строчках всего лишь поменять срок за который выведется информация, ваш электронный адрес и желаемый основной параметр - расход, показы или клики. на выходе мы получаем на почту ссылку на вот такую табличку

1602493176782.png

на моих проектах получились цифры до 50% по непоказанным кликам и до 80% по скрытым показам, согласитесь цифры впечатляющие.
и нужно что-то с этим делать.

Поехали по шагам.

1. заходим в Google Analytics, отчет по поисковым запросам Google Рекламы



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



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



2. дальше
работа уже с экспортированным в excell вариантом того же отчета, где нам нужно убрать все знаки препинания и символы из ключевого слова (для этого существует много методик, самая простоя через Ctrl + H), и через формулу сравнить слова в двух соседних ячейках



полученный результат отфильтровываем по типу ЛОЖЬ и получаем запросы, которые не совпадают с ключами и с которыми в дальнейшем и нужно работать, в принципе это и есть запросы НЕ совпадающие с нашими ключами. дальше кто как привык - можно фильтровать по названиям РК, количеству показов, кликов или конверсий, в зависимости от специфики вашего проекта.

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



все.

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



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

4. да, чуть не забыл

есть же еще основные минуса для списков
но тут можно просто скопировать все запросы из столбца в любую из удобных программулек для сбора минус слов, мне очень удобно это делать через
https://livepage.pro/tools/keys/?ref=vc.ru
но сервисов реально много по данной опции, тут уже кому что нравится.

Источник
 
Сверху