Google বিজ্ঞাপন স্ক্রিপ্টের AdsManagerApp
ক্লাস আপনাকে আপনার ম্যানেজার অ্যাকাউন্টের অধীনে লিঙ্ক করা অ্যাকাউন্টগুলি পরিচালনা করতে সক্ষম করে। আপনি প্রতিটি অ্যাকাউন্টের জন্য একটি পৃথক স্ক্রিপ্ট তৈরি করার পরিবর্তে একটি একক স্ক্রিপ্টের মাধ্যমে আপনার সমস্ত বিজ্ঞাপনদাতা অ্যাকাউন্ট পরিচালনা করতে পারেন।
অ্যাকাউন্টের তালিকা পুনরুদ্ধার করুন
আপনি accounts
পদ্ধতি ব্যবহার করে ম্যানেজার অ্যাকাউন্টের অধীনে অ্যাকাউন্টগুলি পুনরুদ্ধার করতে পারেন, উদাহরণস্বরূপ:
const accountSelector = AdsManagerApp.accounts()
.withCondition('customer_client.descriptive_name = "My Account"');
const accountIterator = accountSelector.get();
অ্যাকাউন্টগুলিতে কিছু সীমাবদ্ধতা রয়েছে যা পুনরুদ্ধার করা যেতে পারে:
- ম্যানেজার অ্যাকাউন্টগুলি পুনরুদ্ধার করা যাবে না যদি আপনার মাল্টি-লেভেল হায়ারার্কি থাকে। শুধুমাত্র ক্লায়েন্ট অ্যাকাউন্ট নির্বাচন করা যেতে পারে.
- ডিফল্টরূপে, বন্ধ, বাতিল, এবং স্থগিত অ্যাকাউন্টগুলি ফেরত দেওয়া হয় না। আপনি
customer_client.status
এর জন্য একটি ভিন্ন ফিল্টার উল্লেখ করেwithCondition
কল করে এই আচরণটিকে ওভাররাইড করতে পারেন।
accounts
কল ডিফল্টরূপে ম্যানেজার অ্যাকাউন্ট অনুক্রমের অধীনে সমস্ত ক্লায়েন্ট অ্যাকাউন্টের তালিকা পুনরুদ্ধার করে। আপনার স্ক্রিপ্ট পুনরুদ্ধার করা অ্যাকাউন্টের সংখ্যা সীমাবদ্ধ করতে আপনি ManagedAccountSelector
ক্লাসের withLimit
পদ্ধতি ব্যবহার করতে পারেন। আরেকটি বিকল্প হল withIds
পদ্ধতি ব্যবহার করে তাদের গ্রাহক আইডি দ্বারা অ্যাকাউন্ট নির্বাচন করা:
// Hyphens in the account ID are optional.
const accountSelector = AdsManagerApp.accounts()
.withIds(['123-456-7890', '234-567-8901', '345-678-9012']);
ক্লায়েন্ট অ্যাকাউন্টে কাজ করুন
একবার আপনি ক্লায়েন্ট অ্যাকাউন্টগুলি পুনরুদ্ধার করার পরে, আপনি পুনরাবৃত্তিকারীর hasNext
এবং next
পদ্ধতিগুলি ব্যবহার করে তাদের মাধ্যমে পুনরাবৃত্তি করতে পারেন। একটি ক্লায়েন্ট অ্যাকাউন্টে এক্সিকিউশন প্রসঙ্গ স্যুইচ করতে আপনাকে select
পদ্ধতি ব্যবহার করতে হবে। আপনি একটি ক্লায়েন্ট অ্যাকাউন্ট নির্বাচন করার পরে, আপনি স্পষ্টভাবে অন্য অ্যাকাউন্ট নির্বাচন না করা পর্যন্ত ক্লায়েন্ট অ্যাকাউন্টে আরও যে কোনো API কল প্রযোজ্য হবে:
// Keep track of the manager account for future reference.
const managerAccount = AdsApp.currentAccount();
// Select your accounts
const accountIterator = AdsManagerApp.accounts()
// ... Write some logic here to select the accounts you want using
// withCondition or withIds
// Iterate through the list of accounts
for (const account of accountIterator) {
// Select the client account.
AdsManagerApp.select(account);
// Select campaigns under the client account
const campaignIterator = AdsApp.campaigns().get();
// Operate on client account
...
}
সমান্তরালভাবে অ্যাকাউন্টে কাজ করুন
Google বিজ্ঞাপন স্ক্রিপ্ট আপনাকে ManagedAccountSelector
ক্লাসের executeInParallel
পদ্ধতি ব্যবহার করে সমান্তরালভাবে একাধিক ক্লায়েন্ট অ্যাকাউন্টে কাজ করতে দেয়। executeInParallel
পদ্ধতিতে নিম্নলিখিত স্বাক্ষর রয়েছে:
function executeInParallel(functionName, optionalCallbackFunctionName, optionalInput);
executeInParallel
পদ্ধতি প্রতিটি ManagedAccount
এ functionName
দ্বারা নির্দিষ্ট একটি ফাংশন চালায় যা ManagedAccountSelector
সাথে মেলে। একবার সমস্ত অ্যাকাউন্ট প্রসেস হয়ে গেলে, কলব্যাক ফাংশন, যদি optionalCallbackFunctionName
দ্বারা নির্দিষ্ট করা থাকে, তা একবার কার্যকর করা হয়, যেকোন পরবর্তী প্রক্রিয়াকরণের জন্য তার যুক্তি হিসাবে ExecutionResult
অবজেক্টের একটি তালিকা পাস করে। সাধারণ ব্যবহার নীচে দেখানো হয়েছে:
function main() {
const accountSelector = AdsManagerApp.accounts()
.withLimit(50)
.withCondition('customer_client.currency_code = "USD"');
accountSelector.executeInParallel("processClientAccount", "afterProcessAllClientAccounts");
}
function processClientAccount() {
const clientAccount = AdsApp.currentAccount();
// Process your client account here.
...
// optionally, return a result, as text.
return "";
}
function afterProcessAllClientAccounts(results) {
for (const result of results) {
// Process the result further
...
}
}
functionName
দ্বারা নির্দিষ্ট করা ফাংশনটি ঐচ্ছিকভাবে একটি স্ট্রিং আর্গুমেন্ট ( optionalInput
) গ্রহণ করতে পারে। এই প্যারামিটারটি executeInParallel
দ্বারা বলা সমস্ত সমান্তরাল পদ্ধতিতে একটি অতিরিক্ত প্যারামিটার পাস করতে ব্যবহার করা যেতে পারে:
function main() {
const accountSelector = AdsManagerApp.accounts().withIds([1234567890, 3456787890]);
const sharedParameter = "INSERT_SHARED_PARAMETER_HERE";
accountSelector.executeInParallel("processClientAccount", null, sharedParameter);
}
function processClientAccount(sharedParameter) {
// Process your client account here.
...
}
আপনি যদি একটি JavaScript কনফিগারেশন অবজেক্ট পাস করতে চান যাতে অ্যাকাউন্ট-নির্দিষ্ট সেটিংস রয়েছে, আপনি প্রথমে JSON.stringify
পদ্ধতি ব্যবহার করে এটিকে একটি স্ট্রিংয়ে রূপান্তর করতে পারেন:
function main() {
...
const accountFlags = {
'1234567890': {
'label': 'Brand 1 campaigns',
},
'3456787890': {
'label': 'Brand 2 campaigns',
}
};
accountSelector.executeInParallel("processClientAccount", null,
JSON.stringify(accountFlags));
...
}
function processClientAccount(sharedParameter) {
const accountFlags = JSON.parse(sharedParameter);
// Process your client account here.
...
}
functionName
দ্বারা নির্দিষ্ট করা ফাংশন JSON.stringify
এর মাধ্যমে একটি বস্তুর পরিবর্তে একটি স্ট্রিংও ফেরত দিতে পারে:
function processClientAccount() {
...
const jsonObj = {value: 10, list: [1,2,3,4,5,6], name: "Joe Smith"};
return JSON.stringify(jsonObj);
}
প্রত্যাবর্তিত মানগুলি ExecutionResult
অবজেক্টের তালিকায় কলব্যাক ফাংশনে প্রেরণ করা হয়। আপনি যদি ফাংশন থেকে একটি JSON স্ট্রিং ফেরত দেন, তাহলে আপনি JSON.parse
পদ্ধতি ব্যবহার করে এটিকে একটি JavaScript অবজেক্টে রূপান্তর করতে পারেন:
function callbackFunctionName(results) {
for (var i = 0; i < results.length; i++) {
var resultObj = JSON.parse(results[i].getReturnValue());
}
}
executeInParallel
পদ্ধতিটি সর্বাধিক 50টি accounts
কাজ করে, তাই আপনার স্ক্রিপ্ট পুনরুদ্ধার করা অ্যাকাউন্টের সংখ্যা সীমিত করতে আপনাকে আপনার নিজস্ব বিধিনিষেধ প্রয়োগ করতে হবে। আপনার স্ক্রিপ্ট পুনরুদ্ধার করা অ্যাকাউন্টের সংখ্যা সীমাবদ্ধ করতে আপনি ManagedAccountSelector
ক্লাসের withLimit
বা withIds
পদ্ধতি ব্যবহার করতে পারেন।
কার্যকর করার সময়সীমা
বিজ্ঞাপন ম্যানেজার স্ক্রিপ্ট কার্যকর করার সময়সীমা সম্পর্কে বিশদ বিবরণের জন্য এই পৃষ্ঠাটি দেখুন।