Script di annunci di Google per gestire i budget delle campagne
Pubblicato: 2021-10-23Oggi come inserzionisti che utilizzano Google Ads, è una lotta universale gestire un budget specifico per campagna/e. Le tue opzioni nell'interfaccia utente sono singolari: imposta una regola che escluda l'orario. La mia domanda è perché? Non sarebbe bello avere uno script da gestire a livello di campagna, tramite un foglio nel 2019? C'è voluto del tempo ma l'ho capito, che vedrai di seguito. La capacità di gestire i budget in un unico script con un foglio su più campagne.
Prima di continuare con lo script, se sei impostato su regole per non dire che non sono ottime per la gestione del budget, ecco un esempio di come creare una regola che ha limiti di tempo per mettere in pausa o abilitare le tue campagne in base a un budget per campagne. Puoi trovare ulteriori dettagli qui con le regole automatizzate .
- Accedi al tuo account Google Ads.
- Vai alle pagine Campagne , Gruppi di annunci o Parole chiave .
- Fai clic sull'icona con i tre puntini sopra la tabella delle statistiche.
- Seleziona Crea una regola automatizzata .
- Seleziona Pausa o Abilita dal menu a discesa "Tipo di regola".
- Scegli quale tipo di campagna
- Per aggiungere una condizione, fai clic su +AGGIUNGI , in "Condizione".
- Definisci la frequenza della tua regola che è Una volta, Giornaliera, Settimanale o Mensile .
- Scegli il tipo di aggiornamenti email che desideri ricevere sui problemi che interessano la tua regola.
- Dai un nome alla tua regola.
- Fai clic su Anteprima per assicurarti di aver impostato la regola per l'esecuzione nel modo desiderato. L'anteprima è solo per la verifica e non apporta modifiche permanenti al tuo account.
- Al termine, fai clic su Salva regola .
Ci sono vantaggi nelle regole, nella mia mente per motivi di budget, non così estremamente preziosi. Quindi questo ci lascia con il pagamento di strumenti e o con uno sviluppatore o un ingegnere per creare alcuni script fantasiosi o una piattaforma interna che funzioni con l'API di Google. Cosa succede se non ho accesso a tali risorse e tutto ciò che desidero è essere un inserzionista? Non posso, devo imparare la codifica e le cose API per includere l'aggiornamento su tutte le modifiche e i miglioramenti dell'interfaccia utente, che puoi trovare nella libreria PPC Hero.
Perché stai leggendo e come funziona lo script.
Questo script gestisce il budget a livello di campagna di ora in ora tramite un foglio google, in modo da poterlo ridimensionare. Per quanto ne so e ho setacciato il web, questo è il primo per il pubblico. Non ho scritto la sceneggiatura originale. Che può essere trovato qui da Google. Ho semplicemente cancellato un sacco di cose con un sacco di tentativi ed errori per un periodo di tempo di 1 anno e ho rielaborato alcune cose per farlo gestire i budget invece delle offerte.
Lo script ti consente la flessibilità di impostare i tuoi budget e dimenticarli entro limiti ragionevoli. Se vuoi impazzire, puoi fare quello che faccio e utilizzare questo script con lo script di stimolazione con alcuni fogli di Google personalizzati in modo da avere il tuo strumento di gestione del budget e il tuo offerente. Ho pensato che se qualcuno può costruire uno strumento per fare queste cose e guadagnare milioni di dollari, deve esserci un modo gratuito per farlo.
Sono certo, quasi sicuro che ci sia un modo migliore per scrivere questo script e più che certo che ci sia un modo per farlo a livello di Centro clienti per gestire più account. Non l'ho capito. Sarebbe fantastico per coloro che lo vedono, ovvero sviluppatori e/o ingegneri, apportare modifiche a questo script e condividere una versione gratuita a livello di Centro clienti con i propri miglioramenti.
Come impostare lo script
Prima di eseguire lo script, ecco alcune cose che devi modificare.
- Crea un nuovo foglio Google. Qui è dove lo script saprà quali campagne mettere in pausa o riattivare, una volta creato un nuovo foglio copia l'URL.
- Assicurati che il nome della tua scheda sia impostato su "Regole" in caso contrario assicurati di aggiornare questa riga in cui "Regole è cambiato in qualunque sia il nome della tua scheda: var spreadsheetAccess = new SpreadsheetAccess(SPREADSHEET_URL, " Regole ")
- Continuando a lavorare in Fogli Google, aggiorna la riga 2 con il numero di account "000-000-0000" e sostituiscilo con il tuo.
- La riga 3 è il riferimento del periodo di tempo per l'esecuzione dello script, se si desidera eseguire dopo 7 giorni, 1 settimana o un mese. Fai riferimento alla tabella seguente per input validi per questa riga in quanto si riferisce al tuo obiettivo con il controllo dei tuoi budget.
- A partire dalla riga 6, colonna C, vorrai aggiungere i tuoi budget per quel periodo
- Infine, nella riga 6, colonna D, vorrai elencare le tue campagne.
Spero che questo aiuti tutti voi a controllare meglio i vostri budget. Quasi dimenticato, puoi cambiare la campagna.pause nello script in campaign.enable e regolare la semplice formula se vuoi duplicare lo script e creare un altro script per abilitare le campagne.
sceneggiatura
var SPREADSHEET_URL = "[https://docs.google.com/spreadsheets/d/1AbldNxsSPHkE0WcOY01AoM7EimF2_7XDrvI5FeLcarY/edit#gid=0]"; var spreadsheetAccess = new SpreadsheetAccess(SPREADSHEET_URL, "Rules"); var totalColumns; function main() { var columns = spreadsheetAccess.sheet.getRange(5, 2, 5, 100).getValues()[0]; for (var i = 0; i < columns.length; i ++) { if (columns[i].length == 0 || columns[i] == 'Results') { totalColumns = i; break; } } if (columns[totalColumns] != 'Results') { spreadsheetAccess.sheet.getRange(5, totalColumns + 2, 1, 1).setValue("Results"); } // clear the results column spreadsheetAccess.sheet.getRange(6, totalColumns + 2, 1000, 1).clear(); var row = spreadsheetAccess.nextRow(); while (row != null) { var budget; try { budget = parseBudget(row); } catch (ex) { logError(ex); row = spreadsheetAccess.nextRow(); continue; } var selector = AdWordsApp.campaigns(); for (var i = 2; i < totalColumns; i ++) { var header = columns[i]; var value = row[i]; if (!isNaN(parseFloat(value)) || value.length > 0) { if (header.indexOf("'") > 0) { value = value.replace(/\'/g,"\\'"); } else if (header.indexOf("\"") > 0) { value = value.replace(/"/g,"\\\""); } var condition = header.replace('?', value); selector.withCondition(condition); } } var campaigns = selector.get(); try { campaigns.hasNext(); } catch (ex) { logError(ex); row = spreadsheetAccess.nextRow(); continue; } var fetched = 0; var changed = 0; while (campaigns.hasNext()) { var campaign = campaigns.next(); var oldCost = campaign.getStatsFor("THIS_MONTH").getCost(); var action = row[0]; var newStatus; fetched ++; if (budget <= oldCost) { campaign.pause(); changed++ } } logResult("Fetched " + fetched + "\nChanged " + changed); row = spreadsheetAccess.nextRow(); } var now = new Date(Utilities.formatDate(new Date(), AdWordsApp.currentAccount().getTimeZone(), "MMM dd,yyyy HH:mm:ss")); } function parseBudget(row) { if (row[1].length == 0) { return null; } var limit = parseFloat(row[1]); if (isNaN(limit)) { throw "Bad Argument: must be a number."; } return limit; } function logError(error) { spreadsheetAccess.sheet.getRange(spreadsheetAccess.currentRow(), totalColumns + 2, 1, 1) .setValue(error) .setFontColor('#c00') .setFontSize(8) .setFontWeight('bold'); } function logResult(result) { spreadsheetAccess.sheet.getRange(spreadsheetAccess.currentRow(), totalColumns + 2, 1, 1) .setValue(result) .setFontColor('#444') .setFontSize(8) .setFontWeight('normal'); } function SpreadsheetAccess(spreadsheetUrl, sheetName) { this.spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl); this.sheet = this.spreadsheet.getSheetByName(sheetName); this.cells = this.sheet.getRange(6, 2, this.sheet.getMaxRows(), this.sheet.getMaxColumns()).getValues(); this.rowIndex = 0; this.nextRow = function() { for (; this.rowIndex < this.cells.length; this.rowIndex ++) { if (this.cells[this.rowIndex][0]) { return this.cells[this.rowIndex++]; } } return null; } this.currentRow = function() { return this.rowIndex + 5; } }