এবার শুরু করা যাক

পূর্বশর্ত

  • Xcode 13 বা উচ্চতর।

এই নির্দেশিকাটি বর্ণনা করে যে কীভাবে PAL SDK-কে একটি ননস পেতে এবং প্লেব্যাক ইভেন্টগুলি নিরীক্ষণ করতে হবে। ননস তৈরি করতে PAL ব্যবহার করে এমন একটি নমুনা অ্যাপ দেখতে, GitHub থেকে iOS উদাহরণটি ডাউনলোড করুন।

আপনার প্রকল্পে PAL SDK যোগ করুন

সুইফট প্যাকেজ ম্যানেজার ব্যবহার করে PAL SDK ইনস্টল করুন

প্রোগ্রাম্যাটিক অ্যাক্সেস লাইব্রেরি SDK 2.5.3 সংস্করণ থেকে শুরু করে সুইফট প্যাকেজ ম্যানেজার সমর্থন করে। সুইফট প্যাকেজ আমদানি করতে নিচের ধাপগুলো অনুসরণ করুন।

  1. Xcode-এ, File > Add Packages... এ নেভিগেট করে IMA SDK সুইফট প্যাকেজ ইনস্টল করুন।

  2. প্রদর্শিত প্রম্পটে, IMA SDK সুইফট প্যাকেজ GitHub সংগ্রহস্থল অনুসন্ধান করুন:

    https://github.com/googleads/swift-package-manager-google-programmatic-access-library-ios
    
  3. আপনি যে PAL SDK সুইফট প্যাকেজটি ব্যবহার করতে চান তার সংস্করণ নির্বাচন করুন। নতুন প্রকল্পের জন্য, আমরা আপ টু নেক্সট মেজর সংস্করণ ব্যবহার করার পরামর্শ দিই।

একবার আপনি শেষ হয়ে গেলে, Xcode আপনার প্যাকেজ নির্ভরতা সমাধান করে এবং সেগুলিকে পটভূমিতে ডাউনলোড করে। কীভাবে প্যাকেজ নির্ভরতা যুক্ত করবেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য, অ্যাপলের নিবন্ধটি দেখুন।

ম্যানুয়ালি PAL SDK ডাউনলোড এবং ইনস্টল করুন

আপনি যদি সুইফট প্যাকেজ ম্যানেজার ব্যবহার করতে না চান, তাহলে আপনি PAL SDK ডাউনলোড করতে পারেন এবং ম্যানুয়ালি আপনার প্রোজেক্টে যোগ করতে পারেন।

  1. iOS এর জন্য PAL SDK ডাউনলোড এবং এক্সট্রাক্ট করুন
  2. আপনার প্রজেক্টে ফ্রেমওয়ার্ক অন্তর্ভুক্ত করতে অ্যাপল ডেভেলপার গাইড অনুসরণ করুন।

একটি nonce জেনারেট

একটি "nonce" হল PALNonceLoader ব্যবহার করে PAL দ্বারা তৈরি করা একটি একক এনক্রিপ্ট করা স্ট্রিং। PAL SDK-এর জন্য প্রতিটি নতুন স্ট্রীমের সাথে একটি নতুন জেনারেট হওয়া ননস থাকা প্রয়োজন। যাইহোক, একই স্ট্রীমের মধ্যে একাধিক বিজ্ঞাপনের অনুরোধের জন্য ননসেস পুনরায় ব্যবহার করা যেতে পারে।

নীচের সমস্ত কোড স্নিপেট হল PAL iOS নমুনা অ্যাপ্লিকেশনে ViewController.m এর পরিবর্তন।

একটি ননস অনুরোধ করতে, PAL লাইব্রেরি আমদানি করে শুরু করুন:

@import ProgrammaticAccessLibrary;

আপনার এখনও স্ট্রীম কোরিলেটর বা &scor এর উপর নিয়ন্ত্রণ আছে, যা প্রতিটি নতুন স্ট্রীমের জন্য একবার রিসেট করা উচিত। একই স্ট্রীমের সমস্ত বিজ্ঞাপন অনুরোধের একই PALNonceLoader এবং স্ট্রিম কোরিলেটর মান শেয়ার করা উচিত যাতে ফ্রিকোয়েন্সি ক্যাপিং এবং প্রতিযোগিতামূলক বর্জন বৈশিষ্ট্যগুলি সঠিকভাবে কাজ করে।

