রূপান্তর লক্ষ্য
আপনি যখন একটি পারফরম্যান্স ম্যাক্স ক্যাম্পেইন তৈরি করেন, তখন অ্যাকাউন্টের 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 এ সেট করা থাকতে হবে। আপনি যদি এই কোডটি সেই একই ট্রানজ্যাকশনে চালাতে চান যেখানে আপনি প্রথম ক্যাম্পেইনটি তৈরি করছেন, তাহলে আপনাকে অবশ্যই সমস্ত অপারেশনের জন্য partial failure বন্ধ করে দিতে হবে। এই উদাহরণ কোডটি দেখায় কিভাবে একটি পৃথক ট্রানজ্যাকশনে এই অপারেশনটি সম্পাদন করতে হয়।
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 ক্রাইটেরিয়নের সাথে লিঙ্ক করার মাধ্যমে এগুলো সেট আপ করা হয়। আপনি যদি এর পরিবর্তে অডিয়েন্স ব্যবহার করতে চান, তাহলে searchTheme ফিল্ডের পরিবর্তে অডিয়েন্সের রিসোর্স নামটিসহ audience ফিল্ডটি উল্লেখ করুন।
operations.push({
"assetGroupSignalOperation": {
"create": {
"assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
"searchTheme": {
"text": "mars cruise"
}
}
}
});