После того как из Google Ads исключили данные о низкочастотных запросах, возникли проблема с поиском новых ключевых и минус-слов. Этот скрипт частично решает это выгрузкой запросов из Google Analytics.
Подробнее описано в статье – How to Find Missing Search Terms for Google Ads.
Инструкция1. Создайте пустой Google Sheet и вставьте его URL в переменную ss.
2. Включите Analytics в расширенных API Google Ads скрипта.
3. Задайте в переменной viewId идентификатор представления Google Analytics. Его можно найти при помощи Query Explorer.
4. Установите даты начала и конца периода для сбора поисковых запросов.
Формат: yyyy-mm-dd
5. Авторизуйте и запустите скрипт.
https://www.patreon.com/platform/iframe?widget=become-patron-button&redirectURI=https%3A%2F%2Fchiliad.agency%2Fmissing-search-terms%3Ffbclid%3DIwAR3y7WZzVGUhfZ7fAGi7NW2eYEuah6Ib_UiR-3F77MWXL9VjBDB0T0Ayp-I&creatorID=43027345Код скрипта
/************************************************************
* Hidden Search Term Report
*
* Version 1.0
* Date 01.01.2020
*
* Created by: Dmytro Tonkikh
*
* Telegram channel - https://t.me/adwordsscripts
*
* For donates:
* - Patreon - https://www.patreon.com/bePatron?u=43027345
* - Monobank (Visa/MasterCard): https://send.monobank.com.ua/2r4Vye2xV
*************************************************************/
// Insert your SPREADSHEET_URL - create easily with https://sheet.new
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit#gid=0");
//Google Ananlytics View ID - use https://ga-dev-tools.appspot.com/query-explorer/ to find view id
var viewId = 'ga:xxxxxxxx';
// Dates should be in yyyy-mm-dd format.
var startDate = '2020-12-01';
var endDate = '2020-12-31';
function main() {
setupSpreadsheet();
getAnalyticsStats();
getGoogleAdsStats();
}
function getGoogleAdsStats() {
var sheet = ss.getSheetByName('googleads');
var REPORTING_OPTIONS = {
apiVersion: 'v201809',
includeZeroImpressions: true
};
var report = AdsApp.report('SELECT Query, Clicks, CampaignId, AdGroupId FROM SEARCH_QUERY_PERFORMANCE_REPORT DURING ' + [startDate.replace(/-/g, ''), endDate.replace(/-/g, '')].join(','), REPORTING_OPTIONS);
sheet.clear();
report.exportToSheet(sheet);
}
function getAnalyticsStats() {
var retval = [];
var options = {
'dimensions': 'ga:adGroup,ga:adMatchedQuery,ga:adwordsCampaignID',
'include-empty-rows': false,
'filters': 'ga:users>=0;ga:adMatchedQuery!=(not set)',
'start-index': 1,
'max-results': 10000
}
var metrics = 'ga:users,ga:adClicks, ga:transactions';
var headers;
do {
var results = Analytics.Data.Ga.get(viewId, startDate, endDate, metrics, options);
var queryR = results.query;
if (!headers) {
headers = results.columnHeaders.map(function(h) { return h.name.replace('ga:', '') });
retval.push(headers)
Logger.log(headers);
}
retval = retval.concat(results.rows);
options['start-index'] += results.rows.length
} while (results.nextLink)
var sheet = ss.getSheetByName("analytics");
sheet.clear();
sheet.getRange(1, 1, retval.length, retval[0].length).setValues(retval);
}
function setupSpreadsheet() {
var sheets = ['analytics', 'googleads'];
sheets.forEach(function(s) {
if (!ss.getSheetByName(s)) {
ss.insertSheet(s)
}
})
}