শুরু করুন

প্ল্যাটফর্ম বেছে নিন: Android iOS

Google User Messaging Platform (UMP) SDK হল একটি গোপনীয়তা ও মেসেজিং টুল যা আপনাকে গোপনীয়তা সংক্রান্ত পছন্দ ম্যানেজ করতে সাহায্য করে। আরও তথ্যের জন্য, গোপনীয়তা ও মেসেজিং সম্পর্কে দেখুন। আপনি Objective-C বা Swift UMP স্যাম্পেল অ্যাপে UMP SDK-এর সাথে কাজ করে এমন IMA প্রয়োগ দেখতে পাবেন।

মেসেজের ধরন তৈরি করা

আপনার Ad Manager অ্যাকাউন্টের গোপনীয়তা ও মেসেজিং ট্যাবে গিয়ে উপলভ্য ব্যবহারকারীর মেসেজের ধরন বিকল্পের মধ্যে একটি বেছে নিয়ে ব্যবহারকারীর মেসেজ তৈরি করুন। আপনার প্রোজেক্টে সেট করা ইন্টার‍্যাক্টিভ মিডিয়া বিজ্ঞাপন অ্যাপ্লিকেশন আইডি থেকে তৈরি করা গোপনীয়তা মেসেজ দেখানোর চেষ্টা UMP SDK করে।

আরও বিবরণের জন্য, গোপনীয়তা ও মেসেজিং সম্পর্কে দেখুন।

SDK ইমপোর্ট করুন

UMP SDK, IMA SDK-এর ডিপেন্ডেন্সি হিসেবে অন্তর্ভুক্ত নয়, তাই আপনাকে এটি আলাদাভাবে যোগ করতে হবে।

CocoaPods (হলে ভাল)

iOS প্রোজেক্টে SDK ইমপোর্ট করার সবচেয়ে সহজ উপায় হল CocoaPods ব্যবহার করা। আপনার প্রজেক্টের Podfile খুলুন এবং আপনার অ্যাপের টার্গেটে এই লাইনটি যোগ করুন:

pod 'GoogleUserMessagingPlatform'

তারপর, নিম্নলিখিত কমান্ড রান করুন:

pod install --repo-update

আপনি CocoaPods-এ নতুন হলে, কীভাবে Podfiles তৈরি ও ব্যবহার করতে হয় সেই সম্পর্কে বিস্তারিত জানতে CocoaPods ব্যবহার করা দেখুন।

Swift Package Manager

UMP SDK-তে Swift প্যাকেজ ম্যানেজারও কাজ করে। Swift প্যাকেজ ইমপোর্ট করতে এইসব ধাপ অনুসরণ করুন।

  1. Xcode-এ, ফাইল > প্যাকেজ যোগ করুন... বিকল্পে গিয়ে UMP SDK Swift প্যাকেজ ইনস্টল করুন।

  2. প্রম্পটে, UMP SDK Swift Package GitHub রেপোজিটরি সার্চ করুন:

    https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
    
  3. আপনি যে UMP SDK Swift প্যাকেজ ব্যবহার করতে চান তার ভার্সন বেছে নিন। নতুন প্রোজেক্টের জন্য, আমরা পরবর্তী মেজর ভার্সন পর্যন্ত ব্যবহার করার সাজেশন দিই।

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

অ্যাপ্লিকেশন আইডি যোগ করুন

আপনি Ad Manager UI-তে আপনার অ্যাপ্লিকেশন আইডি খুঁজে পাবেন। নিচের কোড স্নিপেট ব্যবহার করে আপনার Info.plist এ আইডি যোগ করুন:

<key>UMPApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

requestConsentInfoUpdateWithParameters:completionHandler: ব্যবহার করে, অ্যাপ চালু করার সময় প্রতিবার ব্যবহারকারীর সম্মতি সংক্রান্ত তথ্যের আপডেট অনুরোধ করা উচিত। এই অনুরোধ নিম্নলিখিত বিষয়গুলি চেক করে:

  • সম্মতি প্রয়োজন কিনা। যেমন, প্রথমবার সম্মতি দেওয়ার জন্য অথবা আগের সম্মতি সংক্রান্ত সিদ্ধান্তের মেয়াদ শেষ হয়ে গেলে সম্মতি প্রয়োজন।
  • গোপনীয়তা বিকল্পের এন্ট্রি পয়েন্ট প্রয়োজন কিনা। কিছু গোপনীয়তা মেসেজের ক্ষেত্রে অ্যাপকে ব্যবহারকারীদের যেকোনও সময় তাদের গোপনীয়তা বিকল্প পরিবর্তন করার অনুমতি দিতে হয়।

Swift


// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  // ...
}

Objective-C


// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable requestConsentError) {
                           // ...
                         }];

