শুরু করুন

Google ব্যবহারকারী মেসেজিং প্ল্যাটফর্ম (UMP) SDK হল একটি গোপনীয়তা এবং মেসেজিং টুল যা আপনাকে গোপনীয়তা পছন্দগুলি পরিচালনা করতে সহায়তা করে৷ আরও তথ্যের জন্য, গোপনীয়তা এবং বার্তাপ্রেরণ সম্পর্কে দেখুন। আপনি অবজেক্টিভ-সি বা সুইফট ইউএমপি নমুনা অ্যাপগুলিতে UMP SDK-এর সাথে একটি কার্যকরী IMA বাস্তবায়ন দেখতে পারেন।

একটি বার্তা টাইপ তৈরি করুন

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

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

SDK আমদানি করুন

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

কোকোপডস (পছন্দের)

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

pod 'GoogleUserMessagingPlatform'

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

pod install --repo-update

আপনি যদি CocoaPods-এ নতুন হয়ে থাকেন, কিভাবে Podfiles তৈরি এবং ব্যবহার করতে হয় তার বিস্তারিত জানার জন্য CocoaPods ব্যবহার করা দেখুন।

সুইফট প্যাকেজ ম্যানেজার

UMP SDK এছাড়াও সুইফট প্যাকেজ ম্যানেজারকে সমর্থন করে। সুইফট প্যাকেজ আমদানি করতে এই পদক্ষেপগুলি অনুসরণ করুন।

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

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

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

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

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

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

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

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

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

সুইফট


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

উদ্দেশ্য-C


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

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

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

সুইফট


try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)

উদ্দেশ্য-C


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

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

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

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

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

সুইফট


var isPrivacyOptionsRequired: Bool {
  return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}

উদ্দেশ্য-C


- (BOOL)areGDPRConsentMessagesRequired {
  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 দেখুন।

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

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

সুইফট


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

উদ্দেশ্য-C


[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
                                          completionHandler:completionHandler];

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

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

সুইফট

UMPConsentInformation.sharedInstance.canRequestAds

উদ্দেশ্য-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 কল করতে আপনার কোড পরিবর্তন করুন এবং আপনার টেস্ট ডিভাইস আইডিগুলির একটি তালিকায় পাস করুন৷

    সুইফট

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

    উদ্দেশ্য-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 আপনার অ্যাপের আচরণ পরীক্ষা করার একটি উপায় প্রদান করে যেন ডিভাইসটি UMPDebugGeography ব্যবহার করে EEA বা UK-এর মতো বিভিন্ন অঞ্চলে অবস্থিত। মনে রাখবেন যে ডিবাগ সেটিংস শুধুমাত্র পরীক্ষা ডিভাইসে কাজ করে।

সুইফট

let parameters = UMPRequestParameters()
let debugSettings = UMPDebugSettings()

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

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

উদ্দেশ্য-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 পদ্ধতি প্রদান করে।

সুইফট

UMPConsentInformation.sharedInstance.reset()

উদ্দেশ্য-C

[UMPConsentInformation.sharedInstance reset];

গিটহাবের উদাহরণ

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