Se gestisci campagne Performance Max o a corrispondenza generica, conosci già questa problematica. Google nasconde le query di ricerca reali. Questo script le recupera. Si collega direttamente al tuo Centro Clienti, acquisisce le query convertite e le inserisce in un foglio di calcolo Google con CPA e tasso di conversione calcolati.
Il nostro script, "Come esportare i termini di ricerca di Google Ads più performanti in Fogli Google utilizzando Apps Script", è perfetto per le agenzie che gestiscono più clienti o per i professionisti del marketing che vogliono smettere di tirare a indovinare.
Analizziamolo nel dettaglio.
Nella sezione Script viene impostata tutta l'automazione in blocco all'interno di Google Ads MCC.
1. Accedi al tuo MCC (Account Manager) e vai su Strumenti > Azioni in blocco > Script
2. Fare clic sul pulsante blu più (+) per creare un nuovo script
Si apre l'editor di script. Non preoccuparti, non dovrai scrivere codice da zero. Incollerai uno script già scritto. Cliccando su questo pulsante si crea un contenitore di script vuoto per l'automazione.
Dare un nome allo script è essenziale per la gestione e la pianificazione a lungo termine.
3. Assegna un nome allo script in modo che sia facile identificarlo in seguito
Nella parte superiore della finestra dell'editor di script, vedrai un campo per inserire un nome. Usa un nome chiaro, come "Report sui termini di ricerca più performanti". Questo ti aiuterà a riconoscere lo script in seguito, quando gestirai più script o account.
Puoi dargli un nome Termini di ricerca più performanti
e inserisci lo script (incluso in fondo a questo post).
Dai un nome allo script
4. Incolla l'intero script nell'editor
function main() {
// Imposta l'URL di destinazione del foglio Google
var spreadsheetUrl = 'Incolla qui l'URL del tuo foglio Google';
// Ottieni il nome dell'account per assegnare un nome dinamico al foglio
var accountName = AdsApp.currentAccount().getName();
// Utilizza il nome dell'account per etichettare la scheda all'interno del foglio di calcolo
var sheetName = accountName + ' - Termini più performanti PC 90 giorni';
// Apri il foglio di calcolo tramite URL
var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
// Ottieni il foglio tramite nome o crealo se non esiste
var sheet = spreadsheet.getSheetByName(sheetName) || spreadsheet.insertSheet(sheetName);
// Cancella tutti i dati esistenti dal foglio
sheet.clear();
// Scrivi la riga di intestazione nel foglio di calcolo
sheet.getRange('A1').setValue('Nome campagna');
sheet.getRange('B1').setValue('Nome del gruppo di annunci');
sheet.getRange('C1').setValue('Termine di ricerca');
sheet.getRange('D1').setValue('Conversioni');
sheet.getRange('E1').setValue('Valore di conversione');
sheet.getRange('F1').setValue('Costo per conversione (CPA)');
sheet.getRange('G1').setValue('Tasso di conversione (%)');
// Imposta l'intervallo di date personalizzato per i report (formato: AAAAMMGG)
var startDate = '20230315';
var endDate = '20240915';
// Crea la query dal report sulle prestazioni delle query di ricerca
var report = AdsApp.report(
"SELECT CampaignName, AdGroupName, Query, Conversions, ConversionValue, Cost, Clicks " +
"FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
"WHERE Conversions > 0 " +
"DURING " + startDate + "," + endDate
);
// Ottieni le righe del report e imposta la riga iniziale per l'inserimento dei dati
var rows = report.rows();
var rowNumber = 2;
// Scorri ogni riga del report
while (rows.hasNext()) {
var row = rows.next();
// Scrivi in minuscolo il termine di ricerca per un filtraggio coerente del brand
var searchTerm = row['Query'].toLowerCase();
var conversions = parseFloat(row['Conversions']);
// Salta le righe con meno di 1 conversione
if (conversions < 1) continue;
// Escludi i termini di marca per evitare di inquinare il report
if (searchTerm.includes('parker chase') || searchTerm.includes('parker-chase') || searchTerm.includes('endeavor schools')) {
continue;
}
// Filtro generico facoltativo: aggiungi o rimuovi termini qui
if (
searchTerm.includes('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}
// Estrai i valori di costo e clic per calcolare le prestazioni
var cost = parseFloat(row['Cost']);
var clicks = parseFloat(row['Clicks']);
// Calcola il costo per conversione (CPA)
var cpa = conversions > 0 ? costo / conversioni: 0;
// Calcola il tasso di conversione
var conversionRate = clic > 0 ? (conversioni / clic) * 100: 0;
// Formatta i valori
cpa = cpa.toFixed(2);
conversionRate = conversionRate.toFixed(2);
// Scrivi la riga nel foglio di calcolo
sheet.getRange(rowNumber, 1).setValue(row['CampaignName']);
sheet.getRange(rowNumber, 2).setValue(row['AdGroupName']);
sheet.getRange(rowNumber, 3).setValue(row['Query']);
sheet.getRange(rowNumber, 4).setValue(conversioni);
sheet.getRange(rowNumber, 5).setValue(row['ConversionValue']);
sheet.getRange(rowNumber, 6).setValue('$' + cpa); // Includi il simbolo del dollaro per CPA
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%'); // Aggiungi il simbolo di percentuale
// Passa alla riga successiva nel foglio
rowNumber++;
}
// Registra quante righe sono state elaborate
Logger.log('Esportazione completata. Numero totale di righe elaborate: ' + (rowNumber - 2));
}
Lo script include diverse impostazioni contrassegnate che è possibile modificare prima di eseguirlo. Queste si trovano tutte all'interno dei blocchi di commento dello script e possono essere modificate in base ai propri obiettivi specifici, all'intervallo di reporting o alle preferenze di formattazione.
Ecco una ripartizione di cosa puoi modificare e perché:
1. URL del foglio di calcolo
var spreadsheetUrl = 'https://docs.google.com/spreadsheets/d/xxxxx/edit';
Cosa fa:
È qui che lo script invia i tuoi dati. Sostituisci l'URL segnaposto con il link al tuo Foglio Google. Se utilizzi più indirizzi email, assicurati che il Foglio sia condiviso con l'account Google associato al tuo Centro clienti.
2. Impostazioni intervallo di date
var startDate = '20230315';
var endDate = '20240915';
Cosa fa:
Questa opzione controlla la finestra di reporting. Le date devono essere formattate come AAAAMMGG. È possibile modificarle in base all'intervallo di tempo analizzato: gli ultimi 30 giorni, gli ultimi 90 giorni, intervalli trimestrali personalizzati, ecc.
3. Comportamento del nome del foglio
var sheetName = accountName + ' - Termini più performanti PC 90 giorni';
Cosa fa:
Questa riga assegna dinamicamente un nome alla scheda Foglio in base all'account che esegue lo script. È possibile modificare la porzione di testo ("—Termini più performanti PC 90 giorni") se si desidera etichettare i report in modo diverso. Questa funzionalità è utile quando si esegue lo script su più brand o sottoaccount.
4. Filtraggio dei termini di marca
if (searchTerm.includes('parker chase') || searchTerm.includes('parker-chase') || searchTerm.includes('scuole endeavor')) {
continua;
}
Cosa fa:
Questa sezione esclude tutti i termini correlati al brand dal report. È possibile aggiornare questo elenco aggiungendo o rimuovendo le condizioni .includes(). Ad esempio, se si desidera escludere "MyBrand", è sufficiente aggiungere:
|| searchTerm.includes('mybrand')
Utilizzare sempre le lettere minuscole poiché lo script converte tutte le query in lettere minuscole.
5. Filtraggio dei termini generici
if (
searchTerm.includes('creativo') ||
searchTerm.includes('apprendimento') ||
searchTerm.includes('contenuto')
) {
continua;
}
Cosa fa:
Questo filtro facoltativo elimina i termini che non sono specifici del marchio ma che comunque confondono i dati, come "apprendimento" o "creativo". Puoi aggiungere o rimuovere filtri in base a ciò che consideri rumore.
6. Soglia di prestazione
se (conversioni < 1) continua;
Cosa fa:
Questa riga rimuove le query senza conversioni. Puoi aumentare questa soglia se lo desideri, ma solo per i termini con prestazioni più elevate. Ad esempio, modificala in:
se (conversioni < 3) continua;
...per includere solo i termini di ricerca con 3+ conversioni nell'intervallo di date.
7. Formattazione dell'output del foglio
sheet.getRange(numeroriga, 6).setValue('$' + cpa);
sheet.getRange(numeroriga, 7).setValue(tassodiconversione + '%');
Cosa fa:
Questa opzione controlla come CPA e tasso di conversione vengono scritti sul foglio. È possibile modificare o eliminare le stringhe aggiunte per rimuovere i simboli (ad esempio, $ o %).
Una volta eseguito correttamente, lo script popolerà il tuo Foglio Google con una tabella strutturata. Ogni riga rappresenta un termine di ricerca che ha generato almeno una conversione nell'intervallo di date specificato.
L'esempio di Google Sheet
Lo script genera un set di colonne sulle prestazioni nel tuo Foglio Google, fornendo una visione chiara del contributo di ciascun termine di ricerca. Queste includono i nomi della campagna e del gruppo di annunci per monitorare il punto in cui il termine è stato attivato, il termine di ricerca effettivamente digitato dall'utente, il numero di conversioni generate, il valore di conversione totale, il costo medio per conversione e il tasso di conversione complessivo. Ogni campo è fondamentale per capire cosa funziona e quali sprechi vengono generati.
Nome della campagna
Nome della campagna in cui è stato attivato l'annuncio
Nome del gruppo di annunci
Un gruppo di annunci che corrisponde al termine di ricerca
Termine di ricerca
La frase esatta che l'utente ha digitato su Google
Conversioni
Numero di conversioni tracciate da quel termine
Valore di conversione
Il valore totale di tali conversioni, in base alle impostazioni del tuo account
Costo per conversione (CPA)
Il costo medio per generare una conversione da quel termine di ricerca
Tasso di conversione (%)
Percentuale di clic che hanno generato una conversione
Questo script è una solida base, ma può essere implementato ulteriormente a seconda del livello di dettaglio desiderato per i report. Se gestisci più brand o account con un unico Centro Clienti, l'aggiunta di etichette o filtri alle campagne può aiutare a isolare i dati per brand o business unit. Pianificare l'esecuzione automatica dello script su base settimanale o mensile consente di risparmiare tempo e garantisce report coerenti. È possibile creare una logica per inviare avvisi quando metriche chiave, come il CPA o il tasso di conversione, superano determinate soglie. Per un'analisi più dettagliata, è possibile combinare questa funzionalità con altri report. PAROLE CHIAVE_RAPPORTO_SULLE_PRESTAZIONI
per ottenere analisi per tipo di corrispondenza. All'interno del foglio, l'aggiunta di tabelle pivot o formattazione condizionale può far emergere informazioni più rapidamente. E se preferisci una visualizzazione più completa, i dati possono essere importati in Looker Studio per dashboard comprensibili per i tuoi clienti.
Aggiungi etichette di campagna o filtri a livello di account per segmentare i dati tra MCC di grandi dimensioni
Utilizza la pianificazione integrata per automatizzare i report settimanali o mensili
Attiva avvisi e-mail quando il CPA supera un valore specifico o il tasso di conversione scende al di sotto di una soglia
Unisci i dati di altri report, come KEYWORDS_PERFORMANCE_REPORT, per suddividere i tipi di corrispondenza
Aggiungi riepiloghi pivot di base o formattazione condizionale direttamente in Fogli
Collega l'output a Looker Studio per dashboard delle prestazioni visive
Noi di Bright Vessel realizziamo strumenti di automazione personalizzati come questo per i clienti che necessitano di informazioni chiare sulle prestazioni da ambienti pubblicitari disordinati. Se sei stanco di dover rovistare in dashboard scadenti o di dover eseguire cinque esportazioni manuali per ottenere i dati di cui hai bisogno, questo script è solo uno dei tanti modi in cui semplifichiamo il processo.
Consulta la nostra guida dettagliata correlata su "Come monitorare lo stato degli obiettivi di Google Ads negli account MCC utilizzando Fogli Google e Apps Script" per un altro metodo per automatizzare il monitoraggio su larga scala.
Hai bisogno di una versione che si integri con Slack, crei dashboard Looker o colleghi più account pubblicitari in un unico foglio principale? Possiamo realizzarla. Parliamo .
"*" indica i campi obbligatori
"*" indica i campi obbligatori
"*" indica i campi obbligatori