
Agent PPC AI cu automatizare a interogărilor negative
Automatizează cuvintele cheie negative în Google Ads cu Agentul PPC AI de la FlowHunt. Exclude interogările irelevante, reduce cheltuielile irosite și îmbunătăț...
FlowHunt automatizează gestionarea cuvintelor cheie negative în Google Ads cu ajutorul AI, ajutând companiile să reducă costurile, să optimizeze bugetul de publicitate și să îmbunătățească rezultatele campaniilor fără efort.
Cheltuielile nedorite pe cuvinte cheie apar atunci când anunțurile tale sunt afișate în rezultate de căutare care nu se potrivesc cu ceea ce vinzi. Acest lucru îți poate epuiza rapid bugetul, deoarece fiecare click irelevant costă bani fără a genera o vânzare. De exemplu, dacă o companie care vinde pantofi din piele de lux țintește cuvinte cheie largi precum „cumpără pantofi”, poate atrage clickuri de la persoane interesate de adidași sau sandale, care nu sunt ceea ce oferă. Această nepotrivire în țintirea cuvintelor cheie poate duce la cheltuieli irosite și la un ROI mai scăzut. Companiile trebuie să înțeleagă acest concept pentru a evita pierderile financiare inutile și pentru a-și concentra bugetul pe cuvintele cheie potrivite.
Cuvintele cheie negative sunt un instrument esențial în orice campanie Google Ads. Ele permit advertiserilor să excludă anumite termeni de căutare din declanșarea anunțurilor, asigurându-se că doar căutările relevante duc la afișarea anunțurilor. De exemplu, folosirea cuvintelor cheie negative precum „ieftin” sau „reducere” poate ajuta compania de pantofi din piele să evite clickurile de la persoane care nu sunt interesate de produse premium. Prin crearea atentă a unei liste de cuvinte cheie negative, companiile își pot optimiza cheltuielile de publicitate, reducând clickurile nedorite și sporind eficiența generală a campaniei.
Inteligența Artificială (AI) schimbă modul în care advertiserii gestionează campaniile Google Ads. Instrumentele AI precum FlowHunt sunt create pentru gruparea cuvintelor cheie, ajutând companiile să identifice și să organizeze mai eficient cuvintele cheie înrudite. Această automatizare simplifică procesul de identificare a cuvintelor cheie pozitive și negative, reducând munca manuală implicată în gestionarea campaniilor. Managementul cuvintelor cheie bazat pe AI permite modificări în timp real, pe baza datelor de performanță, asigurând optimizarea continuă a cheltuielilor pentru cel mai bun ROI.
Pentru a reduce cheltuielile nedorite pe cuvinte cheie, companiile ar trebui să adopte mai multe strategii:
PostAffiliatePro se confrunta cu probleme legate de cheltuielile lunare de publicitate, nereușind să obțină ROI-ul dorit din campaniile Google Ads. Au decis să folosească AI pentru a aborda această problemă. Prin integrarea unor instrumente bazate pe AI, au automatizat procesul de management al cuvintelor cheie, identificând atât cuvintele pozitive, cât și pe cele negative, mult mai precis. Această schimbare le-a permis să își optimizeze cheltuielile, reducând semnificativ costurile și îmbunătățind eficiența campaniilor. Experiența lor evidențiază beneficiile utilizării tehnologiei AI pentru gestionarea eficientă a bugetului de cuvinte cheie. Analizele fiecărui cuvânt cheie nou sunt realizate în decurs de o oră de la prima impresie. Rapiditatea permite identificarea cuvintelor negative înainte ca vizitatorii să poată da click pe anunțul Google.
Pentru cei interesați să afle mai multe despre gestionarea eficientă a cuvintelor cheie și optimizarea cu AI, iată câteva resurse utile:
Acesta este scriptul nostru, pe care îl rulăm în fiecare oră pentru a evalua grupurile de cuvinte cheie.
Scriptul automatizează mai multe sarcini legate de gestionarea campaniilor Google Ads. Interacționează cu Google Sheets pentru configurare și setări, și efectuează operațiuni pe conturile Google Ads, precum analiza termenilor de căutare, adăugarea sau excluderea cuvintelor cheie, și interfațarea cu API-ul FlowHunt pentru gruparea avansată cu AI a cuvintelor cheie.
main()
. Aceasta deschide documentul Google Sheets specificat de spreadsheetURL
, preia setările necesare precum apiKey
, country
, language
și altele.minimumMatch
specificat.callFlowHuntApi()
pentru a interacționa cu API-ul FlowHunt pentru diverse sarcini, inclusiv preluarea ID-urilor de workspace și gruparea cuvintelor cheie.Pentru a implementa acest script, utilizatorii trebuie să:
Nu uita să setezi link-ul real către documentul tău Google Sheet. Restul este magia noastră. Identificăm cuvintele cheie care aparțin campaniei și automatizăm gestionarea acestora (atât negative, cât și pozitive).
//Global variables
var spreadsheetURL;
var spreadsheet;
var sheetSettings;
var sheetAddedKW;
var sheetNegativeKW;
var apiKey;
var labelName;
var country;
var language;
var location;
var urlsCount;
var minimumMatch;
var workspaceId;
function main() {
// 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();
}
}
function analyzeNotAssignedWords() {
Logger.log("*** START Checking not assigned keywords");
// Iterate through all ad groups in the account
var adGroupsIterator = AdsApp.adGroups().get();
while (adGroupsIterator.hasNext()) {
var adGroup = adGroupsIterator.next();
var groupName = 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
var searchTermsQuery = "SELECT Query FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
"WHERE AdGroupId = " + adGroup.getId() +
" AND QueryTargetingStatus = \"NONE\" " +
"DURING TODAY";
var searchTermsIterator = AdsApp.report(searchTermsQuery).rows();
var adGroupKeywords = [];
while (searchTermsIterator.hasNext()) {
var searchTerm = searchTermsIterator.next();
var searchTermText = searchTerm["Query"].trim();
var similarQueries = getSimilarQueries(groupName, searchTermText)
var filteredSimilarQueries = getFilteredSimilarQueries(similarQueries);
if (filteredSimilarQueries.length > 0) {
var keywordOperation = adGroup.newKeywordBuilder().withText("[" + searchTermText + "]").build();
if (keywordOperation.isSuccessful()) {
adGroupKeywords.push(searchTermText);
var rowData = [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);
var rowData = [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");
}
function getSimilarQueries(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") {
return JSON.parse(result.result);
}
return []
}
function getFilteredSimilarQueries(similarQueries) {
filtered = [];
for (var i=1; i<similarQueries.length; i++){
if (similarQueries[i].count>=minimumMatch) {
filtered.push(similarQueries[i]);
}
}
return filtered;
}
function addPositiveKWsToCluster() {
Logger.log("*** START Checking new campaign keywords");
// Iterate through all ad groups in the account
var adGroupsIterator = AdsApp.adGroups().get();
var processedKWs = sheetAddedKW.getDataRange().getValues();
var processedKWsMap = {};
var rowsAdded = 0;
for (var i = 1; i < processedKWs.length; i++) { // Start at 1 to skip header row if exists
var groupName = processedKWs[i][0];
var keyword = processedKWs[i][1];
processedKWsMap[groupName + '|' + keyword] = true;
}
while (adGroupsIterator.hasNext()) {
var adGroup = adGroupsIterator.next();
var groupName = adGroup.getId() + " - " + adGroup.getName();
if (hasLabel(adGroup, labelName)) {
var keywordsIterator = adGroup.keywords().get();
var adGroupKeywords = [];
while (keywordsIterator.hasNext()) {
var keyword = keywordsIterator.next();
if (keyword.isEnabled()) {
var key = groupName + '|' + keyword.getText();
if (!processedKWsMap[key]) {
adGroupKeywords.push(keyword.getText());
var rowData = [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");
return rowsAdded;
}
function addKeywordsToFlowHunt(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});
}
function getSettingValue(settingName) {
var data = sheetSettings.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
if (data[i][0] === settingName) {
return data[i][1];
}
}
return null;
}
function getWorkspaceId() {
result = callFlowHuntApi("/auth/me", "GET")
if (result !== null) {
return result.api_key_workspace_id;
}
}
function callFlowHuntApi(endpoint, method, requestBody) {
var url = "https://api.flowhunt.io/v2" + endpoint;
var headers = {
"Api-Key": apiKey,
"Content-Type": "application/json"
};
var options = {
"method" : method, // or "post", "put", etc.
"headers" : headers,
"payload": JSON.stringify(requestBody)
};
try {
var response = UrlFetchApp.fetch(url, options);
var responseData = JSON.parse(response.getContentText());
Logger.log(responseData);
return responseData;
} catch (e) {
Logger.log("An error occurred: " + e.message);
}
return null;
}
function hasLabel(adGroup, labelName) {
var labels = adGroup.labels().get();
while (labels.hasNext()) {
var label = labels.next();
if (label.getName() === labelName) {
Logger.log("Processing Adgroup " + adGroup.getName());
return true;
}
}
return false;
}
Cuvintele cheie negative împiedică afișarea anunțurilor tale pentru căutări irelevante, reducând cheltuielile irosite și îmbunătățind ROI-ul campaniei prin concentrarea doar pe cele mai relevante interogări.
Instrumentele AI precum FlowHunt analizează datele de căutare în timp real, identifică cuvintele cheie irelevante și actualizează automat campaniile tale cu cuvinte cheie negative, economisind timp și crescând eficiența.
Te poți aștepta la rate de conversie crescute, reducerea cheltuielilor pentru clickuri irelevante și campanii mai eficiente, deoarece AI optimizează continuu listele de cuvinte cheie și țintirea.
Va trebui să conectezi contul tău Google Ads, să configurezi setările într-un Google Sheet și să implementezi scriptul furnizat pentru a activa gestionarea automată a cuvintelor cheie cu ajutorul AI-ului FlowHunt.
Viktor Zeman este co-proprietar al QualityUnit. Chiar și după 20 de ani de conducere a companiei, rămâne în primul rând un inginer software, specializat în AI, SEO programatic și dezvoltare backend. A contribuit la numeroase proiecte, inclusiv LiveAgent, PostAffiliatePro, FlowHunt, UrlsLab și multe altele.
Ești gata să maximizezi ROI-ul Google Ads? Descoperă cum automatizarea alimentată de AI gestionează cuvintele cheie negative și optimizează cheltuielile de publicitate.
Automatizează cuvintele cheie negative în Google Ads cu Agentul PPC AI de la FlowHunt. Exclude interogările irelevante, reduce cheltuielile irosite și îmbunătăț...
Află cum să optimizezi campaniile PPC și să stăpânești gruparea cuvintelor cheie pentru o relevanță mai mare, scoruri de calitate îmbunătățite, ROI mai bun și m...
Descoperă cum automatizarea managementului PPC și strategiile avansate de optimizare a cuvintelor cheie pot dubla ratele de conversie, pot reduce cheltuielile c...