أتمتة الكلمات السلبية في إعلانات Google باستخدام الذكاء الاصطناعي

أتمتة الكلمات السلبية في إعلانات Google باستخدام الذكاء الاصطناعي

يقوم FlowHunt بأتمتة إدارة الكلمات السلبية في إعلانات Google باستخدام الذكاء الاصطناعي، مما يساعد الشركات على تقليل التكاليف وتحسين الإنفاق الإعلاني وتحقيق نتائج أفضل للحملة بسهولة.

فهم الإنفاق على الكلمات غير المرغوبة

يحدث الإنفاق على الكلمات غير المرغوبة عندما تظهر إعلاناتك في نتائج بحث لا تتوافق مع ما تبيعه. يمكن أن يؤدي ذلك بسرعة إلى استنزاف ميزانيتك، حيث يكلف كل نقرة غير ملائمة مالاً دون أن تؤدي إلى عملية بيع. على سبيل المثال، إذا استهدفت شركة تبيع أحذية جلدية فاخرة كلمات رئيسية عامة مثل “شراء أحذية”، فقد تجذب نقرات من أشخاص مهتمين بالأحذية الرياضية أو الصنادل، وهي ليست ما تقدمه الشركة. يمكن أن يؤدي هذا الخلل في استهداف الكلمات الرئيسية إلى إنفاق إعلاني ضائع وانخفاض في العائد على الاستثمار. يجب على الشركات فهم هذا المفهوم لتجنب الخسائر المالية غير الضرورية وتركيز ميزانيتها على الكلمات الصحيحة.

دور الكلمات السلبية

الكلمات السلبية هي أداة أساسية في أي حملة إعلانات Google. فهي تتيح للمعلنين استبعاد مصطلحات بحث محددة من تفعيل إعلاناتهم، مما يضمن أن عمليات البحث ذات الصلة فقط هي التي تؤدي إلى ظهور الإعلان. على سبيل المثال، يمكن أن تساعد الكلمات السلبية مثل “رخيص” أو “تخفيض” شركة الأحذية الجلدية على تجنب النقرات من أشخاص غير مهتمين بالمنتجات الفاخرة. من خلال إعداد قائمة دقيقة بالكلمات السلبية، يمكن للشركات تحسين إنفاقها الإعلاني، وتقليل النقرات غير المرغوبة، وزيادة فعالية حملاتها بشكل عام.

استخدام الذكاء الاصطناعي في إدارة الكلمات الرئيسية

يغيّر الذكاء الاصطناعي طريقة إدارة المعلنين لحملات إعلانات Google. تم تصميم أدوات الذكاء الاصطناعي مثل FlowHunt لتجميع الكلمات الرئيسية، مما يساعد الشركات على تحديد الكلمات المرتبطة وتنظيمها بشكل أكثر فعالية. تعمل هذه الأتمتة على تبسيط عملية العثور على الكلمات الإيجابية والسلبية، مما يقلل من العمل اليدوي المطلوب في إدارة الحملات. تُمكّن إدارة الكلمات الرئيسية المدفوعة بالذكاء الاصطناعي من إجراء تغييرات في الوقت الفعلي استنادًا إلى بيانات الأداء، مما يضمن تحسين الإنفاق الإعلاني باستمرار لتحقيق أفضل عائد استثمار.

استراتيجيات لتقليل الإنفاق على الكلمات غير المرغوبة

لتقليل الإنفاق على الكلمات غير المرغوبة، يجب على الشركات اعتماد عدة استراتيجيات:

  • تحديث قائمة الكلمات الرئيسية بانتظام لتواكب اتجاهات السوق المتغيرة واهتمامات المستهلكين.
  • تطبيق استراتيجية قوية للكلمات السلبية من خلال البحث والتحديث المستمر لقائمة المصطلحات التي تريد استبعادها.
  • مراقبة الحملات وتعديلها بناءً على بيانات الأداء.
  • تحليل الكلمات التي تؤدي إلى مبيعات وتلك التي لا تؤدي لتحسين الاستهداف وتعظيم الإنفاق الإعلاني.

دراسة حالة: نهج PostAffiliatePro

كانت PostAffiliatePro تواجه مشكلات في إنفاقها الإعلاني الشهري، تكافح لتحقيق العائد المرغوب من حملات إعلانات Google الخاصة بها. قررت الشركة استخدام الذكاء الاصطناعي لمعالجة هذه المشكلة. من خلال دمج الأدوات المدفوعة بالذكاء الاصطناعي، قامت الشركة بأتمتة عملية إدارة الكلمات الرئيسية، وحددت الكلمات الإيجابية والسلبية بدقة أكبر. سمح لهم هذا التغيير بتحسين الإنفاق الإعلاني، مما أدى إلى تقليل التكاليف بشكل كبير وتحسين كفاءة الحملة. تبرز تجربتهم فوائد استخدام تقنية الذكاء الاصطناعي لإدارة الإنفاق على الكلمات الرئيسية بفعالية. يتم تحليل كل كلمة جديدة خلال ساعة من ظهورها الأول. تساعد هذه السرعة على التقاط الكلمات السلبية قبل أن يتمكن الزوار من النقر على الإعلان في Google.

improved conversion rate معدل تحويل محسن (فقط البحث ذو الصلة يجلب المزيد من المبيعات)

مصادر إضافية

للمهتمين بمعرفة المزيد حول إدارة الكلمات الرئيسية الفعالة وتحسين الحملات باستخدام الذكاء الاصطناعي، يمكنكم استكشاف هذه المصادر:

برنامج نصي لإعلانات Google لتقييم كل كلمة جديدة

إليكم البرنامج النصي الذي نقوم بتشغيله كل ساعة لتقييم مجموعات الكلمات الرئيسية.

