Google Ads স্ক্রিপ্ট ব্যবহার করে আপনার Performance Max ক্যাম্পেইন পরিচালনা করার সর্বোত্তম উপায় হল আপনার Performance Max ক্যাম্পেইনগুলির সরাসরি ব্যবস্থাপনা প্রদানের জন্য mutate কৌশল ব্যবহার করা। Performance Max ক্যাম্পেইনগুলি শুধুমাত্র mutate ফাংশন দিয়ে তৈরি করা যেতে পারে। তবে, আপনি যদি চান তবে Performance Max ক্যাম্পেইনগুলি পুনরুদ্ধার করতে, সম্পদ গোষ্ঠী পরিচালনা করতে এবং প্রতিবেদনগুলি চালাতে অন্যান্য AdsApp অবজেক্টও ব্যবহার করতে পারেন।
পারফরম্যান্স ম্যাক্স প্রচারণার পুনরুদ্ধার
Performance Max ক্যাম্পেইনগুলি 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 Performance Max সম্পদ নির্দেশিকা দেখুন।
অ্যাসেট ফর পারফরম্যান্স ম্যাক্স ক্যাম্পেইনগুলিকে একটি অ্যাসেট গ্রুপে একত্রিত করা হয় এবং প্রতিটি পারফরম্যান্স ম্যাক্স ক্যাম্পেইনে কমপক্ষে একটি অ্যাসেট গ্রুপ থাকতে হবে। আপনি সরাসরি স্ক্রিপ্টে এই অ্যাসেট গ্রুপগুলি তৈরি করতে পারবেন না, তবে আপনি একটি বিদ্যমান অ্যাসেট গ্রুপ থেকে অ্যাসেট যোগ করতে এবং অপসারণ করতে পারবেন।
সম্পদ গ্রুপে সম্পদ যোগ করুন
প্রথমে, সম্পদ তৈরি করুন:
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}'`
);
This selects the asset's resource name as its unique identifier. You could select other fields as well, such as asset.type or asset.text_asset.text , to further refine the results. Use the query builder for this report type to craft your own query.
একবার আপনার লক্ষ্য সম্পদ হয়ে গেলে, সম্পদ গোষ্ঠী থেকে সম্পদটি সরাতে সম্পদ গোষ্ঠীতে 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);