গুগল অ্যাডস টেক্সট, ইমেজ এবং মোবাইল অ্যাডের মতো বিভিন্ন ধরনের অ্যাড সমর্থন করে। এই নির্দেশিকায় গুগল অ্যাডস স্ক্রিপ্ট ব্যবহার করে কীভাবে অ্যাড তৈরি, পুনরুদ্ধার এবং রিপোর্ট করতে হয়, তা আলোচনা করা হয়েছে। গুগল অ্যাডস দ্বারা সমর্থিত সমস্ত অ্যাডের প্রকারভেদ সম্পর্কে বিস্তারিত জানতে এপিআই (API) নির্দেশিকা দেখুন।
সৃষ্টি
স্ক্রিপ্টগুলো AdGroup ইনস্ট্যান্সের newAd() মেথড ব্যবহার করে বিজ্ঞাপন তৈরি করতে পারে। এটি একটি AdBuilderSpace রিটার্ন করে, যা সমর্থিত বিজ্ঞাপনের ধরনগুলোর জন্য বিল্ডার তৈরি করে।
নিচের কোড স্নিপেটটিতে দেখানো হয়েছে কীভাবে একটি রেসপন্সিভ সার্চ অ্যাড তৈরি করতে হয়:
let adOperation = adGroup.newAd().responsiveSearchAdBuilder()
.withHeadlines(["Headline 1", "Headline 2", "Headline 3"])
.withDescriptions(["Description 1", "Description 2"])
.withFinalUrl("http://www.example.com")
.withPath1("path1")
.withPath2("path2")
.build();
পরিদর্শন
সব ধরনের বিজ্ঞাপনের সাথে সম্পর্কিত কিছু তথ্য, যেমন বিজ্ঞাপনের আইডি এবং অনুমোদনের অবস্থা, একটি Ad থেকেই তাৎক্ষণিকভাবে পাওয়া যায়। এছাড়াও, যেকোনো বিজ্ঞাপন থামানো, চালু করা বা সরিয়ে ফেলা যায়।
কোনো বিজ্ঞাপনের ধরনের জন্য নির্দিষ্ট ফিল্ড, যেমন একটি রেসপন্সিভ সার্চ বিজ্ঞাপনের হেডলাইন, অ্যাক্সেস করতে asType() মেথড ব্যবহার করে একটি AdViewSpace তৈরি করুন। এটি Ad একটি বর্ধিত সংস্করণে অ্যাক্সেস দেয় যা ধরন-নির্দিষ্ট মেথডগুলো প্রকাশ করে।
নিম্নলিখিত কোড স্নিপেটটি প্রতিটি রেসপন্সিভ সার্চ অ্যাডের শিরোনামগুলো তুলে ধরে:
const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
let ad = iterator.next();
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
}
লক্ষ্য করুন যে, Type = RESPONSIVE_SEARCH_AD শর্তটি নিশ্চিত করে যে ইটারেটরের প্রতিটি বিজ্ঞাপনই একটি রেসপন্সিভ সার্চ বিজ্ঞাপন। ভুল ধরনের কোনো বিজ্ঞাপন দেখার চেষ্টা করলে একটি ত্রুটি দেখা দেবে যা আপনার স্ক্রিপ্টের নির্বাহ বন্ধ করে দেবে, তাই শুধুমাত্র যখন কোনো বিজ্ঞাপনের ধরন জানা থাকে তখনই ধরন-নির্দিষ্ট ফিল্ডগুলো দেখা গুরুত্বপূর্ণ।
নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে Ad.isType() পদ্ধতি ব্যবহার করে একটি বিজ্ঞাপন সঠিক প্রকারের কিনা তা নির্ধারণ করা যায়:
if (ad.isType().responsiveSearchAd()) {
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
let descriptions = responsiveSearchAd.getDescriptions();
}
যদিও আপনি সাধারণ সিলেক্টর ব্যবহার করে হেডলাইন টেক্সট দিয়ে বিজ্ঞাপন ফিল্টার করতে পারবেন না, তবে বিজ্ঞাপনগুলো পুনরুদ্ধার করার পর জাভাস্ক্রিপ্টে সেগুলো ফিল্টার করতে পারেন:
const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
let ad = iterator.next();
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
// Filter for ads containing a specific headline.
if (headlines.some(h => h.getText().includes("Special Offer"))) {
console.log(`Found ad with ID ${ad.getId()}`);
}
}
রিপোর্টিং
সাধারণ পরিসংখ্যানের পাশাপাশি বিজ্ঞাপনের ফিল্ডগুলো কোয়েরি করার জন্য ad_group_ad ভিউটি ব্যবহার করা যায়। উদাহরণস্বরূপ, আপনি ad_group_ad.ad.type ব্যবহার করে বিজ্ঞাপনের ধরনের ওপর ভিত্তি করে ফিল্টার করতে পারেন। নিচের কোড স্নিপেটটিতে দেখানো হয়েছে কীভাবে সমস্ত রেসপন্সিভ সার্চ বিজ্ঞাপনের পরিসংখ্যান সংগ্রহ করতে হয়:
const results = AdsApp.search(
"SELECT ad_group_ad.ad_group.id, " +
"ad_group_ad.ad.id, " +
"metrics.clicks, " +
"metrics.impressions, " +
"metrics.cost " +
"FROM ad_group_ad " +
"WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' " +
"AND segments.date DURING LAST_7_DAYS");
while (results.hasNext()) {
let row = results.next();
let adId = row.adGroupAd.ad.id;
let clicks = row.metrics.clicks;
...
}
অ্যাসেট কন্টেন্ট দ্বারা ফিল্টারিং
ব্যাপকভাবে হেডলাইন বা ডেসক্রিপশনের বিষয়বস্তু অনুযায়ী রেসপন্সিভ সার্চ অ্যাড ফিল্টার করতে, ad_group_ad_asset_view রিসোর্সটি ব্যবহার করুন। এই ভিউ প্রতিটি হেডলাইন এবং ডেসক্রিপশনকে একটি আলাদা সারি হিসেবে গণ্য করে, যা আপনাকে অ্যাসেটটির টেক্সটের উপর ভিত্তি করে ফিল্টার করার সুযোগ দেয়।
নিম্নলিখিত কোড স্নিপেটটি একটি নির্দিষ্ট শিরোনাম ধারণকারী সমস্ত রেসপন্সিভ সার্চ অ্যাডের পরিসংখ্যান পুনরুদ্ধার করে:
const results = AdsApp.search(
"SELECT ad_group_ad.ad.id, " +
"asset.text_asset.text, " +
"metrics.clicks, " +
"metrics.impressions " +
"FROM ad_group_ad_asset_view " +
"WHERE asset.text_asset.text LIKE '%Special Offer%' " +
"AND ad_group_ad_asset_view.field_type = 'HEADLINE'");
while (results.hasNext()) {
let row = results.next();
let adId = row.adGroupAd.ad.id;
let text = row.asset.textAsset.text;
let clicks = row.metrics.clicks;
console.log(`Ad ID ${adId} with headline "${text}" had ${clicks} clicks.`);
}
স্ক্রিপ্টে রিপোর্টিং সম্পর্কে আরও তথ্যের জন্য রিপোর্ট গাইডটি দেখুন।