গোপনীয়তা মেসেজ ফর্ম লোড ও উপস্থাপন করা

আপনি সবচেয়ে আপ-টু-ডেট সম্মতি স্ট্যাটাস পাওয়ার পরে, ব্যবহারকারীর সম্মতি সংগ্রহ করার জন্য প্রয়োজনীয় যেকোনও ফর্ম লোড করতে loadAndPresentIfRequiredFromViewController:completionHandler: কল করুন। লোড করার পরে, ফর্মটি সাথে সাথেই দেখা যায়।

Swift


try await ConsentForm.loadAndPresentIfRequired(from: viewController)

Objective-C


[UMPConsentForm
    loadAndPresentIfRequiredFromViewController:viewController
                             completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                 // Consent gathering process is complete.
                                }];

গোপনীয়তা সংক্রান্ত বিকল্প

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

গোপনীয়তা বিকল্পের এন্ট্রি পয়েন্ট প্রয়োজন কিনা তা চেক করুন

requestConsentInfoUpdateWithParameters:completionHandler:-এ কল করার পরে, আপনার অ্যাপের জন্য গোপনীয়তা বিকল্পের এন্ট্রি পয়েন্ট প্রয়োজন কিনা তা নির্ধারণ করতে UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus চেক করুন। এন্ট্রি পয়েন্ট প্রয়োজন হলে, আপনার অ্যাপে একটি দৃশ্যমান এবং ইন্টার‍্যাক্ট করা যায় এমন UI এলিমেন্ট যোগ করুন যা গোপনীয়তা বিকল্পের ফর্ম দেখায়। গোপনীয়তা এন্ট্রি পয়েন্টের প্রয়োজন না হলে, আপনার UI এলিমেন্ট এমনভাবে কনফিগার করুন যাতে সেটি দেখা না যায় এবং ইন্টার‍্যাক্ট করা না যায়।

Swift


var isPrivacyOptionsRequired: Bool {
  return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}

Objective-C


- (BOOL)isPrivacyOptionsRequired {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
         UMPPrivacyOptionsRequirementStatusRequired;
}

- (void)gatherConsentFromConsentPresentationViewController:(UIViewController *)viewController
                                  consentGatheringComplete:
                                      (void (^)(NSError *_Nullable))consentGatheringComplete {
  UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
  // Set tag for under age of consent. Use NO constant to indicate that the user is not under age.
  parameters.tagForUnderAgeOfConsent = NO;

  UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
  // Uncomment the following line to simulate a consent request from users in the
  // European Economic Area (EEA) for testing purposes.
  // debugSettings.geography = UMPDebugGeographyEEA;
  parameters.debugSettings = debugSettings;

  // Requesting an update to consent information should be called on every app launch.
  [UMPConsentInformation.sharedInstance
      requestConsentInfoUpdateWithParameters:parameters
                           completionHandler:^(NSError *_Nullable requestConsentError) {
                             // ...
                           }];
}

- (void)loadAndPresentIfRequiredFromViewController:(UIViewController *)viewController
                           completionHandler:(void (^)(NSError *_Nullable))completionHandler {
  [UMPConsentForm
      loadAndPresentIfRequiredFromViewController:viewController
                               completionHandler:^(NSError *_Nullable loadAndPresentError) {
                                   // Consent gathering process is complete.
                                  }];
}

- (void)presentPrivacyOptionsFormFromViewController:(UIViewController *)viewController
                                  completionHandler:
                                      (void (^)(NSError *_Nullable))completionHandler {
  [UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                            completionHandler:completionHandler];
}

@end

গোপনীয়তা সংক্রান্ত বিকল্পের প্রয়োজনীয়তার স্ট্যাটাসের সম্পূর্ণ তালিকা দেখতে, UMPPrivacyOptionsRequirementStatus দেখুন।

গোপনীয়তা বিকল্প ফর্ম উপস্থাপন করা

ব্যবহারকারী আপনার এলিমেন্টের সাথে ইন্টার‍্যাক্ট করলে, গোপনীয়তা বিকল্পের ফর্মটি দেখান:

Swift


ConsentForm.presentPrivacyOptionsForm(
  from: viewController, completionHandler: completionHandler)

Objective-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

ব্যবহারকারীর সম্মতি নিয়ে বিজ্ঞাপন দেখানোর অনুরোধ করা

বিজ্ঞাপনের অনুরোধ করার আগে, আপনি ব্যবহারকারীর থেকে সম্মতি পেয়েছেন কিনা তা চেক করতে UMPConsentInformation.sharedInstance.canRequestAds ব্যবহার করুন:

Swift

ConsentInformation.shared.canRequestAds

Objective-C

UMPConsentInformation.sharedInstance.canRequestAds;

