Google ব্যবহারকারী মেসেজিং প্ল্যাটফর্ম (UMP) SDK হল একটি গোপনীয়তা এবং মেসেজিং টুল যা আপনাকে গোপনীয়তা পছন্দগুলি পরিচালনা করতে সহায়তা করে৷ আরও তথ্যের জন্য, গোপনীয়তা এবং বার্তাপ্রেরণ সম্পর্কে দেখুন।
একটি বার্তা টাইপ তৈরি করুন
আপনার AdMob অ্যাকাউন্টের গোপনীয়তা এবং বার্তাপ্রেরণ ট্যাবের অধীনে উপলব্ধ ব্যবহারকারী বার্তাগুলির একটি দিয়ে ব্যবহারকারীর বার্তা তৈরি করুন৷ UMP SDK আপনার প্রজেক্টে সেট করা AdMob অ্যাপ্লিকেশন আইডি থেকে তৈরি একটি গোপনীয়তা বার্তা প্রদর্শন করার চেষ্টা করে।
আরো বিস্তারিত জানার জন্য, গোপনীয়তা এবং বার্তাপ্রেরণ সম্পর্কে দেখুন।
SDK আমদানি করুন
কোকোপডস (পছন্দের)
একটি iOS প্রকল্পে SDK আমদানি করার সবচেয়ে সহজ উপায় হল CocoaPods ব্যবহার করা। আপনার প্রকল্পের Podfile খুলুন এবং আপনার অ্যাপের লক্ষ্যে এই লাইন যোগ করুন:
pod 'GoogleUserMessagingPlatform'
তারপর, নিম্নলিখিত কমান্ড চালান:
pod install --repo-update
আপনি যদি CocoaPods-এ নতুন হয়ে থাকেন, কিভাবে Podfiles তৈরি এবং ব্যবহার করতে হয় তার বিস্তারিত জানার জন্য CocoaPods ব্যবহার করা দেখুন।
সুইফট প্যাকেজ ম্যানেজার
UMP SDK এছাড়াও সুইফট প্যাকেজ ম্যানেজারকে সমর্থন করে। সুইফট প্যাকেজ আমদানি করতে এই পদক্ষেপগুলি অনুসরণ করুন।
Xcode-এ, ফাইল > প্যাকেজ যোগ করুন... এ নেভিগেট করে UMP SDK সুইফট প্যাকেজ ইনস্টল করুন।
প্রদর্শিত প্রম্পটে, UMP SDK সুইফট প্যাকেজ GitHub সংগ্রহস্থল অনুসন্ধান করুন:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git
আপনি যে UMP SDK সুইফট প্যাকেজটি ব্যবহার করতে চান তার সংস্করণ নির্বাচন করুন। নতুন প্রকল্পের জন্য, আমরা আপ টু নেক্সট মেজর সংস্করণ ব্যবহার করার পরামর্শ দিই।
Xcode তারপর আপনার প্যাকেজ নির্ভরতা সমাধান করে এবং পটভূমিতে ডাউনলোড করে। কীভাবে প্যাকেজ নির্ভরতা যুক্ত করবেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য, অ্যাপলের নিবন্ধটি দেখুন।
ম্যানুয়াল ডাউনলোড
SDK আমদানি করার অন্য উপায় হল এটি ম্যানুয়ালি করা।
তারপরে, আপনার Xcode প্রকল্পে ফ্রেমওয়ার্কটি টেনে আনুন, প্রয়োজনে আপনি আইটেমগুলি অনুলিপি করুন নির্বাচন করুন তা নিশ্চিত করে৷
তারপরে আপনি ব্যবহার করে আপনার প্রয়োজনীয় যেকোন ফাইলে ফ্রেমওয়ার্ক অন্তর্ভুক্ত করতে পারেন:
সুইফট
import UserMessagingPlatform
উদ্দেশ্য-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
অ্যাপ্লিকেশন আইডি যোগ করুন
আপনি AdMob UI- তে আপনার অ্যাপ্লিকেশন আইডি খুঁজে পেতে পারেন। নিম্নলিখিত কোড স্নিপেট সহ আপনার Info.plist
এ ID যোগ করুন:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
সম্মতি সংগ্রহ করুন
সম্মতি সংগ্রহ করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:
- সবচেয়ে সাম্প্রতিক ব্যবহারকারীর সম্মতি তথ্যের জন্য অনুরোধ.
- প্রয়োজনে একটি সম্মতি ফর্ম লোড করুন এবং উপস্থাপন করুন।
সম্মতি তথ্যের জন্য অনুরোধ
প্রতিটি অ্যাপ লঞ্চের সময় আপনার ব্যবহারকারীর সম্মতির তথ্য আপডেট করার অনুরোধ করা উচিত, requestConsentInfoUpdate(with:completionHandler:)
ব্যবহার করে। এই অনুরোধ নিম্নলিখিত পরীক্ষা করে:
- সম্মতি প্রয়োজন কিনা । উদাহরণস্বরূপ, প্রথমবারের জন্য সম্মতি প্রয়োজন, বা পূর্ববর্তী সম্মতির সিদ্ধান্তের মেয়াদ শেষ হয়ে গেছে।
- একটি গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট প্রয়োজন কিনা . কিছু গোপনীয়তা বার্তার জন্য অ্যাপের প্রয়োজন হয় যাতে ব্যবহারকারীরা যে কোনো সময় তাদের গোপনীয়তা বিকল্পগুলি পরিবর্তন করতে পারেন।
প্রয়োজনে একটি গোপনীয়তা বার্তা ফর্ম লোড করুন এবং উপস্থাপন করুন
আপনি সর্বাধিক আপ-টু-ডেট সম্মতি স্থিতি পাওয়ার পরে, ব্যবহারকারীর সম্মতি সংগ্রহের জন্য প্রয়োজনীয় যে কোনও ফর্ম লোড করতে loadAndPresentIfRequired(from:)
কল করুন। লোড করার পরে, ফর্মগুলি অবিলম্বে উপস্থিত হয়।
নিম্নলিখিত কোডটি প্রদর্শন করে যে কীভাবে ব্যবহারকারীর সর্বশেষ সম্মতির তথ্যের জন্য অনুরোধ করতে হয়। যদি প্রয়োজন হয়, কোডটি লোড হয় এবং একটি গোপনীয়তা বার্তা ফর্ম উপস্থাপন করে:
সুইফট
// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
guard requestConsentError == nil else {
return consentGatheringComplete(requestConsentError)
}
Task { @MainActor in
do {
try await UMPConsentForm.loadAndPresentIfRequired(from: viewController)
// Consent has been gathered.
consentGatheringComplete(nil)
} catch {
consentGatheringComplete(error)
}
}
}
সুইফটইউআই
// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
guard requestConsentError == nil else {
return consentGatheringComplete(requestConsentError)
}
Task { @MainActor in
do {
try await UMPConsentForm.loadAndPresentIfRequired(from: nil)
// Consent has been gathered.
consentGatheringComplete(nil)
} catch {
consentGatheringComplete(error)
}
}
}
উদ্দেশ্য-C
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
if (requestConsentError) {
consentGatheringComplete(requestConsentError);
} else {
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(
NSError
*_Nullable loadAndPresentError) {
// Consent has been gathered.
consentGatheringComplete(
loadAndPresentError);
}];
}
}];
গোপনীয়তা বিকল্প
কিছু গোপনীয়তা বার্তা ফর্ম প্রকাশক-রেন্ডার করা গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট থেকে উপস্থাপিত হয়, ব্যবহারকারীদের যে কোনো সময় তাদের গোপনীয়তা বিকল্পগুলি পরিচালনা করতে দেয়। গোপনীয়তা বিকল্প এন্ট্রি পয়েন্টে আপনার ব্যবহারকারীরা কোন বার্তা দেখেন সে সম্পর্কে আরও জানতে, উপলভ্য ব্যবহারকারী বার্তা প্রকারগুলি দেখুন।
একটি গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট প্রয়োজন কিনা পরীক্ষা করুন
আপনি requestConsentInfoUpdate(with:completionHandler:)
কল করার পরে, আপনার অ্যাপের জন্য একটি গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট প্রয়োজন কিনা তা নির্ধারণ করতে UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus
চেক করুন:
সুইফট
var isPrivacyOptionsRequired: Bool {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus == .required
}
উদ্দেশ্য-C
- (BOOL)isPrivacyOptionsRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
আপনার অ্যাপে একটি দৃশ্যমান উপাদান যোগ করুন
যদি একটি গোপনীয়তা এন্ট্রি পয়েন্ট প্রয়োজন হয়, আপনার অ্যাপে একটি দৃশ্যমান এবং ইন্টারঅ্যাক্টেবল UI উপাদান যোগ করুন যা গোপনীয়তা বিকল্প ফর্ম উপস্থাপন করে। যদি একটি গোপনীয়তা এন্ট্রি পয়েন্টের প্রয়োজন না হয়, তাহলে আপনার UI উপাদানটি দৃশ্যমান এবং ইন্টারঅ্যাক্টেবল না হওয়ার জন্য কনফিগার করুন।
সুইফট
self.privacySettingsButton.isEnabled =
GoogleMobileAdsConsentManager.shared.isPrivacyOptionsRequired
উদ্দেশ্য-C
strongSelf.privacySettingsButton.enabled =
GoogleMobileAdsConsentManager.sharedInstance
.isPrivacyOptionsRequired;
গোপনীয়তা বিকল্প ফর্ম উপস্থাপন করুন
ব্যবহারকারী আপনার উপাদানের সাথে ইন্টারঅ্যাক্ট করলে, গোপনীয়তা বিকল্প ফর্মটি উপস্থাপন করুন:
সুইফট
try await UMPConsentForm.presentPrivacyOptionsForm(from: viewController)
সুইফটইউআই
try await UMPConsentForm.presentPrivacyOptionsForm(from: nil)
উদ্দেশ্য-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
বিজ্ঞাপনের জন্য অনুরোধ করুন
আপনার অ্যাপে বিজ্ঞাপনের অনুরোধ করার আগে, আপনি UMPConsentInformation.sharedInstance.canRequestAds
ব্যবহার করে ব্যবহারকারীর কাছ থেকে সম্মতি পেয়েছেন কিনা তা পরীক্ষা করুন। সম্মতি সংগ্রহ করার সময় চেক করার দুটি জায়গা আছে:
- বর্তমান অধিবেশনে সম্মতির পর।
- আপনি
requestConsentInfoUpdate(with:completionHandler:)
। পূর্ববর্তী অধিবেশনে সম্ভাব্য সম্মতি পাওয়া গেছে। লেটেন্সি সর্বোত্তম অনুশীলন হিসাবে, আমরা সুপারিশ করি যে কলব্যাক সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবেন না যাতে আপনি আপনার অ্যাপ চালু হওয়ার পরে যত তাড়াতাড়ি সম্ভব বিজ্ঞাপন লোড করা শুরু করতে পারেন।
সম্মতি সংগ্রহের প্রক্রিয়া চলাকালীন কোনো ত্রুটি দেখা দিলে, আপনি বিজ্ঞাপনের জন্য অনুরোধ করতে পারেন কিনা তা দেখতে হবে। UMP SDK আগের সেশনের সম্মতি স্ট্যাটাস ব্যবহার করে।
সম্মতি সংগ্রহের প্রক্রিয়া চলাকালীন আপনি বিজ্ঞাপনের অনুরোধ করতে পারেন কিনা তা নিচের কোডটি পরীক্ষা করে:
সুইফট
GoogleMobileAdsConsentManager.shared.gatherConsent(from: self) { [weak self] consentError in
guard let self else { return }
if let consentError {
// Consent gathering failed.
print("Error: \(consentError.localizedDescription)")
}
if GoogleMobileAdsConsentManager.shared.canRequestAds {
self.startGoogleMobileAdsSDK()
}
// ...
}
// This sample attempts to load ads using consent obtained in the previous session.
if GoogleMobileAdsConsentManager.shared.canRequestAds {
startGoogleMobileAdsSDK()
}
সুইফটইউআই
GoogleMobileAdsConsentManager.shared.gatherConsent { consentError in
if let consentError {
// Consent gathering failed.
print("Error: \(consentError.localizedDescription)")
}
// Check if you can request ads in `startGoogleMobileAdsSDK` before initializing the
// Google Mobile Ads SDK.
GoogleMobileAdsConsentManager.shared.startGoogleMobileAdsSDK()
// ...
}
// This sample attempts to load ads using consent obtained in the previous session.
GoogleMobileAdsConsentManager.shared.startGoogleMobileAdsSDK()
উদ্দেশ্য-C
[GoogleMobileAdsConsentManager.sharedInstance
gatherConsentFromConsentPresentationViewController:self
consentGatheringComplete:^(NSError *_Nullable consentError) {
if (consentError) {
// Consent gathering failed.
NSLog(@"Error: %@", consentError.localizedDescription);
}
__strong __typeof__(self) strongSelf = weakSelf;
if (!strongSelf) {
return;
}
if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
[strongSelf startGoogleMobileAdsSDK];
}
// ...
}];
// This sample attempts to load ads using consent obtained in the previous session.
if (GoogleMobileAdsConsentManager.sharedInstance.canRequestAds) {
[self startGoogleMobileAdsSDK];
}
ব্যবহারকারীর সম্মতি সংগ্রহ করার পরে নিম্নলিখিত কোডটি Google মোবাইল বিজ্ঞাপন SDK সেট আপ করে:
সুইফট
private func startGoogleMobileAdsSDK() {
DispatchQueue.main.async {
guard !self.isMobileAdsStartCalled else { return }
self.isMobileAdsStartCalled = true
// Initialize the Google Mobile Ads SDK.
GADMobileAds.sharedInstance().start()
if self.isViewDidAppearCalled {
self.loadBannerAd()
}
}
}
সুইফটইউআই
/// Method to initialize the Google Mobile Ads SDK. The SDK should only be initialized once.
func startGoogleMobileAdsSDK() {
guard canRequestAds, !isMobileAdsStartCalled else { return }
isMobileAdsStartCalled = true
// Initialize the Google Mobile Ads SDK.
GADMobileAds.sharedInstance().start()
}
উদ্দেশ্য-C
- (void)startGoogleMobileAdsSDK {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
[self loadBannerAd];
});
}
টেস্টিং
আপনি বিকাশের সাথে সাথে আপনার অ্যাপে ইন্টিগ্রেশন পরীক্ষা করতে চাইলে, আপনার পরীক্ষা ডিভাইসটিকে প্রোগ্রাম্যাটিকভাবে নিবন্ধন করতে এই পদক্ষেপগুলি অনুসরণ করুন৷ আপনার অ্যাপ রিলিজ করার আগে এই টেস্ট ডিভাইস আইডি সেট করে এমন কোডটি সরিয়ে ফেলতে ভুলবেন না।
-
requestConsentInfoUpdate(with:completionHandler:)
। নিম্নলিখিত উদাহরণের অনুরূপ একটি বার্তার জন্য লগ আউটপুট পরীক্ষা করুন, যা আপনার ডিভাইস আইডি দেখায় এবং এটিকে একটি পরীক্ষা ডিভাইস হিসাবে কীভাবে যুক্ত করতে হয়:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
আপনার ক্লিপবোর্ডে আপনার টেস্ট ডিভাইস আইডি কপি করুন।
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 আপনার অ্যাপের আচরণ পরীক্ষা করার একটি উপায় প্রদান করে যেন ডিভাইসটি বিভিন্ন অঞ্চলে, যেমন EEA বা UK, geography
ব্যবহার করে। মনে রাখবেন যে ডিবাগ সেটিংস শুধুমাত্র পরীক্ষা ডিভাইসে কাজ করে।
সুইফট
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];
গিটহাবের উদাহরণ
এই পৃষ্ঠায় কভার করা UMP SDK ইন্টিগ্রেশনের একটি সম্পূর্ণ উদাহরণ দেখুন