Automazione delle Parole Chiave Negative di Google Ads con l’AI
FlowHunt automatizza la gestione delle parole chiave negative su Google Ads con l’AI, aiutando le aziende a ridurre i costi, ottimizzare il budget pubblicitario e migliorare i risultati delle campagne in modo semplice.
Google Ads
Negative Keywords
AI
Automation
PPC
Digital Marketing
Scripts
Comprendere la Spesa per Parole Chiave Indesiderate
La spesa per parole chiave indesiderate si verifica quando i tuoi annunci compaiono nei risultati di ricerca che non corrispondono a ciò che vendi. Questo può esaurire rapidamente il budget, poiché ogni clic irrilevante costa denaro senza generare vendite. Ad esempio, se un’azienda che vende scarpe in pelle di alta gamma punta su keyword generiche come “comprare scarpe”, potrebbe ricevere clic da persone interessate a sneakers o sandali, prodotti che non offre. Questo disallineamento nel targeting può portare a sprechi pubblicitari e a un ROI più basso. Le aziende devono comprendere questo concetto per evitare perdite finanziarie inutili e concentrare il budget sulle keyword giuste.
Il Ruolo delle Parole Chiave Negative
Le parole chiave negative sono uno strumento essenziale in ogni campagna Google Ads. Permettono agli inserzionisti di escludere termini di ricerca specifici dal far scattare i loro annunci, assicurando che solo le ricerche pertinenti portino alla visualizzazione degli annunci. Ad esempio, usare parole chiave negative come “economico” o “sconto” può aiutare l’azienda di scarpe in pelle a evitare i clic di persone non interessate a prodotti di fascia alta. Definendo accuratamente una lista di parole chiave negative, le aziende possono ottimizzare la spesa pubblicitaria, ridurre i clic indesiderati e migliorare l’efficacia complessiva della campagna.
Pronto a far crescere il tuo business?
Inizia oggi la tua prova gratuita e vedi i risultati in pochi giorni.
Utilizzare l’AI per la Gestione delle Parole Chiave
L’Intelligenza Artificiale (AI) sta rivoluzionando la gestione delle campagne Google Ads. Strumenti AI come FlowHunt sono progettati per raggruppare keyword, aiutando le aziende a identificare e organizzare parole chiave correlate in modo più efficace. Questa automazione semplifica il processo di individuazione sia delle keyword positive che negative, riducendo il lavoro manuale nella gestione delle campagne. La gestione delle keyword guidata dall’AI consente modifiche in tempo reale basate sui dati di performance, assicurando che la spesa pubblicitaria sia sempre ottimizzata per il massimo ROI.
Strategie per Ridurre la Spesa su Parole Chiave Indesiderate
Per ridurre la spesa su keyword indesiderate, le aziende dovrebbero adottare diverse strategie:
Aggiornare regolarmente la lista delle keyword per allinearsi ai trend di mercato e agli interessi dei consumatori.
Implementare una forte strategia di parole chiave negative ricercando e aggiornando costantemente i termini da escludere.
Monitorare e ottimizzare le campagne in base ai dati sulle performance.
Analizzare quali keyword portano vendite e quali no per perfezionare il targeting e massimizzare la spesa pubblicitaria.
Iscriviti alla nostra newsletter
Ricevi gratuitamente gli ultimi consigli, tendenze e offerte.
Caso Studio: L’Approccio di PostAffiliatePro
PostAffiliatePro affrontava problemi con la spesa pubblicitaria mensile, faticando a ottenere il ROI desiderato dalle campagne Google Ads. Ha deciso di utilizzare l’AI per risolvere il problema. Integrando strumenti AI, ha automatizzato il processo di gestione delle keyword, identificando con maggiore precisione sia quelle positive che quelle negative. Questo cambiamento ha permesso di ottimizzare la spesa pubblicitaria, ridurre notevolmente i costi e migliorare l’efficienza delle campagne. La loro esperienza evidenzia i vantaggi della tecnologia AI nella gestione efficace della spesa per keyword. Le analisi di ogni nuova parola chiave vengono eseguite entro un’ora dalla prima impression della keyword. Questa rapidità aiuta ad intercettare le parole chiave negative prima che i visitatori possano cliccare sull’annuncio Google.
Tasso di conversione migliorato (solo le ricerche rilevanti portano più vendite)
Risorse Aggiuntive
Per chi desidera approfondire la gestione efficace delle keyword e l’ottimizzazione tramite AI, consigliamo queste risorse:
Script Google Ads per Valutare Ogni Nuova Parola Chiave
Ecco lo script che eseguiamo ogni ora per valutare i cluster di keyword.
Questo script mira ad automatizzare diversi compiti legati alla gestione delle campagne Google Ads. Interagisce con Google Sheets per la configurazione e le impostazioni, e svolge operazioni sugli account Google Ads come analisi dei termini di ricerca, aggiunta o esclusione di keyword e interfacciamento con l’API FlowHunt per il clustering AI avanzato delle parole chiave.
Foglio Google per la gestione delle impostazioni dello script
Parole chiave negative applicate automaticamente ai gruppi di annunci
Funzione Principale
La logica di controllo principale è contenuta nella funzione main(). Questa apre il documento Google Sheets specificato da spreadsheetURL, recupera le impostazioni di configurazione come apiKey, country, language e altri parametri.
Inizialmente, il sistema cerca di aggiungere eventuali nuove keyword positive al cluster FlowHunt. Se ci riesce, procede ad analizzare eventuali termini di ricerca non assegnati.
Analisi Keyword
Analisi delle parole non assegnate: La funzione scorre tutti i gruppi di annunci dell’account Ads contrassegnati da una specifica etichetta. Recupera i termini di ricerca da Google Ads che non sono attualmente mirati e che hanno avuto almeno una impression.
Il sistema utilizza l’API di FlowHunt per trovare keyword simili a quella analizzata, filtrandole in base a un parametro minimumMatch specificato.
I termini di ricerca che soddisfano i criteri vengono aggiunti come keyword positive, oppure segnati come negative se non raggiungono la soglia minima, aggiornando il Google Sheet e le campagne Google Ads di conseguenza.
Integrazione con FlowHunt
Interazione API: Lo script si basa sulla funzione callFlowHuntApi() per interagire con l’API FlowHunt per varie attività, tra cui il recupero degli ID workspace e il clustering delle keyword.
Aggiunta delle Keyword al Cluster: Questa funzione invia le keyword positive a FlowHunt per il clustering, così che siano informate dai dati delle query live di Google Ads.
Le keyword aggiunte e quelle negative vengono registrate in fogli separati per un monitoraggio continuo e una revisione.
Utilizzo
Per implementare questo script, gli utenti devono:
Fornire un URL valido di Google Sheets e assicurarsi che i fogli necessari (“Settings”, “AddedKW”, “NegativeKW”) siano presenti.
Configurare il Google Sheet con la chiave API di FlowHunt, i codici paese e le altre impostazioni operative corrette.
Assicurarsi che lo script sia eseguito in un ambiente Google Ads Script con i permessi API necessari abilitati.
Aggiungi lo script al tuo Google Ads dal menu Strumenti -> Azioni collettive -> Script.
Non dimenticare di inserire il link reale al tuo documento Google Sheet. Al resto pensiamo noi. Identifichiamo le keyword che appartengono alla campagna e automatizziamo la gestione delle parole chiave (sia negative che positive).
Script Google Ads per Gestire Automaticamente le Parole Chiave Negative
//Global variables
varspreadsheetURL;
varspreadsheet;
varsheetSettings;
varsheetAddedKW;
varsheetNegativeKW;
varapiKey;
varlabelName;
varcountry;
varlanguage;
varlocation;
varurlsCount;
varminimumMatch;
varworkspaceId;
functionmain() {
// Provide the Google Sheets URL here
spreadsheetURL="https://docs.google.com/spreadsheets/d/....... FULL URL TO GOOGLE SHEET";
spreadsheet=SpreadsheetApp.openByUrl(spreadsheetURL);
sheetSettings=spreadsheet.getSheetByName("Settings");
sheetAddedKW=spreadsheet.getSheetByName("AddedKW");
sheetNegativeKW=spreadsheet.getSheetByName("NegativeKW");
apiKey=getSettingValue("FlowHuntAPIkey")
labelName=getSettingValue("LabelName")
country=getSettingValue("CountryCode")
language=getSettingValue("LanguageCode")
location=getSettingValue("Location")
urlsCount=getSettingValue("TopUrlsCount")
minimumMatch=getSettingValue("MinimumMatch")
workspaceId=getWorkspaceId()
if (workspaceId.length<10) {
Logger.log("Failed to load workspace id from FlowHunt, check API key");
return;
}
Logger.log("FlowHunt WorkspaceId: "+workspaceId);
if (addPositiveKWsToCluster() ==0) {
// Analyze new keywords just if all positive keywords added already
analyzeNotAssignedWords();
}
}
functionanalyzeNotAssignedWords() {
Logger.log("*** START Checking not assigned keywords");
// Iterate through all ad groups in the account
varadGroupsIterator=AdsApp.adGroups().get();
while (adGroupsIterator.hasNext()) {
varadGroup=adGroupsIterator.next();
vargroupName=adGroup.getId() +" - "+adGroup.getName();
if (hasLabel(adGroup, labelName)) {
// Get the search terms for the current ad group ordered by clicks in the last X days
varsearchTermsQuery="SELECT Query FROM SEARCH_QUERY_PERFORMANCE_REPORT "+"WHERE AdGroupId = "+adGroup.getId() +" AND QueryTargetingStatus = \"NONE\" "+"DURING TODAY";
varsearchTermsIterator=AdsApp.report(searchTermsQuery).rows();
varadGroupKeywords= [];
while (searchTermsIterator.hasNext()) {
varsearchTerm=searchTermsIterator.next();
varsearchTermText=searchTerm["Query"].trim();
varsimilarQueries=getSimilarQueries(groupName, searchTermText)
varfilteredSimilarQueries=getFilteredSimilarQueries(similarQueries);
if (filteredSimilarQueries.length>0) {
varkeywordOperation=adGroup.newKeywordBuilder().withText("["+searchTermText+"]").build();
if (keywordOperation.isSuccessful()) {
adGroupKeywords.push(searchTermText);
varrowData= [groupName, searchTermText, new Date(), "ADDING AS POSITIVE, REVIEW!", JSON.stringify(filteredSimilarQueries)];
sheetAddedKW.appendRow(rowData);
} else {
Logger.log("Failed to add keyword as positive:"+searchTermText)
}
} else {
// add to negative
adGroup.createNegativeKeyword("["+searchTermText+"]");
Logger.log("Excluded search term in ad group '"+groupName+"': "+searchTermText);
varrowData= [groupName, "["+searchTermText+"]", new Date(), JSON.stringify(similarQueries)];
sheetNegativeKW.appendRow(rowData);
}
}
if (adGroupKeywords.length>0) {
//Add all keywords in the list to FlowHunt Cluster
addKeywordsToFlowHunt(groupName, adGroupKeywords);
}
}
}
Logger.log("*** FINISHED Checking not assigned keywords");
}
functiongetSimilarQueries(groupName, query) {
result=callFlowHuntApi("/serp/serp/cluster/query_intersections?workspace_id="+workspaceId, "POST", {
"query":query,
"country":country,
"language":language,
"location":location,
"group_name":groupName,
"live_mode":true,
"max_position":urlsCount });
Logger.log(result)
if (result.status=="SUCCESS") {
returnJSON.parse(result.result);
}
return []
}
functiongetFilteredSimilarQueries(similarQueries) {
filtered= [];
for (vari=1; i<similarQueries.length; i++){
if (similarQueries[i].count>=minimumMatch) {
filtered.push(similarQueries[i]);
}
}
returnfiltered;
}
functionaddPositiveKWsToCluster() {
Logger.log("*** START Checking new campaign keywords");
// Iterate through all ad groups in the account
varadGroupsIterator=AdsApp.adGroups().get();
varprocessedKWs=sheetAddedKW.getDataRange().getValues();
varprocessedKWsMap= {};
varrowsAdded=0;
for (vari=1; i<processedKWs.length; i++) { // Start at 1 to skip header row if exists
vargroupName=processedKWs[i][0];
varkeyword=processedKWs[i][1];
processedKWsMap[groupName+'|'+keyword] =true;
}
while (adGroupsIterator.hasNext()) {
varadGroup=adGroupsIterator.next();
vargroupName=adGroup.getId() +" - "+adGroup.getName();
if (hasLabel(adGroup, labelName)) {
varkeywordsIterator=adGroup.keywords().get();
varadGroupKeywords= [];
while (keywordsIterator.hasNext()) {
varkeyword=keywordsIterator.next();
if (keyword.isEnabled()) {
varkey=groupName+'|'+keyword.getText();
if (!processedKWsMap[key]) {
adGroupKeywords.push(keyword.getText());
varrowData= [groupName, keyword.getText(), new Date(), "Already present in campaign"];
sheetAddedKW.appendRow(rowData);
processedKWsMap[key] =true;
}
}
}
if (adGroupKeywords.length>0) {
//Add all keywords in the list to FlowHunt Cluster
addKeywordsToFlowHunt(groupName, adGroupKeywords);
} else {
Logger.log("No new keywords in Group: "+groupName);
}
rowsAdded=rowsAdded+adGroupKeywords.length }
}
Logger.log("*** FINISHED Checking new campaign keywords");
returnrowsAdded;
}
functionaddKeywordsToFlowHunt(GroupName, adGroupKeywords) {
requests= []
adGroupKeywords.forEach(function(keyword) {
requests.push(
{
"query":keyword,
"country":country,
"language":language,
"location":location,
"group_name":GroupName,
"count_urls":30 }
);
});
callFlowHuntApi("/serp/serp/cluster/add_queries?workspace_id="+workspaceId, "POST", {"requests":requests});
}
functiongetSettingValue(settingName) {
vardata=sheetSettings.getDataRange().getValues();
for (vari=0; i<data.length; i++) {
if (data[i][0] ===settingName) {
returndata[i][1];
}
}
returnnull;
}
functiongetWorkspaceId() {
result=callFlowHuntApi("/auth/me", "GET")
if (result!==null) {
returnresult.api_key_workspace_id;
}
}
functioncallFlowHuntApi(endpoint, method, requestBody) {
varurl="https://api.flowhunt.io/v2"+endpoint;
varheaders= {
"Api-Key":apiKey,
"Content-Type":"application/json" };
varoptions= {
"method":method, // or "post", "put", etc.
"headers":headers,
"payload":JSON.stringify(requestBody)
};
try {
varresponse=UrlFetchApp.fetch(url, options);
varresponseData=JSON.parse(response.getContentText());
Logger.log(responseData);
returnresponseData;
} catch (e) {
Logger.log("An error occurred: "+e.message);
}
returnnull;
}
functionhasLabel(adGroup, labelName) {
varlabels=adGroup.labels().get();
while (labels.hasNext()) {
varlabel=labels.next();
if (label.getName() ===labelName) {
Logger.log("Processing Adgroup "+adGroup.getName());
returntrue;
}
}
returnfalse;
}
Domande frequenti
Le parole chiave negative impediscono che i tuoi annunci vengano mostrati per ricerche irrilevanti, riducendo gli sprechi di budget e migliorando il ROI delle campagne grazie al focus sulle query più pertinenti.
Strumenti AI come FlowHunt analizzano i dati di ricerca in tempo reale, individuano keyword irrilevanti e aggiornano automaticamente le tue campagne con parole chiave negative, facendo risparmiare tempo e aumentando l’efficienza.
Aspettati un aumento dei tassi di conversione, una riduzione della spesa pubblicitaria su clic irrilevanti e campagne più efficienti, perché l’AI ottimizza continuamente le tue liste di keyword e il targeting.
Dovrai collegare il tuo account Google Ads, configurare le impostazioni in un foglio Google Sheet e implementare lo script fornito per abilitare la gestione automatica delle keyword tramite l’AI di FlowHunt.
Viktor Zeman è co-proprietario di QualityUnit. Anche dopo 20 anni alla guida dell'azienda, rimane principalmente un ingegnere del software, specializzato in IA, SEO programmatica e sviluppo backend. Ha contribuito a numerosi progetti, tra cui LiveAgent, PostAffiliatePro, FlowHunt, UrlsLab e molti altri.
Viktor Zeman
CEO, Ingegnere IA
Automatizza Google Ads con l’AI
Pronto a massimizzare il ROI delle tue campagne Google Ads? Scopri come l’automazione AI gestisce le tue parole chiave negative e ottimizza la spesa pubblicitaria.
Flow of the Week #2: Lo Scrittore AI Che Trasforma Una Parola Chiave in Un Articolo Completo
Flow of the Week #2 è il Generatore Avanzato di Blog — uno scrittore AI gratuito che prende una parola chiave e restituisce un articolo completamente ricercato,...
Come Estrarre i Punti Chiave dai Video di YouTube con l'AI
Scopri come utilizzare agenti AI con FlowHunt per estrarre punti chiave e riassunti dai video di YouTube. Segui le istruzioni passo dopo passo per automatizzare...
3 min di lettura
AI Agents
YouTube
+4
Consenso Cookie Usiamo i cookie per migliorare la tua esperienza di navigazione e analizzare il nostro traffico. See our privacy policy.