
PPC AI Agent s automatizáciou negatívnych dopytov
Automatizujte negatívne kľúčové slová v Google Ads pomocou PPC AI Agenta od FlowHunt. Vylúčte nerelevantné dopyty, znížte zbytočné výdavky a zlepšite konverzie ...
FlowHunt automatizuje správu negatívnych kľúčových slov v Google Ads pomocou AI, čím firmám pomáha znížiť náklady, optimalizovať rozpočet na reklamu a zlepšiť výsledky kampaní bez námahy.
Nechcené výdavky na kľúčové slová vznikajú vtedy, keď sa vaše reklamy zobrazujú vo výsledkoch vyhľadávania, ktoré nezodpovedajú tomu, čo predávate. Takéto kliknutia rýchlo vyčerpajú rozpočet, pretože každé nerelevantné kliknutie stojí peniaze bez toho, aby prinieslo predaj. Napríklad, ak spoločnosť predávajúca luxusné kožené topánky cieli na všeobecné kľúčové slová ako „kúpiť topánky“, môže prilákať ľudí, ktorí hľadajú tenisky alebo sandále, čo nie je jej ponuka. Takéto zlé zacielenie vedie k zbytočným výdavkom na reklamu a nižšiemu ROI. Firmy musia tento princíp pochopiť, aby sa vyhli zbytočným finančným stratám a sústredili rozpočet na tie správne kľúčové slová.
Negatívne kľúčové slová sú nevyhnutnou súčasťou každej kampane Google Ads. Umožňujú inzerentom vylúčiť určité vyhľadávacie výrazy zo spúšťania ich reklám, čím zabezpečujú, že sa reklamy zobrazia iba pri relevantných dotazoch. Napríklad použitie negatívnych kľúčových slov ako „lacné“ alebo „zľava“ môže pomôcť spoločnosti s koženou obuvou vyhnúť sa kliknutiam od ľudí, ktorí nehľadajú prémiové produkty. Starostlivým vytvorením zoznamu negatívnych slov môžu firmy optimalizovať výdavky na reklamu, znížiť počet nechcených kliknutí a zvýšiť celkovú efektivitu kampane.
Umelá inteligencia (AI) mení spôsob, akým inzerenti spravujú kampane Google Ads. AI nástroje ako FlowHunt sú navrhnuté na zoskupovanie kľúčových slov, čím firmám pomáhajú efektívnejšie identifikovať a organizovať súvisiace kľúčové slová. Táto automatizácia zjednodušuje proces hľadania pozitívnych aj negatívnych kľúčových slov a znižuje manuálnu prácu pri správe kampaní. AI riadená správa kľúčových slov umožňuje zmeny v reálnom čase na základe výkonnostných dát, čo zaručuje, že výdavky na reklamu sú neustále optimalizované pre najlepší ROI.
Aby firmy znížili nechcené výdavky na kľúčové slová, mali by prijať viacero stratégií:
PostAffiliatePro čelil problémom s mesačnými výdavkami na reklamu a snažil sa dosiahnuť požadované ROI z kampaní Google Ads. Rozhodli sa tento problém riešiť pomocou AI. Zavedením nástrojov poháňaných AI automatizovali proces správy kľúčových slov, presnejšie identifikovali pozitívne aj negatívne slová. Táto zmena im umožnila optimalizovať výdavky na reklamu, výrazne znížiť náklady a zvýšiť efektivitu kampaní. Ich skúsenosť poukazuje na výhody využitia technológií AI pri efektívnej správe výdavkov na kľúčové slová. Analýza každého nového kľúčového slova prebieha do hodiny od jeho prvej impresie. Táto rýchlosť umožňuje zachytiť negatívne slová skôr, než na ne návštevník klikne v Google Ad.
Ak sa chcete dozvedieť viac o efektívnej správe kľúčových slov a optimalizácii pomocou AI, skúste tieto zdroje:
Tu je náš skript, ktorý spúšťame každú hodinu na vyhodnotenie zhlukov kľúčových slov.
Tento skript automatizuje viacero úloh súvisiacich so správou kampaní Google Ads. Spolupracuje s Google Sheets na konfiguráciu a nastavenia a vykonáva operácie na účtoch Google Ads, ako je analýza vyhľadávacích dopytov, pridávanie alebo vylučovanie kľúčových slov, ako aj prepojenie s FlowHunt API pre pokročilé AI zhlukovanie kľúčových slov.
main()
. Táto funkcia otvorí dokument Google Sheets zadaný v spreadsheetURL
, načíta potrebné nastavenia ako apiKey
, country
, language
a ďalšie.minimumMatch
.callFlowHuntApi()
na komunikáciu s FlowHunt API pre rôzne úlohy, vrátane získania ID pracovného priestoru a zhlukovania kľúčových slov.Na nasadenie tohto skriptu používateľ potrebuje:
Nezabudnite nastaviť skutočný odkaz na váš dokument Google Sheet. Ostatné je naša mágia. Identifikujeme kľúčové slová, ktoré patria do kampane, a automatizujeme správu kľúčových slov (negatívnych aj pozitívnych).
//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;
}
Negatívne kľúčové slová zabraňujú zobrazovaniu vašich reklám pri nerelevantných vyhľadávaniach, čím znižujú zbytočné výdavky a zlepšujú ROI kampane tým, že sa zameriavajú iba na najrelevantnejšie dopyty.
AI nástroje ako FlowHunt analyzujú dáta z vyhľadávania v reálnom čase, identifikujú nerelevantné kľúčové slová a automaticky aktualizujú vaše kampane o negatívne kľúčové slová, čo šetrí čas a zvyšuje efektivitu.
Očakávajte vyššie konverzné pomery, nižšie výdavky na reklamu za nerelevantné kliknutia a efektívnejšie kampane, keďže AI neustále optimalizuje vaše zoznamy kľúčových slov a cielenie.
Budete musieť prepojiť svoj Google Ads účet, nastaviť konfiguráciu v Google Sheete a nasadiť poskytnutý skript, aby ste povolili automatizovanú správu kľúčových slov poháňanú AI od FlowHunt.
Viktor Zeman je spolumajiteľom spoločnosti QualityUnit. Aj po 20 rokoch vedenia firmy zostáva predovšetkým softvérovým inžinierom, špecializujúcim sa na AI, programatické SEO a backendový vývoj. Prispel k množstvu projektov vrátane LiveAgent, PostAffiliatePro, FlowHunt, UrlsLab a mnohých ďalších.
Chcete maximalizovať ROI z Google Ads? Objavte, ako automatizácia poháňaná AI spravuje vaše negatívne kľúčové slová a optimalizuje výdavky na reklamu.
Automatizujte negatívne kľúčové slová v Google Ads pomocou PPC AI Agenta od FlowHunt. Vylúčte nerelevantné dopyty, znížte zbytočné výdavky a zlepšite konverzie ...
Objavte, ako automatizácia správy PPC a pokročilé stratégie optimalizácie kľúčových slov môžu zdvojnásobiť vaše konverzné pomery, znížiť výdavky na reklamu a ze...
Zistite, ako optimalizovať PPC kampane a zvládnuť zoskupovanie kľúčových slov pre vyššiu relevanciu, lepšie Quality Score, lepšiu návratnosť investícií a efektí...