أهداف الإحالات الناجحة
عند إنشاء "حملة أداء أفضل"، يتم تلقائيًا إنشاء سلسلة من أهداف الإحالات الناجحة تتطابق مع CustomerConversionGoal
في الحساب. يمكنك تخصيص هذه الإعدادات لكلّ واحدة من "حملات الأداء الأفضل" من خلال تعديلها.
لإجراء ذلك، عليك أولاً استرداد رقم تعريف "حملات الأداء الأفضل" وقائمة بجميع أهداف الإحالات الناجحة للعملاء. في ما يلي مثال على تغيير أهداف إحدى الحملات، علمًا أنّه يمكنك أيضًا إعداد الرمز البرمجي لتكرار عدة "حملات أداء أفضل".
// 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"
}
}
}
});