يهدف هذا البرنامج النصي إلى أتمتة العديد من المهام المتعلقة بإدارة حملات إعلانات Google. يتفاعل مع Google Sheets للحصول على الإعدادات والتهيئة، ويقوم بعمليات على حسابات إعلانات Google، مثل تحليل مصطلحات البحث، وإضافة أو استبعاد الكلمات الرئيسية، والتكامل مع واجهة FlowHunt API لتجميع الكلمات الرئيسية باستخدام الذكاء الاصطناعي المتقدم.

Google Sheet to manage script settings ورقة Google لإدارة إعدادات البرنامج النصي

Negative keywords automatically applied to Ad groups تطبيق الكلمات السلبية تلقائياً على مجموعات الإعلانات

الدالة الرئيسية

  • يتم الاحتفاظ بمنطق التحكم الأساسي في الدالة 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.

Add script to your Google Ads in menu Tools -> Bulk Actions -> Scripts أضف البرنامج النصي إلى إعلانات Google الخاصة بك من خلال قائمة الأدوات -> الإجراءات الجماعية -> البرمجيات.

لا تنس وضع الرابط الحقيقي لوثيقة Google Sheet الخاصة بك. الباقي هو عملنا السحري. نحن نحدد الكلمات الرئيسية التي تنتمي إلى الحملة ونقوم بأتمتة إدارتها (سواء كانت سلبية أو إيجابية).

برنامج نصي لإعلانات Google لأتمتة إدارة الكلمات السلبية

//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;
}

الأسئلة الشائعة

لماذا تعتبر الكلمات السلبية مهمة في إعلانات Google؟

تمنع الكلمات السلبية ظهور إعلاناتك لعمليات البحث غير الملائمة، مما يقلل من الإنفاق الضائع ويحسن عائد الاستثمار للحملة من خلال التركيز فقط على الاستفسارات الأكثر صلة.

كيف يقوم الذكاء الاصطناعي بأتمتة إدارة الكلمات السلبية؟

تحلل أدوات الذكاء الاصطناعي مثل FlowHunt بيانات البحث في الوقت الفعلي، وتحدد الكلمات غير الملائمة، وتقوم تلقائيًا بتحديث حملاتك بالكلمات السلبية، مما يوفر الوقت ويزيد من الكفاءة.

ما هي النتائج المتوقعة من أتمتة الكلمات السلبية باستخدام الذكاء الاصطناعي؟

توقع زيادة معدلات التحويل وتقليل الإنفاق على النقرات غير الملائمة وحملات أكثر كفاءة حيث يقوم الذكاء الاصطناعي بتحسين قوائم الكلمات الرئيسية والاستهداف بشكل مستمر.

كيف أقوم بإعداد أتمتة FlowHunt لإعلانات Google الخاصة بي؟

ستحتاج إلى ربط حسابك في إعلانات Google، وتكوين الإعدادات في Google Sheet، ونشر البرنامج النصي المقدم لتمكين إدارة الكلمات الرئيسية المؤتمتة والمدعومة بالذكاء الاصطناعي من FlowHunt.

فيكتور زيمان هو شريك مالك في QualityUnit. حتى بعد 20 عامًا من قيادة الشركة، لا يزال في الأساس مهندس برمجيات، متخصص في الذكاء الاصطناعي، وتحسين محركات البحث البرمجية، وتطوير الخلفيات. لقد ساهم في العديد من المشاريع، بما في ذلك LiveAgent و PostAffiliatePro و FlowHunt و UrlsLab والعديد غيرها.

فيكتور زيمان
فيكتور زيمان
المدير التنفيذي، مهندس ذكاء اصطناعي

قم بأتمتة إعلانات Google الخاصة بك باستخدام الذكاء الاصطناعي

هل أنت مستعد لتعظيم عائد الاستثمار في إعلانات Google؟ اكتشف كيف تدير الأتمتة المدعومة بالذكاء الاصطناعي كلماتك السلبية وتحسن إنفاقك الإعلاني.

اعرف المزيد

وكيل PPC الذكي مع أتمتة العبارات السلبية
وكيل PPC الذكي مع أتمتة العبارات السلبية

وكيل PPC الذكي مع أتمتة العبارات السلبية

قم بأتمتة العبارات السلبية في إعلانات Google باستخدام وكيل PPC الذكي من FlowHunt. استبعد العبارات غير الملائمة، قلل من الإنفاق المهدور، وحسّن التحويلات من خلال ...

2 دقيقة قراءة
PPC AI +3
عزل مصطلحات البحث ضروري لتحسين إعلانات الدفع لكل نقرة
عزل مصطلحات البحث ضروري لتحسين إعلانات الدفع لكل نقرة

عزل مصطلحات البحث ضروري لتحسين إعلانات الدفع لكل نقرة

تعرف على سبب أهمية عزل مصطلحات البحث في تحسين إعلانات الدفع لكل نقرة. اكتشف كيفية استهداف المصطلحات عالية الأداء، وزيادة العائد على الاستثمار، وخفض التكاليف، وت...

7 دقيقة قراءة
PPC Search Term Isolation +5
حوّل حملاتك مع أتمتة إدارة PPC: عزز التحويلات والكفاءة
حوّل حملاتك مع أتمتة إدارة PPC: عزز التحويلات والكفاءة

حوّل حملاتك مع أتمتة إدارة PPC: عزز التحويلات والكفاءة

اكتشف كيف يمكن أن تضاعف أتمتة إدارة PPC واستراتيجيات تحسين الكلمات المفتاحية المتقدمة معدلات التحويل لديك، وتقلل من الإنفاق الإعلاني، وتبسط حملاتك. تعرف على كيف...

4 دقيقة قراءة
PPC Keyword Optimization +6