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 প্যাকেজ ম্যানেজার
এছাড়াও, UMP SDK-তে Swift প্যাকেজ ম্যানেজার কাজ করে। Swift প্যাকেজ ইমপোর্ট করতে এইসব ধাপ অনুসরণ করুন।
Xcode-এ, ফাইল > প্যাকেজ যোগ করুন... বিকল্পে গিয়ে UMP SDK Swift প্যাকেজ ইনস্টল করুন।
যে প্রম্পটটি দেখানো হবে, সেখানে UMP SDK Swift Package GitHub রিপোজিটরি সার্চ করুন:
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.gitআপনি 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 রিটার্ন করতে পারে। যেমন, বুলিয়ান ভেরিয়েবল
ব্যবহার করে।
পরীক্ষা করা
আপনি ডেভেলপ করার সময় অ্যাপে ইন্টিগ্রেশন টেস্ট করতে চাইলে, আপনার টেস্ট ডিভাইস প্রোগ্রাম্যাটিক্যালি রেজিস্টার করতে এইসব ধাপ অনুসরণ করুন। আপনার অ্যাপ রিলিজ করার আগে, এইসব টেস্ট ডিভাইস আইডি সেট করে এমন কোড মুছে দিতে ভুলবেন না।
requestConsentInfoUpdateWithParameters:completionHandler:-এ কল করুন।নিচের উদাহরণের মতো মেসেজের জন্য লগ আউটপুট চেক করুন, যা আপনার ডিভাইস আইডি এবং কীভাবে এটি একটি টেস্ট ডিভাইস হিসেবে যোগ করতে হয় তা দেখায়:
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]আপনার ক্লিপবোর্ডে টেস্ট ডিভাইসের আইডি কপি করুন।
আপনার কোড পরিবর্তন করে
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-এ।