المكوّنات الاختيارية في "حملات الأداء الأفضل"

أهداف الإحالات الناجحة

عند إنشاء "حملة أداء أفضل"، يتم تلقائيًا إنشاء سلسلة من أهداف الإحالات الناجحة التي تتطابق مع CustomerConversionGoals في الحساب. يمكنك تخصيص هذه الأهداف لكل "حملة أداء أفضل" من خلال تعديلها.

لإجراء ذلك، عليك أولاً جلب رقم تعريف الحملة لـ "حملات الأداء الأفضل" وقائمة بجميع أهداف الإحالات الناجحة للعملاء. في ما يلي مثال على تغيير أهداف حملة واحدة، ولكن يمكنك أيضًا إعداد الرمز البرمجي لتكرار حلقات التكرار من خلال عدة "حملات أداء أفضل".

// Query for a campaign by name. Update this logic to pull the campaigns you'd
// like to edit
const campaignName = "My PMax campaign";
let campaignId = "";

const search = AdsApp.search(`SELECT campaign.id FROM campaign WHERE campaign.name = "${campaignName}"`);
if (search.hasNext()) {
  campaignId = search.next().campaign.id;
  console.log(`Updating conversion goals for ${campaignName}: ${campaignId}`);
}
else
{
  console.log(`No campaign named "${campaignName}" found`);
  // Perform further error handling here
}

// Query for a list of customer conversion goals
const searchResults = AdsApp.search(
  `SELECT
     customer_conversion_goal.category,
     customer_conversion_goal.origin
   FROM customer_conversion_goal`
);

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

ننصحك بإعداد أهداف الإحالات الناجحة في معاملة منفصلة عن باقي عملية إنشاء الحملة. CampaignConversionGoalOperation تتطلّب partialFailure للطلب ضبطها على false. إذا أردت تشغيل هذا الرمز البرمجي في المعاملة نفسها التي تنشئ فيها الحملة أولاً، عليك ضبط المجموعة الكاملة من العمليات على إيقاف ميزة "الفشل الجزئي". يوضّح مثال الرمز البرمجي هذا كيفية إجراء هذه العملية في معاملة منفصلة.

operations = [];
while (searchResults.hasNext()) {
  const row = searchResults.next();
  const conversionGoal = row.customerConversionGoal;

  operations.push({
    "campaignConversionGoalOperation": {
      "update": {
        "resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
        // Insert your logic here to determine whether you want this particular
        // campaign conversion goal to be biddable or not.
        // This code will just default everything to being biddable, but that
        // is not necessarily best for your use case.
        "biddable": true
      },
      "updateMask": "biddable"
    }
  });
}

AdsApp.mutateAll(operations, {partialFailure: false});

استهداف الحملة

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

ليست هناك حاجة إلى معايير إضافية لإنشاء "حملة أداء أفضل"، ولكن يمكن أن تكون مفيدة للمساعدة في تقييد الاستهداف استنادًا إلى حالة الاستخدام. يوضّح مثال الرمز البرمجي التالي كيفية إعداد هدف الموقع الجغرافي. يمكنك الرجوع إلى مستندات CampaignCriterion للاطّلاع على تنسيق أنواع المعايير الأخرى.

يمكنك إنشاء هذه المعايير مع الحملة نفسها كجزء من طلب mutateAll نفسه. يفترض مثال الرمز البرمجي هذا أنّك تنظّم الرمز البرمجي بهذه الطريقة.

operations.push({
  "campaignCriterionOperation": {
    "create": {
      "campaign": campaignOperation.campaignOperation.create.resourceName,
      "negative": false,
      "location": {
        // 1023191 represents New York City
        "geoTargetConstant": "geoTargetConstants/1023191"
      }
    }
  }
});

إشارات مجموعة مواد العرض

يُرجى الاطّلاع على إشارات مجموعة مواد العرض في مستندات واجهة برمجة التطبيقات قبل البدء. يتم إعداد هذه الإشارات من خلال ربط مجموعة مواد عرض بمعيار حالي AudienceInfo أو SearchThemeInfo. إذا أردت استخدام جمهور بدلاً من ذلك، حدِّد حقل audience بدلاً من حقل searchTheme باستخدام اسم مورد الجمهور.

operations.push({
  "assetGroupSignalOperation": {
    "create": {
      "assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
      "searchTheme": {
        "text": "mars cruise"
      }
    }
  }
});