এর পরে, PALNonceLoader এর একটি উদাহরণ তৈরি করুন এবং দুটি প্রতিনিধি পদ্ধতির জন্য স্টাব যোগ করুন:

@interface ViewController () <PALNonceLoaderDelegate>
// The nonce loader to use for nonce requests.
@property(nonatomic) PALNonceLoader *nonceLoader;
// The view in which a video would play. In this sample, it is mocked for
// simplification.
@property(nonatomic, weak) IBOutlet UIView *videoView;
@end
...
- (void) viewDidLoad {
  [super viewDidLoad];
  // The default value for 'allowStorage' and 'directedForChildOrUnknownAge' is
  // 'NO', but should be updated once the appropriate consent has been gathered.
  // Publishers should either integrate with a CMP or use a different method to
  // handle storage consent.
  PALSettings *settings = [[PALSettings alloc] init];
  settings.allowStorage = YES;
  settings.directedForChildOrUnknownAge = NO;

  self.nonceLoader = [[PALNonceLoader alloc] initWithSettings:settings];
  self.nonceLoader.delegate = self;
}

#pragma mark - PALNonceLoaderDelegate methods

- (void)nonceLoader:(PALNonceLoader *)nonceLoader
            withRequest:(PALNonceRequest *)request
    didLoadNonceManager:(PALNonceManager *)nonceManager {
}

- (void)nonceLoader:(PALNonceLoader *)nonceLoader
         withRequest:(PALNonceRequest *)request
    didFailWithError:(NSError *)error {
}

তারপরে, একটি ননস অনুরোধ শুরু করুন, এর বৈশিষ্ট্যগুলি পূরণ করুন এবং একটি ননস ম্যানেজার শুরু করতে এটি ব্যবহার করুন:

@interface ViewController () <PALNonceLoaderDelegate>
// The nonce loader to use for nonce requests.
@property(nonatomic) PALNonceLoader *nonceLoader;
// The nonce manager result from the last successful nonce request.
@property(nonatomic) PALNonceManager *nonceManager;
// The view in which a video would play. In this sample, it is mocked for
// simplification.
@property(nonatomic, weak) IBOutlet UIView *videoView;
@end
...
- (void)viewDidLoad {
  ...
  self.nonceLoader.delegate = self;
  [self requestNonceManager];
}
...
#pragma mark - UI Callback methods

/**
 * Requests a new nonce manager with a request containing arbitrary test values
 * like a user might supply. Displays the nonce or error on success. This
 * should be called once per stream.
 */
- (void)requestNonceManager {
  PALNonceRequest *request = [[PALNonceRequest alloc] init];
  request.continuousPlayback = PALFlagOff;
  request.descriptionURL = [NSURL URLWithString:@"https://example.com/desc?key=val"];
  request.iconsSupported = YES;
  request.playerType = @"AwesomePlayer";
  request.playerVersion = @"4.2.1";
  request.PPID = @"123987456";
  request.sessionID = @"Sample SID";
  // Sample API framework integer. See reference docs for more details.
  NSInteger SampleAPIFramework = 501;
  request.supportedApiFrameworks = [NSMutableSet setWithArray:@[ SampleAPIFramework ]];
  request.videoPlayerHeight = 480;
  request.videoPlayerWidth = 640;
  request.willAdAutoPlay = PALFlagOn;
  request.willAdPlayMuted = PALFlagOff;
  request.OMIDPartnerName = @"SamplePartner";
  request.OMIDPartnerVersion = @"6.2.1";
  request.OMIDVersion = @"1.2.3";

  if (self.nonceManager) {
    // Detach the old nonce manager's gesture recognizer before destroying it.
    [self.videoView removeGestureRecognizer:self.nonceManager.gestureRecognizer];
    self.nonceManager = nil;
  }
  [self.nonceLoader loadNonceManagerWithRequest:request];
}

সবশেষে, জেনারেট করা ননসেস লগ করতে ননস লোডার প্রতিনিধিদের পপুলেট করুন:

#pragma mark - PALNonceLoaderDelegate methods

