أتمتة الكلمات السلبية في إعلانات Google باستخدام الذكاء الاصطناعي
يقوم FlowHunt بأتمتة إدارة الكلمات السلبية في إعلانات Google باستخدام الذكاء الاصطناعي، مما يساعد الشركات على تقليل التكاليف وتحسين الإنفاق الإعلاني وتحقيق نتائج أفضل للحملة بسهولة.
Google Ads
Negative Keywords
AI
Automation
PPC
Digital Marketing
Scripts
يحدث الإنفاق على الكلمات غير المرغوبة عندما تظهر إعلاناتك في نتائج بحث لا تتوافق مع ما تبيعه. يمكن أن يؤدي ذلك بسرعة إلى استنزاف ميزانيتك، حيث يكلف كل نقرة غير ملائمة مالاً دون أن تؤدي إلى عملية بيع. على سبيل المثال، إذا استهدفت شركة تبيع أحذية جلدية فاخرة كلمات رئيسية عامة مثل “شراء أحذية”، فقد تجذب نقرات من أشخاص مهتمين بالأحذية الرياضية أو الصنادل، وهي ليست ما تقدمه الشركة. يمكن أن يؤدي هذا الخلل في استهداف الكلمات الرئيسية إلى إنفاق إعلاني ضائع وانخفاض في العائد على الاستثمار. يجب على الشركات فهم هذا المفهوم لتجنب الخسائر المالية غير الضرورية وتركيز ميزانيتها على الكلمات الصحيحة.
دور الكلمات السلبية
الكلمات السلبية هي أداة أساسية في أي حملة إعلانات Google. فهي تتيح للمعلنين استبعاد مصطلحات بحث محددة من تفعيل إعلاناتهم، مما يضمن أن عمليات البحث ذات الصلة فقط هي التي تؤدي إلى ظهور الإعلان. على سبيل المثال، يمكن أن تساعد الكلمات السلبية مثل “رخيص” أو “تخفيض” شركة الأحذية الجلدية على تجنب النقرات من أشخاص غير مهتمين بالمنتجات الفاخرة. من خلال إعداد قائمة دقيقة بالكلمات السلبية، يمكن للشركات تحسين إنفاقها الإعلاني، وتقليل النقرات غير المرغوبة، وزيادة فعالية حملاتها بشكل عام.
هل أنت مستعد لتنمية عملك؟
ابدأ تجربتك المجانية اليوم وشاهد النتائج في غضون أيام.
استخدام الذكاء الاصطناعي في إدارة الكلمات الرئيسية
يغيّر الذكاء الاصطناعي طريقة إدارة المعلنين لحملات إعلانات Google. تم تصميم أدوات الذكاء الاصطناعي مثل FlowHunt لتجميع الكلمات الرئيسية، مما يساعد الشركات على تحديد الكلمات المرتبطة وتنظيمها بشكل أكثر فعالية. تعمل هذه الأتمتة على تبسيط عملية العثور على الكلمات الإيجابية والسلبية، مما يقلل من العمل اليدوي المطلوب في إدارة الحملات. تُمكّن إدارة الكلمات الرئيسية المدفوعة بالذكاء الاصطناعي من إجراء تغييرات في الوقت الفعلي استنادًا إلى بيانات الأداء، مما يضمن تحسين الإنفاق الإعلاني باستمرار لتحقيق أفضل عائد استثمار.
استراتيجيات لتقليل الإنفاق على الكلمات غير المرغوبة
لتقليل الإنفاق على الكلمات غير المرغوبة، يجب على الشركات اعتماد عدة استراتيجيات:
تحديث قائمة الكلمات الرئيسية بانتظام لتواكب اتجاهات السوق المتغيرة واهتمامات المستهلكين.
تطبيق استراتيجية قوية للكلمات السلبية من خلال البحث والتحديث المستمر لقائمة المصطلحات التي تريد استبعادها.
مراقبة الحملات وتعديلها بناءً على بيانات الأداء.
تحليل الكلمات التي تؤدي إلى مبيعات وتلك التي لا تؤدي لتحسين الاستهداف وتعظيم الإنفاق الإعلاني.
انضم إلى نشرتنا الإخبارية
احصل على أحدث النصائح والاتجاهات والعروض مجانًا.
دراسة حالة: نهج PostAffiliatePro
كانت PostAffiliatePro تواجه مشكلات في إنفاقها الإعلاني الشهري، تكافح لتحقيق العائد المرغوب من حملات إعلانات Google الخاصة بها. قررت الشركة استخدام الذكاء الاصطناعي لمعالجة هذه المشكلة. من خلال دمج الأدوات المدفوعة بالذكاء الاصطناعي، قامت الشركة بأتمتة عملية إدارة الكلمات الرئيسية، وحددت الكلمات الإيجابية والسلبية بدقة أكبر. سمح لهم هذا التغيير بتحسين الإنفاق الإعلاني، مما أدى إلى تقليل التكاليف بشكل كبير وتحسين كفاءة الحملة. تبرز تجربتهم فوائد استخدام تقنية الذكاء الاصطناعي لإدارة الإنفاق على الكلمات الرئيسية بفعالية. يتم تحليل كل كلمة جديدة خلال ساعة من ظهورها الأول. تساعد هذه السرعة على التقاط الكلمات السلبية قبل أن يتمكن الزوار من النقر على الإعلان في Google.
معدل تحويل محسن (فقط البحث ذو الصلة يجلب المزيد من المبيعات)
مصادر إضافية
للمهتمين بمعرفة المزيد حول إدارة الكلمات الرئيسية الفعالة وتحسين الحملات باستخدام الذكاء الاصطناعي، يمكنكم استكشاف هذه المصادر:
إليكم البرنامج النصي الذي نقوم بتشغيله كل ساعة لتقييم مجموعات الكلمات الرئيسية.
يهدف هذا البرنامج النصي إلى أتمتة العديد من المهام المتعلقة بإدارة حملات إعلانات Google. يتفاعل مع Google Sheets للحصول على الإعدادات والتهيئة، ويقوم بعمليات على حسابات إعلانات Google، مثل تحليل مصطلحات البحث، وإضافة أو استبعاد الكلمات الرئيسية، والتكامل مع واجهة FlowHunt API لتجميع الكلمات الرئيسية باستخدام الذكاء الاصطناعي المتقدم.
ورقة Google لإدارة إعدادات البرنامج النصي
تطبيق الكلمات السلبية تلقائياً على مجموعات الإعلانات
الدالة الرئيسية
يتم الاحتفاظ بمنطق التحكم الأساسي في الدالة main(). تفتح هذه الدالة مستند Google Sheets المحدد بواسطة spreadsheetURL، وتسترجع الإعدادات اللازمة مثل apiKey وcountry وlanguage وغيرها.
في البداية، يحاول النظام إضافة أي كلمات رئيسية إيجابية جديدة إلى مجموعة FlowHunt. إذا تم ذلك بنجاح، ينتقل لتحليل مصطلحات البحث غير المخصصة.
تحليل الكلمات الرئيسية
تحليل الكلمات غير المخصصة: تتنقل الدالة عبر جميع مجموعات الإعلانات في الحساب التي تم وضع علامة عليها بتسمية محددة. تسترجع مصطلحات البحث من إعلانات Google التي لم يتم استهدافها حاليًا وكان لها ظهور واحد على الأقل.
يستخدم النظام واجهة FlowHunt API للعثور على كلمات مماثلة للكلمة التي يتم تحليلها حاليًا، مع تصفيتها بناءً على معيار minimumMatch المحدد.
يتم إما إضافة مصطلحات البحث التي تطابق المعايير ككلمات إيجابية أو تحويلها إلى كلمات سلبية إذا لم تستوفِ المعايير، مع تحديث ورقة Google المناسبة بهذه المعلومات وتحديث حملات إعلانات Google الخاصة بك أيضاً.
تكامل FlowHunt
التفاعل مع API: يعتمد البرنامج النصي على الدالة callFlowHuntApi() للتفاعل مع واجهة FlowHunt API لمهام متعددة، منها استرجاع معرّفات مساحة العمل وتجميع الكلمات الرئيسية.
إضافة الكلمات إلى المجموعة: تدفع هذه الدالة الكلمات الرئيسية الإيجابية إلى FlowHunt للتجميع، مما يضمن تحديثها ببيانات استعلامات البحث الحية من إعلانات Google.
يتم تسجيل الكلمات المضافة والسلبية في أوراق منفصلة للمتابعة والمراجعة المستمرة.
طريقة الاستخدام
لنشر هذا البرنامج النصي، يحتاج المستخدمون إلى:
توفير رابط Google Sheets صالح والتأكد من وجود الأوراق اللازمة (“Settings”، “AddedKW”، “NegativeKW”).
ضبط Google Sheets باستخدام مفتاح FlowHunt API الصحيح، وأكواد الدول، والإعدادات التشغيلية الأخرى.
التأكد من تنفيذ البرنامج النصي في بيئة برمجة إعلانات Google مع تفعيل الوصول المناسب إلى API.
أضف البرنامج النصي إلى إعلانات Google الخاصة بك من خلال قائمة الأدوات -> الإجراءات الجماعية -> البرمجيات.
لا تنس وضع الرابط الحقيقي لوثيقة Google Sheet الخاصة بك. الباقي هو عملنا السحري. نحن نحدد الكلمات الرئيسية التي تنتمي إلى الحملة ونقوم بأتمتة إدارتها (سواء كانت سلبية أو إيجابية).
برنامج نصي لإعلانات Google لأتمتة إدارة الكلمات السلبية
//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;
}
الأسئلة الشائعة
تمنع الكلمات السلبية ظهور إعلاناتك لعمليات البحث غير الملائمة، مما يقلل من الإنفاق الضائع ويحسن عائد الاستثمار للحملة من خلال التركيز فقط على الاستفسارات الأكثر صلة.
تحلل أدوات الذكاء الاصطناعي مثل FlowHunt بيانات البحث في الوقت الفعلي، وتحدد الكلمات غير الملائمة، وتقوم تلقائيًا بتحديث حملاتك بالكلمات السلبية، مما يوفر الوقت ويزيد من الكفاءة.
توقع زيادة معدلات التحويل وتقليل الإنفاق على النقرات غير الملائمة وحملات أكثر كفاءة حيث يقوم الذكاء الاصطناعي بتحسين قوائم الكلمات الرئيسية والاستهداف بشكل مستمر.
ستحتاج إلى ربط حسابك في إعلانات Google، وتكوين الإعدادات في Google Sheet، ونشر البرنامج النصي المقدم لتمكين إدارة الكلمات الرئيسية المؤتمتة والمدعومة بالذكاء الاصطناعي من FlowHunt.
فيكتور زيمان هو شريك مالك في QualityUnit. حتى بعد 20 عامًا من قيادة الشركة، لا يزال في الأساس مهندس برمجيات، متخصص في الذكاء الاصطناعي، وتحسين محركات البحث البرمجية، وتطوير الخلفيات. لقد ساهم في العديد من المشاريع، بما في ذلك LiveAgent و PostAffiliatePro و FlowHunt و UrlsLab والعديد غيرها.
فيكتور زيمان
المدير التنفيذي، مهندس ذكاء اصطناعي
قم بأتمتة إعلانات Google الخاصة بك باستخدام الذكاء الاصطناعي
هل أنت مستعد لتعظيم عائد الاستثمار في إعلانات Google؟ اكتشف كيف تدير الأتمتة المدعومة بالذكاء الاصطناعي كلماتك السلبية وتحسن إنفاقك الإعلاني.
تدفق الأسبوع #2: كاتب الذكاء الاصطناعي الذي يحول كلمة مفتاحية واحدة إلى منشور مدونة كامل
تدفق الأسبوع #2 هو مولد المدونة المتقدم — كاتب ذكاء اصطناعي مجاني يأخذ كلمة مفتاحية واحدة ويعيد مقالة بحثية كاملة ومهيكلة لتحسين محركات البحث تتجاوز 1500 كلمة ف...
فهم تحسين حملات الدفع لكل نقرة (PPC) وتجميع الكلمات المفتاحية
تعلّم كيفية تحسين حملات الدفع لكل نقرة (PPC) وإتقان تجميع الكلمات المفتاحية لتحقيق ملاءمة أعلى، وتحسين درجات الجودة، وزيادة العائد على الاستثمار، وإدارة الحملات...