Tegelijk meerdere campagnenamen aanpassen in meerdere Google Ads accounts in een MCC? Dit script gaat je daarbij helpen. Plaats de oude en nieuwe campagnenamen in een Google Sheet en voer het script uit. Lees verder voor meer uitleg!
Het aanpassen van campagnenamen in bulk is helaas niet mogelijk via de Google Ads editor omdat een campagnenaam een unieke identifier is bij elke bulk edit. Ook heeft niet iedereen de beschikking over tooling waarmee bulk edits mogelijk zijn (denk bijv. aan Search Ads 360). Het verzoek voor het aanpassen van Google Ads namen in bulk is recent een aantal keer voorgevallen, met name i.v.m. het uitrollen van naming conventions.
Hoe stel ik dit script in?
Het instellen van het script is vrij eenvoudig. Volg de onderstaande stappen en succes is gegarandeerd:
Maak een tabblad per account. Zorg dat de naam van het tabblad exact overeenkomt met de naam van het account. Let op: hoofdlettergevoelig!
Vul in kolom 1 de huidige campagnenaam in en in kolom 2 de nieuwe campagnenaam. De eerste rij (header) wordt overgeslagen door het script
Verberg eventueel tabs die je niet gebruikt; deze wordt genegeerd
Preview het script en kijk of de output naar wens is
Voer het script eenmalig uit
Wat het script niet kan
Het script kan geen campagnes hernoemen die een enkele quote bevatten zoals bijvoorbeeld in A'dam. Het script kan wel Search, Shopping, Display en Video campagnes aanpassen, maar geen Discovery of Universal App campagnes. Die laatste worden helaas nog niet ondersteund door Google Ads scripts.
Settings
SPREADSHEET_URL: De URL van de Google sheet met de oude en nieuwe campagnenamen
ACCOUNT_IDS of LABEL_NAME: Kies of je het script wil beperken tot bepaalde Account ID's of tot account met een specifiek label. Laat leeg om alle accounts in het MCC te selecteren
Frequentie: Het instellen van een bepaalde frequentie is niet nodig. Voer het script eenmalig uit en de campagnenamen zijn aangepast.
The script
// Bulk rename Campaign names (MCC)
//
// ABOUT THE SCRIPT
// Rename campaigns in Bulk on MCC level
//
// Created By: Martijn Kraan
// Brightstep.nl
//
// Created: 28-12-2019
// Last update: 28-12-2019
//
////////////////////////////////////////////////////////////////////
var config = {
// This is the part where you configure the script
SPREADSHEET_URL: 'https://docs.google.com/YOUR-SPREADSHEET-URL-HERE',
// The URL of the Google Sheet that contains your old and new campaign names
// Grab a copy of the template here: https://docs.google.com/spreadsheets/d/1uwjQBkyhdsGtLhMseShsOa7_lx1UoPq4V1sWGV5V53c/copy
ACCOUNT_IDS: [],
LABEL_NAME: '',
// Pick you preferred method of selecting accounts. Leave empty to process all the accounts in the MCC
// Fill in the account ID's or apply a label to the account(s) you want to check
// E.g. ACCOUNT_IDS: ['123-456-7891', '987-654-3211'] or leave empty by using []
// E.g. LABEL_NAME: 'script: Bulk Rename Campaigns' or leave empty by using ''
}
////////////////////////////////////////////////////////////////////
function main() {
var accountSelector;
if (config.ACCOUNT_IDS.length != 0) {
accountSelector = AdsManagerApp.accounts()
.withIds(config.ACCOUNT_IDS)
.orderBy('Name ASC')
.withLimit(50);
} else if (config.LABEL_NAME) {
accountSelector = AdsManagerApp.accounts()
.withCondition('LabelNames CONTAINS "' + config.LABEL_NAME + '"')
.orderBy('Name ASC')
.withLimit(50);
} else {
accountSelector = AdsManagerApp.accounts()
.orderBy('Name ASC')
.withLimit(50)
}
accountSelector.executeInParallel('renameCampaigns');
}
function renameCampaigns() {
var accountName = AdWordsApp.currentAccount().getName();
var sheet = SpreadsheetApp.openByUrl(config.SPREADSHEET_URL).getSheetByName(accountName)
if (sheet == null || sheet.isSheetHidden() == true) {
Logger.log('No sheet found for "' + accountName + '"')
} else {
var lastRow = sheet.getLastRow() - 1;
var values = sheet.getSheetValues(2, 1, lastRow, 2);
for (i = 0; i < values.length; i++) {
renameSearchCampaign(values[i][0], values[i][1])
renameShoppingCampaign(values[i][0], values[i][1])
renameVideoCampaign(values[i][0], values[i][1])
}
Logger.log('Renamed campaigns for "' + accountName + '"')
}
}
function renameSearchCampaign(oldName, newName) {
var campaignSelector = AdWordsApp
.campaigns()
.withCondition("Name = '" + oldName + "'")
.get();
while (campaignSelector.hasNext()) {
var campaign = campaignSelector.next();
campaign.setName(newName);
}
}
function renameShoppingCampaign(oldName, newName) {
var campaignSelector = AdWordsApp
.shoppingCampaigns()
.withCondition("Name = '" + oldName + "'")
.get();
while (campaignSelector.hasNext()) {
var campaign = campaignSelector.next();
campaign.setName(newName);
}
}
function renameVideoCampaign(oldName, newName) {
var campaignSelector = AdWordsApp
.videoCampaigns()
.withCondition("Name = '" + oldName + "'")
.get();
while (campaignSelector.hasNext()) {
var campaign = campaignSelector.next();
campaign.setName(newName);
}
}
Show whole script!
Loading Comments
The Experts
Tibbe van AstenHead of PPC @ Increase
Nils RooijmansWater Cooler Topics
Martijn KraanFreelance PPC Specialist
Bas BaudoinTeamlead SEA @ Happy Leads
How about you?JOIN US!
Caring
Kennis delen
Adsscripts.com staat voor het delen van kennis. In de huidige markt houden SEA-specialisten de kennis en ervaring graag voor zich. Wij zijn er van overtuigd dat het delen van kennis ervoor kan zorgen dat iedereen beter wordt in haar of zijn werk. Daarom lopen wij hier graag in voorop, door onze kennis over scripts te delen met iedereen.
Wil jij ook graag een bijdrage leveren? Wij staan open voor nieuwe ideeën en feedback op alles wat je op Adsscripts.com vindt.