Google Ads স্ক্রিপ্টের মাধ্যমে আপনার পারফর্ম্যান্স ম্যাক্স ক্যাম্পেন ম্যানেজ করার সেরা উপায় হল
মিউটেট স্ট্র্যাটেজি ব্যবহার করে আপনার
পারফর্ম্যান্স ম্যাক্স ক্যাম্পেন সরাসরি ম্যানেজ করা। mutate ফাংশন ব্যবহার করেই
শুধুমাত্র পারফর্ম্যান্স ম্যাক্স ক্যাম্পেন তৈরি করা যায়। তবে, আপনি চাইলে পারফর্ম্যান্স ম্যাক্স ক্যাম্পেন
রিট্রিভ করতে, অ্যাসেট গ্রুপ ম্যানেজ করতে এবং রিপোর্ট রান করাতে অন্যান্য AdsApp অবজেক্টও
ব্যবহার করতে পারেন।
পারফর্ম্যান্স ম্যাক্স ক্যাম্পেন ফিরিয়ে আনা
AdsApp অবজেক্টের performanceMaxCampaigns কালেকশনের মাধ্যমে
পারফর্ম্যান্স ম্যাক্স ক্যাম্পেন উপলভ্য। আপনি আগের মতোই
সেগুলি ফিরিয়ে আনতে পারবেন:
const campaignName = "My Performance Max campaign";
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
অন্যান্য কিছু ক্যাম্পেনের ধরনের মতো, পারফর্ম্যান্স ম্যাক্স ক্যাম্পেনে কোনও বিজ্ঞাপন গ্রুপ বা বিজ্ঞাপন অবজেক্ট থাকে না যা আপনি দেখতে পাবেন; অন্যান্য ক্যাম্পেনের জন্য এইসব ধারণার সাথে সম্পর্কিত সবকিছু আপনার সেট করা অ্যাসেট গ্রুপের উপর ভিত্তি করে আপনার জন্য অটোমেটিক ম্যানেজ করা হয়।
অ্যাসেট ও অ্যাসেট গ্রুপ
পারফর্ম্যান্স ম্যাক্স ক্যাম্পেনের বিজ্ঞাপন, ভিডিও, ছবি, শিরোনাম ও বিবরণের মতো অ্যাসেট থেকে রান করে—এগুলি হয় আপনার দেওয়া অথবা অটোমেটিক তৈরি করা। কী ধরনের অ্যাসেট প্রয়োজন তার সম্পূর্ণ ওভারভিউ পেতে, Google Ads API পারফর্ম্যান্স ম্যাক্স অ্যাসেট গাইড দেখুন।
পারফর্ম্যান্স ম্যাক্স ক্যাম্পেনের অ্যাসেটগুলি একটি অ্যাসেট গ্রুপে একসাথে বান্ডিল করা হয়, এবং প্রতিটি পারফর্ম্যান্স ম্যাক্স ক্যাম্পেনে অন্তত একটি অ্যাসেট গ্রুপ থাকতে হবে। আপনি স্ক্রিপ্টে সরাসরি এইসব অ্যাসেট গ্রুপ তৈরি করতে পারবেন না, তবে আগে থেকে থাকা অ্যাসেট গ্রুপ থেকে অ্যাসেট যোগ করতে ও সরাতে পারবেন।
অ্যাসেট গ্রুপে অ্যাসেট যোগ করুন
প্রথমে, অ্যাসেট তৈরি করুন:
const imageUrl = "http://www.example.com/example.png";
const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
const assetOperation = AdsApp.adAssets().newImageAssetBuilder()
.withName("new asset name")
.withData(imageBlob)
.build();
const imageAsset = assetOperation.getResult();
তারপর, আপনার তৈরি করা অ্যাসেট ব্যবহার করে, আগে থেকে থাকা অ্যাসেট গ্রুপে এটি যোগ করুন:
// First, fetch the Performance Max campaign we want to operate on.
const campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition(`campaign.name = '${campaignName}'`)
.get();
let campaign;
if (campaignIterator.hasNext()) {
campaign = campaignIterator.next();
} else {
throw `No campaign found with name ${campaignName}.`
}
// Then, get that campaign's asset groups.
const assetGroupIterator = campaign.assetGroups().get();
// The campaign must have at least one asset group, so we can just assume so here.
const assetGroup = assetGroupIterator.next();
// Add the asset from the previous step.
assetGroup.addAsset(imageAsset, 'MARKETING_IMAGE');
মনে রাখবেন, শেষ ধাপে আপনাকে অবশ্যই অ্যাসেটের ধরন উল্লেখ করতে হবে। আপনি Google Ads API ডকুমেন্টেশন থেকে অ্যাসেটের ধরনের সম্পূর্ণ তালিকা দেখতে পাবেন
আগে থেকে থাকা অ্যাসেট ব্যবহার করতে, প্রথমে একটি অ্যাসেট বাছাইকারী তৈরি করুন:
const assetSelector = AdsApp.adAssets().assets();
তারপরে, আপনি যে অ্যাসেট নিয়ে কাজ করতে চান, সেটির তালিকা ছোট করতে withCondition ফিল্টার ব্যবহার করুন।
ফিল্টার বিকল্পের সম্পূর্ণ তালিকা দেখতে AssetSelector দেখুন।
সবশেষে, অন্যান্য এন্টিটির মতো করে ইটারেটর ফেচ করুন এবং ইটারেট করুন:
const assetIterator = assetSelector.get();
for (const asset of assetIterator) {
...
}
টেক্সট অ্যাসেট
টেক্সট অ্যাসেট একটু অন্যভাবে কাজ করে, কারণ আপনাকে আগে থেকে অ্যাসেট তৈরি করতে হয় না। আপনি অ্যাসেটের পরিবর্তে শুধু টেক্সট উল্লেখ করবেন এবং সিস্টেম আপনার জন্য অটোমেটিক অ্যাসেট তৈরি করবে। টেক্সটটি আগে থেকে থাকা কোনও টেক্সট অ্যাসেটের হুবহু ডুপ্লিকেট হলে, তার পরিবর্তে আগে থেকে থাকা অ্যাসেটটি আবার ব্যবহার করা হবে।
যেমন, এখানে একটি শিরোনাম অ্যাসেট তৈরি করার পদ্ধতি দেওয়া হল:
assetGroup.addAsset('asset text here', 'HEADLINE');
অ্যাসেট গ্রুপ থেকে অ্যাসেট সরানো
এছাড়াও, আপনি অ্যাসেট গ্রুপ থেকে কোনও অ্যাসেট সরিয়ে দিতে পারেন; তবে মনে রাখবেন যে ক্যাম্পেনটি বৈধ রাখতে প্রতিটি অ্যাসেট গ্রুপে নির্দিষ্ট ধরনের অ্যাসেটের ন্যূনতম সংখ্যা থাকতে হবে।
আগের উদাহরণে যোগ করা অ্যাসেট কীভাবে সরাতে হয় তা এখানে দেওয়া হল:
assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');
এছাড়াও, আপনি search
ফাংশনের মাধ্যমে কোনও নির্দিষ্ট অ্যাসেট গ্রুপের অ্যাসেটের তালিকা পেতে পারেন:
// The resource name is a unique identifier for this asset group.
const assetGroupName = assetGroup.getResourceName();
results = AdsApp.search(
`SELECT asset.resource_name, asset_group_asset.field_type
FROM asset_group_asset
WHERE asset_group.resource_name = '${assetGroupName}'`
);
এটি অ্যাসেটের রিসোর্স নামকে তার অনন্য শনাক্তকারী হিসেবে বেছে নেয়। ফলাফল আরও রিফাইন করতে,
আপনি asset.type বা asset.text_asset.text-এর মতো
অন্যান্য ফিল্ডও বেছে নিতে পারেন। নিজের কোয়েরি তৈরি করতে, এই ধরনের রিপোর্টের জন্য কোয়েরি বিল্ডার
ব্যবহার করুন।
টার্গেট অ্যাসেট পেয়ে গেলে, অ্যাসেট গ্রুপ থেকে অ্যাসেট সরাতে অ্যাসেট গ্রুপে remove কল করুন:
// This example assumes at least one asset is returned. We'll remove the first
// asset, whatever it is. In your code, customize this to choose the right
// asset to be removed.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);