Я довольно новичок в написании сценариев в листах Google, но я искал на этом форуме и не мог найти ответ '.
С помощью сценария разработчика сценария объявлений Google мне удалось создать экспорт всех поисковых запросов, активирующих мои объявления Google. Эти ключевые слова сравниваются с ключевыми словами в моем аккаунте. Таким образом, я могу найти пропущенные ключевые слова для моей учетной записи и неэффективные ключевые слова.
Этот сценарий выводит ключевые слова в документ листов Google, однако, если ключевое слово присутствует в нескольких кампаниях и / или группах объявлений, для каждой кампании / группы объявлений создается отдельная строка с соответствующими значениями.
Однако мне бы очень хотелось, чтобы эти значения были объединены в одну и ту же строку, чтобы в каждом ключевом слове была только одна строка, а их уникальные значения объединялись бы в одно значение. Это текущий вывод скрипта в гугл листах
и вот как я хотел бы получить вывод
Я действительно не знаю, как мне этого добиться, может кто-нибудь помочь мне с этим? Это будет высоко ценится!
Код, который я запускаю для получения экспорта, добавлен ниже.
// Add your spreadsheet here
var SPREADSHEET_URL = 'Google sheets url';
// This is quereis minmum number of impressions.
var Impressions_Threshold = 50;
// If the CTR is below the threshold, it will be labeled as "Not excluded and low performing"
var CTR_Threshold = 1;
// If the number of conversions is above the threshold and the query is not added, it will be labeled as "Not added and has conversions"
var Conversions_Threshold = 0;
// Add your email here
var Notify_Me = "email"
function main() {
var sheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL).getActiveSheet();
var columns = [
'CustomerDescriptiveName',
'ExternalCustomerId',
'Query',
'CampaignName',
'AdGroupName',
'Impressions',
'Clicks',
'Cost',
'Ctr',
'Conversions'
];
sheet.clearContents();
sheet.appendRow(columns);
sheet.getRange("K1").setValue("Added Or Not");
// Get all the keywords in all the acccounts
var allKeywords = [];
var report = AdWordsApp.report(
"SELECT AdGroupId, Criteria " +
"FROM KEYWORDS_PERFORMANCE_REPORT " +
"WHERE KeywordMatchType = EXACT " +
"DURING TODAY");
var rows = report.rows();
while (rows.hasNext()) {
var row = rows.next();
var KeywordsLower = row['Criteria'].toLowerCase();
allKeywords.push(KeywordsLower);
}
// Get all the search queries in all the accounts
var positiveKeywords = [];
var columnsStr = columns.join(',') + " ";
var SQRreport = AdWordsApp.report(
'SELECT ' + columnsStr +
' FROM SEARCH_QUERY_PERFORMANCE_REPORT ' +
' WHERE ' +
' Impressions > ' + Impressions_Threshold +
' DURING 20120215,20180904'
);
var rows = SQRreport.rows();
while (rows.hasNext()) {
var row = rows.next();
positiveKeywords.push(row['Query']);
for (var i = 0; i < positiveKeywords.length; i++) {
if ((allKeywords.indexOf(positiveKeywords[i]) === -1) && (row['Conversions'] > Conversions_Threshold)) {
row.addedOrNot = 'Not Added and has Conversions';
} else if ((allKeywords.indexOf(positiveKeywords[i]) === -1) && (parseFloat(row['Ctr']) < CTR_Threshold)) {
row.addedOrNot = 'Not excluded and low performing';
} else if (allKeywords.indexOf(positiveKeywords[i]) === -1) {
row.addedOrNot = 'Not Added';
} else {
row.addedOrNot = 'Added'
}
}
sheet.appendRow([row['CustomerDescriptiveName'], row['ExternalCustomerId'], row['Query'], row['CampaignName'], row['AdGroupName'], row['Impressions'], row['Clicks'], row['Cost'], row['Ctr'], row['Conversions'], row['addedOrNot']]);
}
MailApp.sendEmail(Notify_Me,
'SQR Report',
'Your SQR report for this month is ready, please visit ' + SPREADSHEET_URL + ' Thanks');
}