Выгрузка низкочастотных поисковых запросов Google Ads

Маруся

Администратор
Команда форума
Регистрация
21 Окт 2020
Сообщения
137
Для чего этот скрипт
После того как из 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. Авторизуйте и запустите скрипт.

Код скрипта
/************************************************************
* 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)
}
})
}

Источник
 
Последнее редактирование:
Сверху