أهداف الإحالات الناجحة
عند إنشاء "حملة أداء أفضل"، يتم تلقائيًا إنشاء سلسلة من أهداف الإحالات الناجحة تتطابق مع 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"
}
}
}
});