শুরু করুন

পূর্বশর্ত

  • এক্সকোড ১৩ বা তার বেশি

এই নির্দেশিকাটিতে PAL SDK ব্যবহার করে প্লেব্যাক ইভেন্টগুলি কীভাবে নন্স গ্রহণ করতে হয় এবং পর্যবেক্ষণ করতে হয় তা বর্ণনা করা হয়েছে। সম্পূর্ণ নির্দেশিকাটি অনুসরণ করতে, PAL tvOS নমুনা অ্যাপ্লিকেশনটি ডাউনলোড করুন।

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

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

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

  1. Xcode-এ, File > Add Packages... এ নেভিগেট করে IMA SDK Swift Package ইনস্টল করুন।

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

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

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

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

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

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

একটি ননস তৈরি করুন

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

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

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

@import ProgrammaticAccessLibrary;

এরপর, 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 'directedForChildOrUnknownAge' is
  // 'NO'. Update the value after the appropriate consent has been gathered.
  // 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
  // `PALSettings.forceLimitedAds` property.
  PALSettings *settings = [[PALSettings alloc] init];
  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 (sane) user might supply. Displays the nonce or error on success. This
 * should be called once per stream.
 *
 * The PALNonceRequest parameters set here are example parameters.
 * You should set your parameters based on your own app characteristics.
 */
- (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 integers. See reference docs for more details.
  request.supportedAPIFrameworks = [NSMutableSet setWithArray:@[ @2, @7, @9 ]];
  request.videoPlayerHeight = 480;
  request.videoPlayerWidth = 640;
  request.willAdAutoPlay = PALFlagOn;
  request.willAdPlayMuted = PALFlagOff;

  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 প্যারামিটারে আপনার nonce মান হিসেবে সেট করুন। nonce URL নিরাপদ—আপনাকে এটি URL-এনকোড করার প্রয়োজন নেই।

সবশেষে, 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 বিজ্ঞাপন ম্যানেজার সিগন্যাল পাঠান

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

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

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

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

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