Сценарій: налаштуйте кампанії Google Ads безпосередньо з Google Doc
Опубліковано 23.07.2026
Перевірено Arnt Eriksen оновлено 06.08.2026
Вступ
Налаштування Пошукові кампанії в Google Ads є завданням, що потребує дуже багато часу. На відміну від Розумні кампанії це потребує багато часу та зусиль. Протягом багатьох років ми мучилися з Excel та Google Ads редактор. Було дуже прикро витрачати години на повторювані завдання, які мали б бути автоматизовані.
Наші розробники створили рішення, яке дає змогу завантажувати нові кампанії безпосередньо з Google Doc. Яке полегшення. Тепер налаштувати нові кампанії та завантажити їх у структурі SKAG можна всього за кілька хвилин.
Чому SKAG?
Релевантність є ключовим фактором успіху в Google Ads. Висока релевантність винагороджується вищими показниками якості й, як наслідок, нижчою вартістю за клік.
SKAG означає «одне ключове слово на групу оголошень», тобто в кожній вашій групі оголошень ви використовуєте лише одне ключове слово.
Щоб створювати релевантні кампанії в Google Ads, вам потрібно мати змогу додавати окремі варіанти рекламних оголошень для кожного з ваших цільових ключових слів. Це можна реалізувати лише за допомогою структури SKAG. Використовуючи SKAG, ви можете:
- Створюйте окремі, релевантні оголошення для кожного з ваших цільових ключових слів
- Створіть додаткові розширення для кожного зі своїх ключових слів
- Встановлюйте цільові ставки CPA окремо для кожного ключового слова на рівні групи оголошень
Ми вже багато років використовуємо цю структуру в усіх наших акаунтах, і вона виявилася дуже простою в управлінні. Спочатку вона може здатися дещо надто складною. Але ви буде обожнюю SKAG і відразу бачу, який це сексуальний підхід!
Тепер давайте розглянемо кроки налаштування вашої кампанії в Google Ads.
Крок 1. Підготуйте Google документ із цільовими ключовими словами
- Зробіть копію цього шаблон
- Вставте список ваших цільових ключових слів і оголошень
- Якщо вам потрібно створити більше ніж 2 кампанії, додайте додаткові вкладки.
Крок 2. Завантажте кампанії
Перейдіть до Масові операції > Скрипти
Щоб додати скрипт на рівні MMC, скопіюйте та вставте такий код:
function main(){ var mccAccount = AdWordsApp.currentAccount('644-558-2469'); var accountID = '443-484-0665'; // Не забудьте змінити! var childAccounts = MccApp.accounts().withIds([accountID]).get(); var childAccount = childAccounts.next(); MccApp.select(childAccount); var SPREADSHEET_ID = '1PLc2IHf2YYeo_O9dSEldN4Jq4s9CXaBynuNHfHWlPXQ'; //Не забудьте змінити! var ss = SpreadsheetApp.openById(SPREADSHEET_ID); SpreadsheetApp.setActiveSpreadsheet(ss); var sheets = ss.getSheets(); var columnsCampaign = [ 'Campaign', 'Budget', 'Bid Strategy type', 'Campaign type', 'Campaign subtype' ]; var columnsAdgroups = ['Campaign', 'Ad group', 'Bid Strategy type', 'Default max. CPC'//, 'Ad', 'Description line 1', 'Description line 2', 'Description line 2', 'Display URL', 'Final URL' ]; var columnsKeywords = ['Campaign', 'Ad group', 'Keyword' ]; var columnsAds = ['Campaign', 'Ad group', 'Headline 1', 'Headline 2', 'Description', 'Path 1', 'Path 2', 'Final URL' ]; var uploadCampaign = AdWordsApp.bulkUploads().newCsvUpload( columnsCampaign, {moneyInMicros: false}); var uploadAdgroup = AdWordsApp.bulkUploads().newCsvUpload( columnsAdgroups, {moneyInMicros: false}); var uploadKeyword = AdWordsApp.bulkUploads().newCsvUpload( columnsKeywords, {moneyInMicros: false}); var uploadAds = AdWordsApp.bulkUploads().newCsvUpload( columnsAds, {moneyInMicros: false}); //додавання кампаній BMM for (var sheetNum = 0; sheetNum < sheets.length; sheetNum++){ SpreadsheetApp.setActiveSheet(sheets[sheetNum]); var campaign = SpreadsheetApp.getActiveSheet().getName() + " BMM"; uploadCampaign.append({ 'Campaign': campaign, 'Budget': 1, 'Bid Strategy type': 'cpc', 'Campaign type': 'Search Only', 'Campaign subtype' : 'All features' }); var values = SpreadsheetApp.getActiveSheet().getRange('A2:A').getValues(); var values2 = SpreadsheetApp.getActiveSheet().getRange('B2:G').getValues(); outer: for (var i = 0; i < values.length; i++) { var adgroup = values[i][0].toString().trim(); if (adgroup != '') { uploadAdgroup.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Bid Strategy type': 'cpc', 'Default max. CPC' : 1 }); var keyword = "+" + adgroup.replace(/ /g, ' +') uploadKeyword.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Keyword': keyword }); //Logger.log(keyword); for (var k = 0; k < values2.length; k++) { var adHead1 = values2[k][0].toString().trim(); var adHead2 = values2[k][1].toString().trim(); var adDescr = values2[k][2].toString().trim(); var path1 = values2[k][3].toString().trim(); var path2 = values2[k][4].toString().trim(); var finalURL = values2[k][5].toString().trim(); if (adHead1 != ''){ uploadAds.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Headline 1': adHead1, 'Headline 2': adHead2, 'Description': adDescr, 'Path 1': path1, 'Path 2': path2, 'Final URL' : finalURL }); } else continue outer; //Logger.log([campaign,adgroup,adHead,adDescr1,adDescr2,displURL,finalURL]); } } } } //Додавання кампаній із точним типом відповідності for (var sheetNum = 0; sheetNum < sheets.length; sheetNum++){ SpreadsheetApp.setActiveSheet(sheets[sheetNum]); var campaign = SpreadsheetApp.getActiveSheet().getName() + " Exact"; uploadCampaign.append({ 'Campaign': campaign, 'Budget': 1, 'Bid Strategy type': 'cpc', 'Campaign type': 'Search Only', 'Campaign subtype' : 'All features' }); var values = SpreadsheetApp.getActiveSheet().getRange('A2:A').getValues(); var values2 = SpreadsheetApp.getActiveSheet().getRange('B2:G').getValues(); outer: for (var i = 0; i < values.length; i++) { var adgroup = values[i][0].toString().trim(); if (adgroup != '') { uploadAdgroup.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Bid Strategy type': 'cpc', 'Default max. CPC' : 1 }); var keyword = '[' + adgroup + ']'; uploadKeyword.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Keyword': keyword }); for (var k = 0; k < values2.length; k++) { var adHead1 = values2[k][0].toString().trim(); var adHead2 = values2[k][1].toString().trim(); var adDescr = values2[k][2].toString().trim(); var path1 = values2[k][3].toString().trim(); var path2 = values2[k][4].toString().trim(); var finalURL = values2[k][5].toString().trim(); if (adHead1 != ''){ uploadAds.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Headline 1': adHead1, 'Headline 2': adHead2, 'Description': adDescr, 'Path 1': path1, 'Path 2': path2, 'Final URL' : finalURL }); } else continue outer; //Logger.log([campaign,values[i][0],values2[k][0],values2[k][4]]); } } //Logger.log([campaign,values[i][0],values2[0][0],values2[0][4]]); } } uploadCampaign.forCampaignManagement(); uploadAdgroup.forCampaignManagement(); uploadKeyword.forCampaignManagement(); uploadAds.forCampaignManagement(); uploadCampaign.apply(); Utilities.sleep(5000); uploadAdgroup.apply(); Utilities.sleep(5000); uploadAds.apply(); Utilities.sleep(5000); uploadKeyword.apply(); }
Щоб додати код безпосередньо з вашого облікового запису AdWords, використайте цей код:
function main(){ var SPREADSHEET_ID = '1PLc2IHf2YYeo_O9dSEldN4Jq4s9CXaBynuNHfHWlPXQ'; //Не забудьте змінити! var ss = SpreadsheetApp.openById(SPREADSHEET_ID); SpreadsheetApp.setActiveSpreadsheet(ss); var sheets = ss.getSheets(); var columnsCampaign = [ 'Campaign', 'Budget', 'Bid Strategy type', 'Campaign type', 'Campaign subtype' ]; var columnsAdgroups = ['Campaign', 'Ad group', 'Bid Strategy type', 'Default max. CPC'//, 'Ad', 'Description line 1', 'Description line 2', 'Description line 2', 'Display URL', 'Final URL' ]; var columnsKeywords = ['Campaign', 'Ad group', 'Keyword' ]; var columnsAds = ['Campaign', 'Ad group', 'Headline 1', 'Headline 2', 'Description', 'Path 1', 'Path 2', 'Final URL' ]; var uploadCampaign = AdWordsApp.bulkUploads().newCsvUpload( columnsCampaign, {moneyInMicros: false}); var uploadAdgroup = AdWordsApp.bulkUploads().newCsvUpload( columnsAdgroups, {moneyInMicros: false}); var uploadKeyword = AdWordsApp.bulkUploads().newCsvUpload( columnsKeywords, {moneyInMicros: false}); var uploadAds = AdWordsApp.bulkUploads().newCsvUpload( columnsAds, {moneyInMicros: false}); //додавання кампаній BMM for (var sheetNum = 0; sheetNum < sheets.length; sheetNum++){ SpreadsheetApp.setActiveSheet(sheets[sheetNum]); var campaign = SpreadsheetApp.getActiveSheet().getName() + " BMM"; uploadCampaign.append({ 'Campaign': campaign, 'Budget': 1, 'Bid Strategy type': 'cpc', 'Campaign type': 'Search Only', 'Campaign subtype' : 'All features' }); var values = SpreadsheetApp.getActiveSheet().getRange('A2:A').getValues(); var values2 = SpreadsheetApp.getActiveSheet().getRange('B2:G').getValues(); outer: for (var i = 0; i < values.length; i++) { var adgroup = values[i][0].toString().trim(); if (adgroup != '') { uploadAdgroup.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Bid Strategy type': 'cpc', 'Default max. CPC' : 1 }); var keyword = "+" + adgroup.replace(/ /g, ' +') uploadKeyword.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Keyword': keyword }); //Logger.log(keyword); for (var k = 0; k < values2.length; k++) { var adHead1 = values2[k][0].toString().trim(); var adHead2 = values2[k][1].toString().trim(); var adDescr = values2[k][2].toString().trim(); var path1 = values2[k][3].toString().trim(); var path2 = values2[k][4].toString().trim(); var finalURL = values2[k][5].toString().trim(); if (adHead1 != ''){ uploadAds.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Headline 1': adHead1, 'Headline 2': adHead2, 'Description': adDescr, 'Path 1': path1, 'Path 2': path2, 'Final URL' : finalURL }); } else continue outer; //Logger.log([campaign,adgroup,adHead,adDescr1,adDescr2,displURL,finalURL]); } } } } //Додавання кампаній із точним типом відповідності for (var sheetNum = 0; sheetNum < sheets.length; sheetNum++){ SpreadsheetApp.setActiveSheet(sheets[sheetNum]); var campaign = SpreadsheetApp.getActiveSheet().getName() + " Exact"; uploadCampaign.append({ 'Campaign': campaign, 'Budget': 1, 'Bid Strategy type': 'cpc', 'Campaign type': 'Search Only', 'Campaign subtype' : 'All features' }); var values = SpreadsheetApp.getActiveSheet().getRange('A2:A').getValues(); var values2 = SpreadsheetApp.getActiveSheet().getRange('B2:G').getValues(); outer: for (var i = 0; i < values.length; i++) { var adgroup = values[i][0].toString().trim(); if (adgroup != '') { uploadAdgroup.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Bid Strategy type': 'cpc', 'Default max. CPC' : 1 }); var keyword = '[' + adgroup + ']'; uploadKeyword.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Keyword': keyword }); for (var k = 0; k < values2.length; k++) { var adHead1 = values2[k][0].toString().trim(); var adHead2 = values2[k][1].toString().trim(); var adDescr = values2[k][2].toString().trim(); var path1 = values2[k][3].toString().trim(); var path2 = values2[k][4].toString().trim(); var finalURL = values2[k][5].toString().trim(); if (adHead1 != ''){ uploadAds.append({ 'Campaign': campaign, 'Ad group': adgroup, 'Headline 1': adHead1, 'Headline 2': adHead2, 'Description': adDescr, 'Path 1': path1, 'Path 2': path2, 'Final URL' : finalURL }); } else continue outer; //Logger.log([campaign,values[i][0],values2[k][0],values2[k][4]]); } } //Logger.log([campaign,values[i][0],values2[0][0],values2[0][4]]); } } uploadCampaign.forCampaignManagement(); uploadAdgroup.forCampaignManagement(); uploadKeyword.forCampaignManagement(); uploadAds.forCampaignManagement(); uploadCampaign.apply(); Utilities.sleep(5000); uploadAdgroup.apply(); Utilities.sleep(5000); uploadAds.apply(); Utilities.sleep(5000); uploadKeyword.apply(); }
Крок 3. Попередній перегляд і запуск скрипту

Крок 4. Зачекайте 5 хвилин і перевірте свої нові кампанії!
Також доступна преміум-версія цього скрипту, яка дозволяє створювати окреме оголошення для кожної з ваших груп оголошень за допомогою оголошення генератор. Щоб отримати його демо, сміливо зв’яжіться з нами.
