

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() {
// Set the destination Google Sheet URL
var spreadsheetUrl = 'Paste Your Google Sheet URL Here';
// Get the account name to dynamically name the sheet
var accountName = AdsApp.currentAccount().getName();
// Use the account name to label the tab inside the spreadsheet
var sheetName = accountName + ' - Top Performing Terms PC 90 Days';
// Open the spreadsheet by URL
var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
// Get the sheet by name, or create it if it doesn't exist
var sheet = spreadsheet.getSheetByName(sheetName) || spreadsheet.insertSheet(sheetName);
// Clear any existing data from the sheet
sheet.clear();
// Write header row to the spreadsheet
sheet.getRange('A1').setValue('Campaign Name');
sheet.getRange('B1').setValue('Ad Group Name');
sheet.getRange('C1').setValue('Search Term');
sheet.getRange('D1').setValue('Conversions');
sheet.getRange('E1').setValue('Conversion Value');
sheet.getRange('F1').setValue('Cost Per Conversion (CPA)');
sheet.getRange('G1').setValue('Conversion Rate (%)');
// Set the custom date range for reporting (format: YYYYMMDD)
var startDate = '20230315';
var endDate = '20240915';
// Build the query from the Search Query Performance Report
var report = AdsApp.report(
"SELECT CampaignName, AdGroupName, Query, Conversions, ConversionValue, Cost, Clicks " +
"FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
"WHERE Conversions > 0 " +
"DURING " + startDate + "," + endDate
);
// Get report rows and set starting row for data insertion
var rows = report.rows();
var rowNumber = 2;
// Iterate through each row of the report
while (rows.hasNext()) {
var row = rows.next();
// Lowercase the search term for consistent brand filtering
var searchTerm = row['Query'].toLowerCase();
var conversions = parseFloat(row['Conversions']);
// Skip rows with less than 1 conversion
if (conversions < 1) continue;
// Exclude branded terms to avoid polluting the report
if (searchTerm.includes('parker chase') || searchTerm.includes('parker-chase') || searchTerm.includes('endeavor schools')) {
continue;
}
// Optional generic filter - add or remove terms here
if (
searchTerm.includes('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}
// Extract cost and click values to calculate performance
var cost = parseFloat(row['Cost']);
var clicks = parseFloat(row['Clicks']);
// Calculate cost per conversion (CPA)
var cpa = conversions > 0 ? cost / conversions : 0;
// Calculate conversion rate
var conversionRate = clicks > 0 ? (conversions / clicks) * 100 : 0;
// Format values
cpa = cpa.toFixed(2);
conversionRate = conversionRate.toFixed(2);
// Write the row to the spreadsheet
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(conversions);
sheet.getRange(rowNumber, 5).setValue(row['ConversionValue']);
sheet.getRange(rowNumber, 6).setValue('$' + cpa); // Include dollar sign for CPA
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%'); // Add percentage symbol
// Move to the next row in the sheet
rowNumber++;
}
// Log how many rows were processed
Logger.log('Export completed. Total rows processed: ' + (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('endeavor schools')) {
continue;
}
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('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}
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(rowNumber, 6).setValue('$' + cpa);
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%');
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