PAL আপনাকে বিজ্ঞাপন অনুরোধে এবং বিজ্ঞাপন প্লেব্যাকের সময় Google বিজ্ঞাপন সিগন্যাল পাঠাতে দেয়।
এই গাইড আপনার অ্যাপে Android PAL SDK যোগ করা কভার করে। ননস জেনারেট করার জন্য PAL ব্যবহার করে এমন একটি স্যাম্পেল অ্যাপ দেখতে, GitHub থেকে Android উদাহরণ ডাউনলোড করুন।
লাইব্রেরি হিসেবে Android PAL SDK যোগ করুন
18.0.0 ভার্সন অনুযায়ী, PAL SDK Google-এর Maven রিপোজিটরিতে হোস্ট করা হয় এবং নিচে উল্লেখ করা পদ্ধতি অনুসরণ করে আপনার অ্যাপে যোগ করা যায়:
implementation("com.google.android.gms:play-services-pal:23.1.0")
অথবা, PAL SDK Google-এর Maven রিপোজিটরি থেকে ডাউনলোড করে আপনার অ্যাপে ম্যানুয়ালি যোগ করা যেতে পারে।
অ্যাপ ডিসুগারিং চালু করা
23.0.0 ভার্সন অনুযায়ী, PAL-এর জন্য আপনাকে coreLibraryDesugaringEnabled true সেট করে এবং build.gradle ফাইলে com.android.tools:desugar_jdk_libs-এ
ডিপেন্ডেন্সি যোগ করে
অ্যাপ ডিসুগারিং চালু করতে হবে। আরও
বিবরণ পেতে, nio স্পেসিফিকেশন সহ desugaring-এর মাধ্যমে উপলভ্য Java 11+ API দেখুন।
coreLibraryDesugaringEnabled = true
নন্স তৈরি করা
নন্স হল একটি এনক্রিপটেড স্ট্রিং যা PAL NonceLoader
ক্লাস ব্যবহার করে তৈরি করে। PAL-এর জন্য প্রতিটি স্ট্রিম অনুরোধের সাথে একটি
অনন্য ননস থাকতে হবে। তবে, আপনি একই স্ট্রিমে একাধিক বিজ্ঞাপনের অনুরোধের জন্য ননস আবার ব্যবহার করতে পারেন
। PAL SDK ব্যবহার করে ননস তৈরি করতে, PAL ইমপোর্ট ও সেট-আপ করার জন্য
নিচে উল্লেখ করা পরিবর্তন করুন এবং ননস তৈরি করার জন্য একটি ফাংশন
তৈরি করুন:
নিম্নলিখিত কাজগুলি করে PAL ইমপোর্ট ও সেট-আপ করুন:
PAL ক্লাস ইমপোর্ট করা:
import com.google.ads.interactivemedia.pal.ConsentSettings; import com.google.ads.interactivemedia.pal.NonceLoader; import com.google.ads.interactivemedia.pal.NonceManager; import com.google.ads.interactivemedia.pal.NonceRequest; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; import java.util.HashSet; import java.util.Set;NonceLoaderএবংNonceManagerইনস্ট্যান্স সেভ করতে ব্যক্তিগত ভেরিয়েবল তৈরি করুন:private NonceLoader nonceLoader; private NonceManager nonceManager;onCreateপদ্ধতিতেConsentSettingsইনস্ট্যান্সের সাথে আপনারNonceLoaderইনস্ট্যান্স ইনিশিয়ালাইজ করুন:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // By default, PAL automatically determines whether to enable limited ads // based on the user's TCF (Transparency and Consent Framework) consent data // on the device. If you must manually override the default behavior, // for example, to meet your app's requirements, use the // `ConsentSettings.Builder.forceLimitedAds` property. ConsentSettings consentSettings = ConsentSettings.builder().build(); // It is important to instantiate the NonceLoader as early as possible to // allow it to initialize and preload data for a faster experience when // loading the NonceManager. A new NonceLoader will need to be instantiated // if the ConsentSettings change for the user. nonceLoader = new NonceLoader(this, consentSettings); adClickButton = findViewById(R.id.send_click_button); logView = findViewById(R.id.log_view); logView.setMovementMethod(new ScrollingMovementMethod()); }
আপনার অ্যাপে, প্রতিটি ব্যবহারকারীর সেশনের জন্য
NonceLoaderক্লাসের একটি করে ইনস্ট্যান্স তৈরি করুন। আপনার অ্যাপে একাধিক পৃষ্ঠা বা সমতুল্য কনস্ট্রাক্ট থাকলে, প্রতিটি পৃষ্ঠা বা পৃষ্ঠা-সমতুল্যের জন্য নতুনNonceLoaderইনস্ট্যান্স তৈরি করুন। একইNonceLoaderইনস্ট্যান্স ব্যবহার করার মাধ্যমে, আপনি কোনও পৃষ্ঠা বা অ্যাপে ব্যবহারকারীর সেশনের লাইফটাইমের জন্য পৃষ্ঠা কোরিলেটর&correlatorঅপরিবর্তিত রাখেন। আপনি এখনও স্ট্রিম কোরিলেটর&scorকন্ট্রোল করতে পারবেন, যা আপনাকে নতুন ননস তৈরি করে প্রতিটি নতুন স্ট্রিমের জন্য রিসেট করতে হবে।একই স্ট্রিমের সব বিজ্ঞাপন অনুরোধে ফ্রিকোয়েন্সি ক্যাপিং ও প্রতিযোগিতামূলক বর্জন ফিচার প্রয়োগ করার জন্য একই
NonceLoaderইনস্ট্যান্স ও স্ট্রিম কোরিলেটর ভ্যালু থাকতে হবে।নন্স তৈরি করুন:
public void generateNonceForAdRequest(View view) { logMessage("Generate Nonce Request"); Set supportedApiFrameWorksSet = new HashSet(); // The values 2, 7, and 9 correspond to player support for VPAID 2.0, // OMID 1.0, and SIMID 1.1. supportedApiFrameWorksSet.add(2); supportedApiFrameWorksSet.add(7); supportedApiFrameWorksSet.add(9); NonceRequest nonceRequest = NonceRequest.builder() .descriptionURL("https://example.com/content1") .iconsSupported(true) .omidPartnerVersion("6.2.1") .omidPartnerName("Example Publisher") .playerType("ExamplePlayerType") .playerVersion("1.0.0") .ppid("testPpid") .sessionId("Sample SID") .supportedApiFrameworks(supportedApiFrameWorksSet) .videoPlayerHeight(480) .videoPlayerWidth(640) .willAdAutoPlay(true) .willAdPlayMuted(false) .build(); nonceLoader .loadNonceManager(nonceRequest) .addOnSuccessListener( new OnSuccessListener<NonceManager>() { @Override public void onSuccess(NonceManager manager) { nonceManager = manager; String nonceString = manager.getNonce(); logMessage("Nonce generated"); logMessage(nonceString.substring(0, 20) + "..."); Log.i(LOG_TAG, "Generated nonce: " + nonceString); // From here you would trigger your ad request and move on to initialize content. exampleMakeAdRequest(DEFAULT_AD_TAG + "&givn=" + nonceString); adClickButton.setEnabled(true); } }) .addOnFailureListener( new OnFailureListener() { @Override public void onFailure(Exception error) { logMessage("Nonce generation failed"); Log.e(LOG_TAG, "Nonce generation failed: " + error.getMessage()); } }); }সিঙ্গেল স্ট্রিম প্লেব্যাকের মধ্যে থাকা সব বিজ্ঞাপন অনুরোধের জন্য আপনাকে শুধুমাত্র একটি ননস ব্যবহার করতে হবে। পরীক্ষা করার উদ্দেশ্যে, আপনার টেস্ট অ্যাপে কোনও বোতামে ক্লিক করলে এই ফাংশন কল করুন। এই নির্দেশিকায় সেট করা
NonceRequestপ্যারামিটার হল প্যারামিটারের উদাহরণ। আপনার অ্যাপের বৈশিষ্ট্যের উপর ভিত্তি করে প্যারামিটার সেট করুন।এই ফাংশনটি অ্যাসিঙ্ক্রোনাসভাবে একটি ননস তৈরি করে। আপনাকে অবশ্যই ননস অনুরোধের সফল ও ব্যর্থ, দুটি ক্ষেত্রেই ব্যবস্থা নিতে হবে। নন্স ম্যানেজার উপলভ্য হওয়ার পরে,
nonceManager.getNonce()পদ্ধতি ব্যবহার করে বিজ্ঞাপনের অনুরোধ করার আগে নন্স রিট্রিভ করুন।
বিজ্ঞাপনের অনুরোধে ননস অ্যাটাচ করা
জেনারেট করা ননস ব্যবহার করতে, আপনার বিজ্ঞাপনের অনুরোধ করার আগে givn প্যারামিটার ও
ননস ভ্যালু দিয়ে আপনার বিজ্ঞাপন ট্যাগ যোগ করুন:
// From here you would trigger your ad request and move on to initialize content.
exampleMakeAdRequest(DEFAULT_AD_TAG + "&givn=" + nonceString);
আপনি Google-এর থেকে বিজ্ঞাপন অনুরোধ ও রেন্ডার করলে, আপনাকে অবশ্যই AdChoices আইকন ও ওভারলে রেন্ডার করতে হবে। VAST উত্তর পার্স করা ও আইকন রেন্ডার করা সম্পর্কে আরও জানতে, AdChoices আইকন ও ওভারলে দেখুন।
প্লেব্যাক ইভেন্ট ট্র্যাক করা
প্লেব্যাক ইভেন্ট ট্র্যাক করতে, আপনাকে অবশ্যই Google-এ বিজ্ঞাপন সিগন্যাল পাঠানোর জন্য ইভেন্ট হ্যান্ডলার সেট-আপ করতে হবে:
// Triggered when a user clicks-through on an ad which was requested using a PAL nonce.
public void sendAdClick(View view) {
logMessage("Ad click sent");
if (nonceManager != null) {
nonceManager.sendAdClick();
}
}
// In a typical PAL app, this is called when a user touch or click is detected,
// on the ad other than an ad click-through.
public void onVideoViewTouch(MotionEvent e) {
if (nonceManager != null) {
nonceManager.sendAdTouch(e);
}
}
// In a typical PAL app, this is called when a content playback session starts.
public void sendPlaybackStart() {
logMessage("Playback start");
if (nonceManager != null) {
nonceManager.sendPlaybackStart();
}
}
// In a typical PAL app, this is called when a content playback session ends.
public void sendPlaybackEnd() {
logMessage("Playback end");
if (nonceManager != null) {
nonceManager.sendPlaybackEnd();
}
}
আপনার ইমপ্লিমেন্টেশনে কখন কোন ফাংশন কল করতে হবে তা এখানে দেওয়া হল:
sendPlaybackStart(): আপনার ভিডিও প্লেব্যাক সেশন শুরু হলেsendPlaybackEnd(): আপনার ভিডিও প্লেব্যাক সেশন শেষ হয়ে গেলেsendAdClick(): প্রত্যেকবার দর্শক কোনও বিজ্ঞাপনে ক্লিক করলেsendAdTouch(): প্লেয়ারের সাথে প্রতিটি টাচ ইন্টার্যাকশনের সময়
পরীক্ষা করার উদ্দেশ্যে, বোতামে ক্লিক করার ইভেন্টে ইভেন্ট হ্যান্ডলার পদ্ধতি অ্যাটাচ করুন। প্রোডাকশন ইমপ্লিমেন্টেশনে, প্লেয়ার ইভেন্টের জন্য আপনার অ্যাপ সেট-আপ করুন যাতে ইভেন্ট হ্যান্ডলার পদ্ধতি কল করা যায়।
(ঐচ্ছিক) থার্ড-পার্টি বিজ্ঞাপন সার্ভারের মাধ্যমে Google Ad Manager সিগন্যাল পাঠানো
Google Ad Manager-এর সাথে কাজ করার জন্য থার্ড-পার্টি বিজ্ঞাপন সার্ভার সেট-আপ করার সময়, প্রতিটি বিজ্ঞাপন অনুরোধে ননস ভ্যালু ক্যাপচার ও ফরওয়ার্ড করতে, আপনার সার্ভারের ডকুমেন্টেশন দেখুন। প্রদত্ত উদাহরণে ননস প্যারামিটার যুক্ত বিজ্ঞাপন অনুরোধের URL দেখানো হয়েছে। নন্স প্যারামিটার PAL SDK থেকে আপনার মধ্যস্থতাকারী সার্ভারের মাধ্যমে Ad Manager-এ প্রোপাগেট হয়, যার ফলে আরও ভাল মনিটাইজেশন সম্ভব হয়।
Ad Manager-এর কাছে সার্ভারের অনুরোধে ননস অন্তর্ভুক্ত করতে আপনার থার্ড-পার্টি বিজ্ঞাপন সার্ভার কনফিগার করুন। এখানে থার্ড-পার্টি বিজ্ঞাপন সার্ভারের মধ্যে কনফিগার করা বিজ্ঞাপন ট্যাগের একটি উদাহরণ দেওয়া হল:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
আরও বিবরণের জন্য, Google Ad Manager-এর সার্ভার-সাইড প্রয়োগ করা সংক্রান্ত নির্দেশিকা দেখুন।
নন্স ভ্যালু শনাক্ত করতে Ad Manager givn= খুঁজে দেখে। থার্ড-পার্টি বিজ্ঞাপন
সার্ভারকে নিজস্ব কিছু ম্যাক্রো যেমন
%%custom_key_for_google_nonce%% ব্যবহার করতে হবে এবং আগের ধাপে আপনার দেওয়া
নন্স কোয়েরি প্যারামিটারের সাথে এটি পরিবর্তন করতে হবে। এটি কীভাবে করবেন সেই সম্পর্কে আরও তথ্য
থার্ড-পার্টি বিজ্ঞাপন সার্ভারের ডকুমেন্টেশনে উপলভ্য।