সম্মতি সংগ্রহ করার সময় আপনি বিজ্ঞাপন অনুরোধ করতে পারবেন কিনা তা চেক করার জন্য নিচে উল্লেখ করা জায়গাগুলি দেখুন:

  • বর্তমান সেশনে UMP SDK সম্মতি সংগ্রহ করার পরে।
  • আপনি requestConsentInfoUpdateWithParameters:completionHandler:-কে কল করার ঠিক পরেই। UMP SDK হয়ত আগের অ্যাপ সেশনে সম্মতি পেয়েছে।

সম্মতি সংগ্রহ করার প্রসেস চলাকালীন কোনও সমস্যা হলে, আপনি বিজ্ঞাপন দেখানোর অনুরোধ করতে পারবেন কিনা তা চেক করুন। UMP SDK আগের অ্যাপ সেশন থেকে সম্মতি সংক্রান্ত স্ট্যাটাস ব্যবহার করে।

অপ্রয়োজনীয় বিজ্ঞাপনের অনুরোধের কাজ আটকানো

সম্মতি সংগ্রহ করার পরে এবং requestConsentInfoUpdateWithParameters:completionHandler: কল করার পরে আপনি UMPConsentInformation.sharedInstance.canRequestAds চেক করার সময়, আপনার লজিক যেন অপ্রয়োজনীয় বিজ্ঞাপনের অনুরোধ আটকায় তা নিশ্চিত করুন, কারণ এর ফলে দুটি চেক থেকেই true রিটার্ন হতে পারে। যেমন, কোনও বুলিয়ান ভেরিয়েবলের সাথে।

পরীক্ষা করা

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

  1. requestConsentInfoUpdateWithParameters:completionHandler:-এ কল করুন।
  2. নিচের উদাহরণের মতো মেসেজের জন্য লগ আউটপুট চেক করুন, যা আপনার ডিভাইস আইডি এবং কীভাবে এটি টেস্ট ডিভাইস হিসেবে যোগ করতে হয় তা দেখায়:

    <UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
    
  3. আপনার ক্লিপবোর্ডে টেস্ট ডিভাইসের আইডি কপি করুন।

  4. UMPDebugSettings().testDeviceIdentifiers-এ কল করতে আপনার কোড পরিবর্তন করুন এবং আপনার টেস্ট ডিভাইস আইডির তালিকা পাস করুন।

    Swift

    let parameters = RequestParameters()
    let debugSettings = DebugSettings()
    
    debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
    parameters.debugSettings = debugSettings
    
    // Include the UMPRequestParameters in your consent request.
    ConsentInformation.shared.requestConsentInfoUpdate(
        with: parameters,
        completionHandler: { error in
          // ...
        })
    

    Objective-C

    UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
    UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
    
    debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
    parameters.debugSettings = debugSettings;
    
    // Include the UMPRequestParameters in your consent request.
    [UMPConsentInformation.sharedInstance
        requestConsentInfoUpdateWithParameters:parameters
                            completionHandler:^(NSError *_Nullable error){
                              // ...
    }];
    

ভৌগোলিক অবস্থান ফোর্স করা

UMP SDK আপনার অ্যাপের আচরণ পরীক্ষা করার একটি উপায় প্রদান করে, যেন ডিভাইসটি ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA), যুক্তরাজ্য (UK) এবং সুইজারল্যান্ডের মতো বিভিন্ন অঞ্চলে অবস্থিত। এটি UMPDebugGeography ব্যবহার করে করা হয়। মনে রাখবেন যে ডিবাগ সেটিংস শুধুমাত্র টেস্ট ডিভাইসে কাজ করে।

Swift

let parameters = RequestParameters()
let debugSettings = DebugSettings()

debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings

// Include the UMPRequestParameters in your consent request.
ConsentInformation.shared.requestConsentInfoUpdate(
    with: parameters,
    completionHandler: { error in
      // ...
    })

Objective-C

UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];

debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;

// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable error){
                           // ...
}];

UMP SDK-এর মাধ্যমে আপনার অ্যাপ পরীক্ষা করার সময়, SDK-এর স্ট্যাটাস রিসেট করলে আপনার সুবিধা হতে পারে, যাতে আপনি ব্যবহারকারীর প্রথমবার ইনস্টল করার অভিজ্ঞতা সিমুলেট করতে পারেন। এটি করার জন্য SDK reset পদ্ধতি প্রদান করে।

Swift

ConsentInformation.shared.reset()

Objective-C

[UMPConsentInformation.sharedInstance reset];

GitHub-এ উদাহরণ

এই পৃষ্ঠায় UMP SDK ইন্টিগ্রেশনের সম্পূর্ণ উদাহরণ দেখুন Swift UmpExample এবং Objective-C UmpExample.