গুগল ইউজার মেসেজিং প্ল্যাটফর্ম (ইউএমপি) এসডিকে হলো একটি প্রাইভেসি ও মেসেজিং টুল যা আপনাকে প্রাইভেসি সংক্রান্ত সিদ্ধান্তগুলো পরিচালনা করতে সাহায্য করে। আরও তথ্যের জন্য, ‘প্রাইভেসি ও মেসেজিং সম্পর্কে’ দেখুন। আপনি অবজেক্টিভ-সি অথবা সুইফট ইউএমপি স্যাম্পল অ্যাপগুলোতে ইউএমপি এসডিকে ব্যবহার করে একটি কার্যকর আইএমএ ইমপ্লিমেন্টেশন দেখতে পারেন।
একটি বার্তার ধরণ তৈরি করুন
আপনার অ্যাড ম্যানেজার অ্যাকাউন্টের ' প্রাইভেসি অ্যান্ড মেসেজিং' ট্যাবের অধীনে উপলব্ধ ব্যবহারকারী বার্তার প্রকারগুলির মধ্যে একটি ব্যবহার করে ব্যবহারকারী বার্তা তৈরি করুন। UMP SDK আপনার প্রোজেক্টে সেট করা ইন্টারেক্টিভ মিডিয়া অ্যাডস অ্যাপ্লিকেশন আইডি থেকে তৈরি একটি গোপনীয়তা বার্তা প্রদর্শন করার চেষ্টা করে।
আরও বিস্তারিত জানতে, গোপনীয়তা ও বার্তা আদানপ্রদান সম্পর্কে দেখুন।
SDK আমদানি করুন
UMP SDK, IMA SDK-এর একটি ডিপেন্ডেন্সি হিসেবে অন্তর্ভুক্ত নয়, তাই আপনাকে এটি নিজে থেকে স্পষ্টভাবে যোগ করতে হবে।
কোকোপডস (পছন্দনীয়)
একটি iOS প্রজেক্টে SDK ইম্পোর্ট করার সবচেয়ে সহজ উপায় হলো CocoaPods ব্যবহার করা। আপনার প্রজেক্টের Podfile খুলুন এবং আপনার অ্যাপের টার্গেটে এই লাইনটি যোগ করুন:
pod 'GoogleUserMessagingPlatform'
তারপর, নিম্নলিখিত কমান্ডটি চালান:
pod install --repo-updateআপনি যদি CocoaPods-এ নতুন হন, তাহলে Podfile কীভাবে তৈরি ও ব্যবহার করতে হয় সে সম্পর্কে বিস্তারিত জানতে “Using CocoaPods” দেখুন।
সুইফট প্যাকেজ ম্যানেজার
UMP SDK সুইফট প্যাকেজ ম্যানেজারকেও সমর্থন করে। সুইফট প্যাকেজ ইম্পোর্ট করতে এই ধাপগুলো অনুসরণ করুন।
Xcode-এ, File > Add Packages... -এ গিয়ে UMP SDK Swift Package-টি ইনস্টল করুন।
প্রদর্শিত প্রম্পটে, UMP SDK Swift Package GitHub রিপোজিটরিটি খুঁজুন:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.gitআপনি UMP SDK Swift প্যাকেজের যে সংস্করণটি ব্যবহার করতে চান, তা নির্বাচন করুন। নতুন প্রোজেক্টের জন্য, আমরা ‘ আপ টু নেক্সট মেজর ভার্সন’ ব্যবহার করার পরামর্শ দিই।
এরপর Xcode আপনার প্যাকেজ ডিপেন্ডেন্সিগুলো রিজলভ করে এবং ব্যাকগ্রাউন্ডে সেগুলো ডাউনলোড করে। প্যাকেজ ডিপেন্ডেন্সি কীভাবে যোগ করতে হয়, সে সম্পর্কে আরও বিস্তারিত জানতে Apple-এর আর্টিকেলটি দেখুন।
অ্যাপ্লিকেশন আইডি যোগ করুন
আপনি আপনার অ্যাপ্লিকেশন আইডি অ্যাড ম্যানেজার UI- তে খুঁজে পাবেন। নিম্নলিখিত কোড স্নিপেট ব্যবহার করে আইডিটি আপনার Info.plist এ যোগ করুন:
<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.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
// ...
}
উদ্দেশ্য-সি
// 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 ConsentForm.loadAndPresentIfRequired(from: viewController)
উদ্দেশ্য-সি
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
গোপনীয়তার বিকল্পগুলি
কিছু গোপনীয়তা বার্তা ফর্ম একটি পাবলিশার-রেন্ডার করা গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট থেকে প্রদর্শিত হয়, যা ব্যবহারকারীদের যেকোনো সময় তাদের গোপনীয়তা বিকল্পগুলি পরিচালনা করতে দেয়। আপনার ব্যবহারকারীরা গোপনীয়তা বিকল্প এন্ট্রি পয়েন্টে কোন বার্তা দেখতে পান সে সম্পর্কে আরও জানতে, ‘উপলব্ধ ব্যবহারকারী বার্তার প্রকার’ দেখুন।
গোপনীয়তা বিকল্প প্রবেশের জন্য কোনো পয়েন্ট প্রয়োজন কিনা তা পরীক্ষা করুন।
requestConsentInfoUpdateWithParameters:completionHandler: কল করার পরে, আপনার অ্যাপের জন্য একটি প্রাইভেসি অপশন এন্ট্রি পয়েন্ট প্রয়োজন কিনা তা নির্ধারণ করতে UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus পরীক্ষা করুন। যদি একটি এন্ট্রি পয়েন্ট প্রয়োজন হয়, তাহলে আপনার অ্যাপে একটি দৃশ্যমান এবং ইন্টারেক্টেবল UI এলিমেন্ট যোগ করুন যা প্রাইভেসি অপশন ফর্মটি প্রদর্শন করে। যদি একটি প্রাইভেসি এন্ট্রি পয়েন্ট প্রয়োজন না হয়, তাহলে আপনার UI এলিমেন্টটিকে অদৃশ্য এবং ইন্টারেক্টেবল না হওয়ার জন্য কনফিগার করুন।
সুইফট
var isPrivacyOptionsRequired: Bool {
return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}
উদ্দেশ্য-সি
- (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 দেখুন।
গোপনীয়তার বিকল্প ফর্মটি উপস্থাপন করুন
যখন ব্যবহারকারী আপনার এলিমেন্টের সাথে ইন্টারঅ্যাক্ট করে, তখন প্রাইভেসি অপশন ফর্মটি উপস্থাপন করুন:
সুইফট
ConsentForm.presentPrivacyOptionsForm(
from: viewController, completionHandler: completionHandler)
উদ্দেশ্য-সি
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
ব্যবহারকারীর সম্মতিতে বিজ্ঞাপনের অনুরোধ করুন
বিজ্ঞাপনের অনুরোধ করার আগে, ব্যবহারকারীর কাছ থেকে সম্মতি পেয়েছেন কিনা তা যাচাই করতে UMPConsentInformation.sharedInstance.canRequestAds ব্যবহার করুন:
সুইফট
ConsentInformation.shared.canRequestAds
উদ্দেশ্য-সি
UMPConsentInformation.sharedInstance.canRequestAds;
সম্মতি সংগ্রহের সময় আপনি বিজ্ঞাপনের জন্য অনুরোধ করতে পারবেন কিনা, তা যাচাই করার জন্য নিম্নলিখিত স্থানগুলি তালিকাভুক্ত করা হলো:
- বর্তমান সেশনে UMP SDK সম্মতি সংগ্রহ করার পর।
- আপনি
requestConsentInfoUpdateWithParameters:completionHandler:কল করার ঠিক পরেই। UMP SDK হয়তো পূর্ববর্তী অ্যাপ সেশনে সম্মতি সংগ্রহ করে থাকতে পারে।
সম্মতি সংগ্রহের প্রক্রিয়ার সময় কোনো ত্রুটি ঘটলে, আপনি বিজ্ঞাপনের জন্য অনুরোধ করতে পারেন কিনা তা পরীক্ষা করুন। UMP SDK পূর্ববর্তী অ্যাপ সেশনের সম্মতির স্থিতি ব্যবহার করে।
অপ্রয়োজনীয় বিজ্ঞাপন অনুরোধের কাজ প্রতিরোধ করুন
সম্মতি সংগ্রহের পর এবং requestConsentInfoUpdateWithParameters:completionHandler: কল করার পর, আপনি যখন UMPConsentInformation.sharedInstance.canRequestAds চেক করবেন, তখন নিশ্চিত করুন যে আপনার লজিকটি অপ্রয়োজনীয় বিজ্ঞাপনের অনুরোধ প্রতিরোধ করে, যার ফলে উভয় চেকই true রিটার্ন করতে পারে। উদাহরণস্বরূপ, একটি বুলিয়ান ভেরিয়েবল ব্যবহার করে এটি করা যেতে পারে।
পরীক্ষা
আপনার অ্যাপ তৈরির সময় যদি ইন্টিগ্রেশনটি পরীক্ষা করতে চান, তাহলে প্রোগ্রাম্যাটিকভাবে আপনার টেস্ট ডিভাইসটি রেজিস্টার করতে এই ধাপগুলো অনুসরণ করুন। আপনার অ্যাপটি রিলিজ করার আগে, এই টেস্ট ডিভাইস আইডিগুলো সেট করার কোডটি অবশ্যই সরিয়ে ফেলবেন।
-
requestConsentInfoUpdateWithParameters:completionHandler:কল করুন। লগ আউটপুটে নিম্নলিখিত উদাহরণের মতো একটি বার্তা খুঁজুন, যেখানে আপনার ডিভাইস আইডি এবং এটিকে একটি টেস্ট ডিভাইস হিসেবে কীভাবে যুক্ত করতে হবে তা দেখানো হয়েছে:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]আপনার টেস্ট ডিভাইস আইডিটি ক্লিপবোর্ডে কপি করুন।
আপনার কোডটি পরিবর্তন করে
UMPDebugSettings().testDeviceIdentifiersকল করুন এবং আপনার টেস্ট ডিভাইস আইডিগুলোর একটি তালিকা পাস করুন।সুইফট
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 // ... })উদ্দেশ্য-সি
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 = 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
// ...
})
উদ্দেশ্য-সি
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 মেথডটি দেওয়া আছে।
সুইফট
ConsentInformation.shared.reset()
উদ্দেশ্য-সি
[UMPConsentInformation.sharedInstance reset];
গিটহাবে উদাহরণ
এই পৃষ্ঠায় বর্ণিত UMP SDK ইন্টিগ্রেশনের একটি সম্পূর্ণ উদাহরণ Swift UmpExample এবং Objective-C UmpExample- এ দেখুন।