নেটিভ অ্যাড হলো এমন বিজ্ঞাপন অ্যাসেট যা প্ল্যাটফর্মের নিজস্ব UI কম্পোনেন্টের মাধ্যমে ব্যবহারকারীদের কাছে উপস্থাপন করা হয়। এগুলো আপনার স্টোরিবোর্ডে ব্যবহৃত ক্লাসগুলো ব্যবহার করেই দেখানো হয় এবং আপনার অ্যাপের ভিজ্যুয়াল ডিজাইনের সাথে মিলিয়ে ফরম্যাট করা যায়।
যখন কোনো নেটিভ বিজ্ঞাপন লোড হয়, তখন আপনার অ্যাপ একটি অ্যাড অবজেক্ট পায়, যেটিতে এর অ্যাসেটগুলো থাকে, এবং এরপর Google Mobile Ads SDK -এর পরিবর্তে অ্যাপটিই সেগুলো প্রদর্শনের দায়িত্বে থাকে।
মোটামুটিভাবে বলতে গেলে, নেটিভ বিজ্ঞাপন সফলভাবে প্রয়োগ করার দুটি অংশ রয়েছে: SDK ব্যবহার করে একটি বিজ্ঞাপন লোড করা এবং তারপর আপনার অ্যাপে বিজ্ঞাপনের বিষয়বস্তু প্রদর্শন করা।
এই পৃষ্ঠায় দেখানো হয়েছে কীভাবে এসডিকে ব্যবহার করে নেটিভ বিজ্ঞাপন লোড করতে হয়।
পূর্বশর্ত
চালিয়ে যাওয়ার আগে, Google Mobile Ads SDK সেট আপ করুন ।
সর্বদা টেস্ট অ্যাড দিয়ে পরীক্ষা করুন
আপনার অ্যাপ তৈরি ও পরীক্ষা করার সময়, লাইভ বা প্রোডাকশন অ্যাডের পরিবর্তে টেস্ট অ্যাড ব্যবহার করা নিশ্চিত করুন।
টেস্ট অ্যাড লোড করার সবচেয়ে সহজ উপায় হলো iOS-এর নেটিভ অ্যাডের জন্য আমাদের নির্দিষ্ট টেস্ট অ্যাড ইউনিট আইডি ব্যবহার করা:
/21775744923/example/native
প্রতিটি অনুরোধের জন্য পরীক্ষামূলক বিজ্ঞাপন দেখানোর জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে, এবং আপনি কোডিং, টেস্টিং ও ডিবাগিং করার সময় আপনার নিজের অ্যাপে এটি ব্যবহার করতে পারেন। শুধু আপনার অ্যাপটি প্রকাশ করার আগে নিশ্চিত হয়ে নেবেন যে আপনি এটিকে আপনার নিজের অ্যাড ইউনিট আইডি দিয়ে প্রতিস্থাপন করেছেন।
Google Mobile Ads SDK টেস্ট অ্যাড সম্পর্কে বিস্তারিত জানতে, ‘টেস্ট অ্যাড সক্ষম করুন’ দেখুন।
বিজ্ঞাপন লোড করুন
নেটিভ বিজ্ঞাপনগুলি GADAdLoader ক্লাসের মাধ্যমে লোড করা হয়, যা GADAdLoaderDelegate প্রোটোকল অনুসারে তাদের ডেলিগেটদের কাছে বার্তা পাঠায়।
সিস্টেম-সংজ্ঞায়িত নেটিভ ফরম্যাটের পাশাপাশি, আপনি আপনার নিজস্ব কাস্টম নেটিভ বিজ্ঞাপন ফরম্যাটও তৈরি করতে পারেন যা সরাসরি-বিক্রিত নেটিভ বিজ্ঞাপনের জন্য ব্যবহার করা যেতে পারে। কাস্টম নেটিভ বিজ্ঞাপন ফরম্যাট আপনাকে আপনার অ্যাপে ইচ্ছামত স্ট্রাকচার্ড ডেটা পাঠাতে দেয়। এই বিজ্ঞাপনগুলো GADCustomNativeAd ক্লাস দ্বারা উপস্থাপিত হয়।
বিজ্ঞাপন লোডার শুরু করুন
বিজ্ঞাপন লোড করার আগে, আপনাকে অ্যাড লোডারটি ইনিশিয়ালাইজ করতে হবে। নিচের কোডটিতে দেখানো হয়েছে কিভাবে একটি GADAdLoader ইনিশিয়ালাইজ করতে হয়:
সুইফট
nativeAdUnitID জায়গায় আপনার অ্যাড ইউনিট আইডি বসান।
উদ্দেশ্য-সি
kNativeAdUnitID জায়গায় আপনার অ্যাড ইউনিট আইডি বসান।
আপনার একটি অ্যাড ইউনিট আইডি (আপনি টেস্ট আইডি ব্যবহার করতে পারেন), কোন নেটিভ ফরম্যাটগুলো অনুরোধ করতে চান তা নির্দিষ্ট করার জন্য adTypes অ্যারেতে পাস করার জন্য কনস্ট্যান্ট, এবং options প্যারামিটারে আপনি যে অপশনগুলো সেট করতে চান, সেগুলোর প্রয়োজন হবে। options প্যারামিটারের সম্ভাব্য মানগুলোর তালিকা Setting Native Ad Options পেজে পাওয়া যাবে।
adTypes অ্যারেটিতে নিম্নলিখিত ধ্রুবকগুলির মধ্যে এক বা একাধিক থাকা উচিত:
অ্যাড লোডার ডেলিগেট প্রয়োগ করুন
অ্যাড লোডার ডেলিগেটকে আপনার বিজ্ঞাপনের ধরনের জন্য নির্দিষ্ট প্রোটোকলগুলো প্রয়োগ করতে হবে। নেটিভ বিজ্ঞাপনের জন্য, GADNativeAdLoaderDelegate প্রোটোকলে একটি বার্তা অন্তর্ভুক্ত থাকে, যা একটি নেটিভ বিজ্ঞাপন লোড হয়ে গেলে ডেলিগেটের কাছে পাঠানো হয়।
সুইফট
func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self
// TODO: Display the native ad.
}
উদ্দেশ্য-সি
- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self;
// TODO: Display the native ad.
}
GADCustomNativeAdLoaderDelegate প্রোটোকলটিতে একটি বার্তা অন্তর্ভুক্ত রয়েছে, যা একটি কাস্টম টেমপ্লেট বিজ্ঞাপন লোড হয়ে গেলে ডেলিগেটের কাছে পাঠানো হয়।
সুইফট
func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
// To be notified of events related to the custom native ad interactions, set the delegate
// property of the native ad
customNativeAd.delegate = self
// TODO: Display the custom native ad.
}
উদ্দেশ্য-সি
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
// To be notified of events related to the custom native ad interactions, set the delegate
// property of the native ad
customNativeAd.delegate = self;
// TODO: Display the custom native ad.
}
বিজ্ঞাপন অনুরোধ করুন
আপনার GADAdLoader ইনিশিয়ালাইজ হয়ে গেলে, একটি অ্যাডের জন্য অনুরোধ করতে এর loadRequest: মেথডটি কল করুন:
সুইফট
adLoader.load(AdManagerRequest())
উদ্দেশ্য-সি
[self.adLoader loadRequest:[GAMRequest request]];
GADAdLoader এর ` loadRequest: ` মেথডটি ব্যানার এবং ইন্টারস্টিশিয়ালের মতোই GAMRequest অবজেক্ট গ্রহণ করে। অন্যান্য বিজ্ঞাপনের ধরনের মতোই, আপনি টার্গেটিং তথ্য যোগ করতে রিকোয়েস্ট অবজেক্ট ব্যবহার করতে পারেন।
একাধিক বিজ্ঞাপন লোড করুন (ঐচ্ছিক)
একটি অনুরোধে একাধিক বিজ্ঞাপন লোড করতে, GADAdLoader ইনিশিয়ালাইজ করার সময় GADMultipleAdsAdLoaderOptions অবজেক্টটি সেট করুন।
সুইফট
উদ্দেশ্য-সি
প্রতি অনুরোধে বিজ্ঞাপনের সংখ্যা সর্বোচ্চ পাঁচটিতে সীমাবদ্ধ, এবং এসডিকে যে অনুরোধ করা সঠিক সংখ্যক বিজ্ঞাপনই ফেরত দেবে, তার কোনো নিশ্চয়তা নেই।
ফেরত আসা গুগল বিজ্ঞাপনগুলো একে অপরের থেকে আলাদা হবে, তবে সংরক্ষিত ইনভেন্টরি বা তৃতীয় পক্ষের ক্রেতাদের বিজ্ঞাপনগুলো অনন্য হবে এমন কোনো নিশ্চয়তা নেই।
আপনি যদি মিডিয়েশন ব্যবহার করেন, তাহলে GADMultipleAdsAdLoaderOptions ক্লাসটি ব্যবহার করবেন না, কারণ যে অ্যাড ইউনিট আইডিগুলো মিডিয়েশনের জন্য কনফিগার করা হয়েছে, সেগুলোর ক্ষেত্রে একাধিক নেটিভ অ্যাডের অনুরোধ কাজ করে না।
লোডিং কখন শেষ হয়েছে তা নির্ধারণ করুন
কোনো অ্যাপ loadRequest: কল করার পর, নিম্নলিখিত কলগুলো ব্যবহার করে অনুরোধের ফলাফল পেতে পারে:
-
adLoader:didFailToReceiveAdWithError:GADAdLoaderDelegateএ -
adLoader:didReceiveNativeAd:GADNativeAdLoaderDelegateএ
একটিমাত্র বিজ্ঞাপনের অনুরোধের ফলে ওই পদ্ধতিগুলোর মধ্যে যেকোনো একটিকে একবার কল করা হবে।
একাধিক বিজ্ঞাপনের অনুরোধের ফলে উপরের পদ্ধতিগুলিতে অন্তত একটি কলব্যাক পাঠানো হবে, তবে তা অনুরোধ করা বিজ্ঞাপনের সর্বোচ্চ সংখ্যার চেয়ে বেশি হবে না।
এছাড়াও, GADAdLoaderDelegate adLoaderDidFinishLoading নামক একটি কলব্যাক রয়েছে। এই ডেলিগেট মেথডটি নির্দেশ করে যে একটি অ্যাড লোডার বিজ্ঞাপন লোড করা শেষ করেছে এবং এই অনুরোধের জন্য আর কোনো বিজ্ঞাপন বা ত্রুটি রিপোর্ট করা হবে না। একই সময়ে বেশ কয়েকটি নেটিভ বিজ্ঞাপন লোড করার ক্ষেত্রে এটি কীভাবে ব্যবহার করতে হয় তার একটি উদাহরণ নিচে দেওয়া হলো:
সুইফট
func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
// The adLoader has finished loading ads.
}
উদ্দেশ্য-সি
- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
// The adLoader has finished loading ads.
}
ব্যর্থ অনুরোধগুলি পরিচালনা করুন
এই প্রোটোকলগুলো GADAdLoaderDelegate প্রোটোকলকে সম্প্রসারিত করে, যা বিজ্ঞাপন লোড হতে ব্যর্থ হলে প্রেরিত একটি বার্তা সংজ্ঞায়িত করে।
সুইফট
func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
// The adLoader failed to receive an ad.
}
উদ্দেশ্য-সি
- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
// The adLoader failed to receive an ad.
}
নেটিভ বিজ্ঞাপন ইভেন্ট সম্পর্কে বিজ্ঞপ্তি পান
নেটিভ অ্যাড ইন্টারঅ্যাকশন সম্পর্কিত ইভেন্টগুলির বিজ্ঞপ্তি পেতে, নেটিভ অ্যাডের ডেলিগেট প্রপার্টি সেট করুন:
সুইফট
nativeAd.delegate = self
উদ্দেশ্য-সি
nativeAd.delegate = self;
তারপর নিম্নলিখিত ডেলিগেট কলগুলি গ্রহণ করার জন্য GADNativeAdDelegate প্রয়োগ করুন:
সুইফট
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
উদ্দেশ্য-সি
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
সর্বোত্তম অনুশীলন
বিজ্ঞাপন লোড করার সময় এই নিয়মগুলো অনুসরণ করুন।
যেসব অ্যাপ তালিকায় নেটিভ বিজ্ঞাপন ব্যবহার করে, তাদের উচিত বিজ্ঞাপনের তালিকাটি আগে থেকে ক্যাশ করে রাখা।
বিজ্ঞাপন প্রি-ক্যাশিং করার পর, আপনার ক্যাশ ক্লিয়ার করুন এবং এক ঘণ্টা পর পুনরায় লোড করুন।
adLoaderDidFinishLoading:দ্বারা নির্দেশিত পূর্ববর্তী অনুরোধটির লোডিং শেষ না হওয়া পর্যন্ত কোনোGADAdLoaderএloadRequest:পুনরায় কল করবেন না।নেটিভ বিজ্ঞাপনের ক্যাশিং শুধু প্রয়োজনীয় অংশের মধ্যেই সীমাবদ্ধ রাখুন। উদাহরণস্বরূপ, প্রি-ক্যাশিং করার সময়, কেবল সেই বিজ্ঞাপনগুলোই ক্যাশ করুন যেগুলো স্ক্রিনে তাৎক্ষণিকভাবে দেখা যায়। নেটিভ বিজ্ঞাপনগুলো অনেক বেশি মেমরি ব্যবহার করে, এবং সেগুলোকে মুছে না ফেলে ক্যাশ করলে অতিরিক্ত মেমরি খরচ হয়।
অপ্রয়োজনীয় হয়ে গেলে নেটিভ বিজ্ঞাপনগুলো মুছে ফেলুন।
আপনার বিজ্ঞাপন প্রদর্শন করুন
একবার বিজ্ঞাপন লোড হয়ে গেলে, বাকি থাকে শুধু ব্যবহারকারীদের কাছে তা প্রদর্শন করা। কীভাবে তা করবেন, তা জানতে আমাদের নেটিভ অ্যাডভান্সড গাইডটি দেখুন।