প্রথম ধাপ হল আপনার অ্যাপে Android PAL SDK যোগ করা।
একটি লাইব্রেরি হিসাবে Android PAL SDK যোগ করুন
18.0.0 সংস্করণ অনুসারে, PAL SDK Google-এর Maven সংগ্রহস্থলে হোস্ট করা হয়েছে এবং নিম্নলিখিতভাবে আপনার অ্যাপে যোগ করা যেতে পারে:
app/build.gradle
...
dependencies {
implementation 'com.google.android.gms:play-services-pal:20.2.0'
...
}
বিকল্পভাবে, PAL SDK Google এর Maven সংগ্রহস্থল থেকে ডাউনলোড করা যেতে পারে এবং ম্যানুয়ালি আপনার অ্যাপে যোগ করা যেতে পারে।
ননস জেনারেট করুন
একটি "nonce" হল একটি একক এনক্রিপ্ট করা স্ট্রিং যা PAL দ্বারা NonceLoader
ব্যবহার করে তৈরি করা হয়। PAL SDK-এর জন্য প্রতিটি নতুন স্ট্রিম অনুরোধের সাথে একটি নতুন জেনারেট করা ননস প্রয়োজন। যাইহোক, একই স্ট্রীমের মধ্যে একাধিক বিজ্ঞাপনের অনুরোধের জন্য ননসেস পুনরায় ব্যবহার করা যেতে পারে। PAL SDK ব্যবহার করে একটি ননস তৈরি করতে, MyActivity.java
এ পরিবর্তন করুন। একটি নন্স জেনারেট করতে PAL ব্যবহার করে এমন একটি নমুনা অ্যাপ দেখতে, GitHub থেকে Android উদাহরণটি ডাউনলোড করুন।
আপনাকে প্রথমে PAL SDK আমদানি করতে হবে, আপনার NonceLoader
এবং NonceManager
সংরক্ষণ করার জন্য কিছু ব্যক্তিগত বৈশিষ্ট্য তৈরি করতে হবে এবং তারপর আপনার NonceLoader আরম্ভ করতে হবে।
আমরা সুপারিশ করি যে আপনি আপনার অ্যাপে প্রতিটি ব্যবহারকারীর সেশনের জন্য NonceLoader
ক্লাসের শুধুমাত্র একটি উদাহরণ তৈরি করুন যদি না আপনার অ্যাপে একাধিক পৃষ্ঠা বা সমতুল্য গঠন না থাকে। এটি একটি পৃষ্ঠার জীবনকাল বা অ্যাপে ব্যবহারকারীর সেশনের জন্য পৃষ্ঠার সম্পর্কীয় ( &correlator
) অপরিবর্তিত রাখে। আপনার এখনও স্ট্রিম কোরিলেটর ( &scor
) এর উপর নিয়ন্ত্রণ রয়েছে যা প্রতিটি নতুন স্ট্রিমের জন্য একবার রিসেট করা উচিত।
একই স্ট্রীমের সমস্ত বিজ্ঞাপন অনুরোধের একই NonceLoader
এবং স্ট্রিম কোরিলেটর মান শেয়ার করা উচিত যাতে ফ্রিকোয়েন্সি ক্যাপিং এবং প্রতিযোগিতামূলক বর্জন বৈশিষ্ট্যগুলি সঠিকভাবে কাজ করে।
import android.app.Activity;
import android.os.Bundle;
import com.google.ads.interactivemedia.pal.NonceLoader;
import com.google.ads.interactivemedia.pal.NonceManager;
import com.google.ads.interactivemedia.pal.NonceRequest;
import com.google.ads.interactivemedia.pal.ConsentSettings;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import java.util.HashSet;
import java.util.Set;
public class MainActivity extends Activity {
...
private NonceLoader nonceLoader;
private NonceManager nonceManager = null;
private ConsentSettings consentSettings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The default value for allowStorage() is false, but can be
// changed once the appropriate consent has been gathered. The
// getConsentToStorage() method is a placeholder for the publisher's own
// method of obtaining user consent, either by integrating with a CMP or
// based on other methods the publisher chooses to handle storage consent.
boolean isConsentToStorage = getConsentToStorage();
videoView = findViewById(R.id.video_view);
videoView.setOnTouchListener(this::onVideoViewTouch);
consentSettings = ConsentSettings.builder()
.allowStorage(isConsentToStorage)
.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);
...
}
পরবর্তী, ননস জেনারেশন ট্রিগার করার জন্য একটি ফাংশন তৈরি করুন। একটি একক স্ট্রীম প্লেব্যাকে সমস্ত বিজ্ঞাপন অনুরোধের জন্য আপনার শুধুমাত্র একটি ননস প্রয়োজন৷ পরীক্ষার উদ্দেশ্যে, আপনার পরীক্ষা অ্যাপের একটি বোতামে ক্লিক করার সময় আপনি এই ফাংশনটিকে কল করতে পারেন। এখানে সেট করা NonceRequest
প্যারামিটার হল উদাহরণ প্যারামিটার। আপনার নিজের অ্যাপের বৈশিষ্ট্যের উপর ভিত্তি করে আপনার প্যারামিটার সেট করা উচিত।
এই ফাংশনটি ননস জেনারেশন অ্যাসিঙ্ক্রোনাসভাবে ট্রিগার করে, তাই আপনাকে ননস অনুরোধের সাফল্য বা ব্যর্থতা পরিচালনা করতে একটি AsyncTask
প্রয়োগ করতে হবে:
public void generateNonceForAdRequest() {
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();
NonceCallbackImpl callback = new NonceCallbackImpl();
nonceLoader
.loadNonceManager(nonceRequest)
.addOnSuccessListener(callback)
.addOnFailureListener(callback);
}
private class NonceCallbackImpl implements OnSuccessListener<NonceManager>, OnFailureListener {
@Override
public void onSuccess(NonceManager manager) {
nonceManager = manager;
String nonceString = manager.getNonce();
Log.i("PALSample", "Generated nonce: " + nonceString);
// from here you would trigger your ad request and move on to initialize content
}
@Override
public void onFailure(Exception error) {
Log.e("PALSample", "Nonce generation failed: " + error.getMessage());
}
}
একবার একটি ননস ম্যানেজার তৈরি হয়ে গেলে, nonceটি nonceManager.getNonce()
ব্যবহার করে যেকোনো সময় পুনরুদ্ধার করা যেতে পারে।
বিজ্ঞাপনের অনুরোধে ননস সংযুক্ত করুন
জেনারেটেড নন্স ব্যবহার করতে, আপনার বিজ্ঞাপনের অনুরোধ করার আগে একটি givn
প্যারামিটার এবং ননস মান সহ আপনার বিজ্ঞাপন ট্যাগ যোগ করুন।
/**
* The ad tag for your ad request, for example:
* https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external\
* /single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1\
* &cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=
*
* For more sample ad tags, see
* developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/tags
*/
private static final String DEFAULT_AD_TAG = "Your ad tag";
...
@Override
public void onSuccess(NonceManager manager) {
nonceManager = manager;
String nonceString = manager.getNonce();
Log.i("PALSample", "Generated nonce: " + nonceString);
// Append the nonce to the ad tag URL.
makeAdRequest(DEFAULT_AD_TAG + "&givn=" + nonceString);
}
প্লেব্যাক ঘটনা ট্র্যাক
অবশেষে, আপনাকে আপনার প্লেয়ারের জন্য বিভিন্ন ইভেন্ট হ্যান্ডলার প্রয়োগ করতে হবে। পরীক্ষার উদ্দেশ্যে, আপনি এগুলিকে বোতাম ক্লিক ইভেন্টগুলিতে সংযুক্ত করতে পারেন, কিন্তু বাস্তব বাস্তবায়নে, উপযুক্ত প্লেয়ার ইভেন্টগুলির দ্বারা এগুলি ট্রিগার হবে:
public void sendAdClick() {
if (nonceManager != null) {
nonceManager.sendAdClick();
}
}
public void sendPlaybackStart() {
if (nonceManager != null) {
nonceManager.sendPlaybackStart();
}
}
public void sendPlaybackEnd() {
if (nonceManager != null) {
nonceManager.sendPlaybackEnd();
}
}
public void onVideoViewTouch(MotionEvent e) {
if (nonceManager != null) {
nonceManager.sendTouch(e);
}
}
আপনার বাস্তবায়নে প্রতিটি ফাংশনকে কখন কল করতে হবে তা এখানে:
-
sendPlaybackStart()
: যখন আপনার ভিডিও প্লেব্যাক সেশন শুরু হয় -
sendPlaybackEnd()
: যখন আপনার ভিডিও প্লেব্যাক সেশন শেষ হয় -
sendAdClick()
: প্রতিবার দর্শক একটি বিজ্ঞাপনে ক্লিক করে -
sendTouch()
: প্লেয়ারের সাথে প্রতিটি স্পর্শ মিথস্ক্রিয়ায়
(ঐচ্ছিক) তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের মাধ্যমে Google Ad Manager সংকেত পাঠান
যখন আপনি Google Ad Manager-এর সাথে কাজ করার জন্য আপনার তৃতীয়-পক্ষের বিজ্ঞাপন সার্ভার সেট আপ করেন, তখন প্রতিটি বিজ্ঞাপন অনুরোধে ননস ভ্যালু ক্যাপচার করতে এবং ফরওয়ার্ড করতে আপনার সার্ভারের ডকুমেন্টেশন দেখুন। প্রদত্ত উদাহরণটি একটি বিজ্ঞাপন অনুরোধের URL এর নন্স প্যারামিটার অন্তর্ভুক্ত। ননস প্যারামিটারটি PAL SDK থেকে, আপনার মধ্যস্থতাকারী সার্ভারের মাধ্যমে এবং তারপরে অ্যাড ম্যানেজারে প্রচারিত হয়, যাতে আরও ভাল নগদীকরণ সক্ষম হয়।
অ্যাড ম্যানেজারের কাছে সার্ভারের অনুরোধে ননস অন্তর্ভুক্ত করতে আপনার তৃতীয় পক্ষের বিজ্ঞাপন সার্ভার কনফিগার করুন। তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের ভিতরে কনফিগার করা একটি বিজ্ঞাপন ট্যাগের উদাহরণ এখানে দেওয়া হল:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
আরও বিশদ বিবরণের জন্য, Google অ্যাড ম্যানেজার সার্ভার-সাইড বাস্তবায়ন নির্দেশিকা দেখুন।
বিজ্ঞাপন ম্যানেজার নন্স ভ্যালু সনাক্ত করতে givn=
খোঁজে। তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের নিজস্ব কিছু ম্যাক্রো সমর্থন করতে হবে, যেমন %%custom_key_for_google_nonce%%
, এবং এটিকে আপনার পূর্ববর্তী ধাপে দেওয়া ননস কোয়েরি প্যারামিটার দিয়ে প্রতিস্থাপন করতে হবে। এটি কীভাবে সম্পন্ন করা যায় সে সম্পর্কে আরও তথ্য তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের ডকুমেন্টেশনে পাওয়া উচিত।