AdsApp ব্যবহার করে পারফরম্যান্স সর্বোচ্চ প্রচারণা

গুগল অ্যাডস স্ক্রিপ্ট ব্যবহার করে আপনার পারফরম্যান্স ম্যাক্স ক্যাম্পেইনগুলো পরিচালনা করার সেরা উপায় হলো মিউটেট (mutate) স্ট্র্যাটেজি ব্যবহার করা, যা আপনার পারফরম্যান্স ম্যাক্স ক্যাম্পেইনগুলোর সরাসরি ব্যবস্থাপনার সুযোগ দেয়। পারফরম্যান্স ম্যাক্স ক্যাম্পেইন শুধুমাত্র 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');

লক্ষ্য করুন, শেষ ধাপে আপনাকে অবশ্যই অ্যাসেটের ধরন নির্দিষ্ট করতে হবে। গুগল অ্যাডস এপিআই ডকুমেন্টেশনে আপনি অ্যাসেটের প্রকারভেদের একটি সম্পূর্ণ তালিকা খুঁজে পাবেন।

বিদ্যমান কোনো অ্যাসেট ব্যবহার করতে, প্রথমে একটি অ্যাসেট সিলেক্টর তৈরি করুন:

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);