- (void)nonceLoader:(PALNonceLoader *)nonceLoader
            withRequest:(PALNonceRequest *)request
    didLoadNonceManager:(PALNonceManager *)nonceManager {
  NSLog(@"Programmatic access nonce: %@", nonceManager.nonce);
  // Capture the created nonce manager and attach its gesture recognizer to the video view.
  self.nonceManager = nonceManager;
  [self.videoView addGestureRecognizer:self.nonceManager.gestureRecognizer];
}

- (void)nonceLoader:(PALNonceLoader *)nonceLoader
         withRequest:(PALNonceRequest *)request
    didFailWithError:(NSError *)error {
  NSLog(@"Error generating programmatic access nonce: %@", error);
}

আপনার সরাসরি VAST কল (DVC) করার সময়, givn প্যারামিটারে আপনার নন্সটি মান হিসাবে সেট করুন। নন্সটি ইউআরএল নিরাপদ—আপনাকে এটি ইউআরএল-এনকোড করার দরকার নেই।

সবশেষে, SDK-এ কন্টেন্ট প্লেব্যাক সেশনের তথ্য এবং ক্লিক পাঠানোর জন্য আপনাকে পদ্ধতি যোগ করতে হবে। sendPlaybackStart , sendPlaybackEnd , এবং sendAdClick পদ্ধতি বাস্তবায়নের নিম্নলিখিত উদাহরণটি দেখুন :

...
// Reports the start of playback for the current content session.
- (void)sendPlaybackStart {
  [self.nonceManager sendPlaybackStart];
}

// Reports the end of playback for the current content session.
- (void)sendPlaybackEnd {
  [self.nonceManager sendPlaybackEnd];
}

// Reports an ad click for the current nonce manager, if not nil.
- (void)sendAdClick {
  [self.nonceManager sendAdClick];
}

আপনার বাস্তবায়নে, sendPlaybackStart "ভিডিও প্লেয়ার স্টার্ট"-এ ডাকা উচিত কারণ প্রথমবারের মতো প্লেব্যাক শুরু হয়, হয় ব্যবহারকারীর দ্বারা শুরু করা অ্যাকশন (ক্লিক-টু-প্লে) বা অ্যাপ ইনিশিয়েটেড অ্যাকশন (অটোপ্লে) এর প্রতিক্রিয়া হিসেবে, sendPlaybackEnd হওয়া উচিত প্লেব্যাক শেষ হলে ডাকা হয়, এবং দর্শক যখনই কোনো বিজ্ঞাপনে ক্লিক করে তখন sendAdClick বলা উচিত।

(ঐচ্ছিক) তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের মাধ্যমে Google Ad Manager সংকেত পাঠান

অ্যাড ম্যানেজারের জন্য তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের অনুরোধ কনফিগার করুন। আপনি নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করার পরে, ননস প্যারামিটারটি PAL SDK থেকে, আপনার মধ্যস্থতাকারী সার্ভারের মাধ্যমে এবং তারপরে Google Ad Manager-এ প্রচারিত হয়। এটি Google Ad Manager-এর মাধ্যমে আরও ভাল নগদীকরণ সক্ষম করে৷

অ্যাড ম্যানেজারের কাছে সার্ভারের অনুরোধে ননস অন্তর্ভুক্ত করতে আপনার তৃতীয় পক্ষের বিজ্ঞাপন সার্ভার কনফিগার করুন। তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের ভিতরে কনফিগার করা একটি বিজ্ঞাপন ট্যাগের উদাহরণ এখানে দেওয়া হল:

https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...

আরও বিশদ বিবরণের জন্য, Google অ্যাড ম্যানেজার সার্ভার-সাইড বাস্তবায়ন নির্দেশিকা দেখুন।

বিজ্ঞাপন ম্যানেজার নন্স ভ্যালু সনাক্ত করতে givn= খোঁজে। তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের নিজস্ব কিছু ম্যাক্রো সমর্থন করতে হবে, যেমন %%custom_key_for_google_nonce%% , এবং এটিকে আপনার পূর্ববর্তী ধাপে দেওয়া ননস কোয়েরি প্যারামিটার দিয়ে প্রতিস্থাপন করতে হবে। এটি কীভাবে সম্পন্ন করা যায় সে সম্পর্কে আরও তথ্য তৃতীয় পক্ষের বিজ্ঞাপন সার্ভারের ডকুমেন্টেশনে পাওয়া উচিত।