Google ব্যবহারকারী মেসেজিং প্ল্যাটফর্ম (UMP) SDK হল একটি গোপনীয়তা এবং মেসেজিং টুল যা আপনাকে গোপনীয়তা পছন্দগুলি পরিচালনা করতে সহায়তা করে৷ আরও তথ্যের জন্য, দেখুনগোপনীয়তা এবং মেসেজিং সম্পর্কে
একটি বার্তা টাইপ তৈরি করুন
একটি দিয়ে ব্যবহারকারীর বার্তা তৈরি করুনউপলব্ধ ব্যবহারকারী বার্তা প্রকারআপনার গোপনীয়তা এবং মেসেজিং ট্যাবের অধীনেAdMobঅ্যাকাউন্ট UMP SDK থেকে তৈরি একটি গোপনীয়তা বার্তা প্রদর্শন করার চেষ্টা করে৷ AdMob আপনার প্রকল্পে সেট করা অ্যাপ্লিকেশন আইডি।
আরো বিস্তারিত জানার জন্য, দেখুনগোপনীয়তা এবং মেসেজিং সম্পর্কে
অ্যাপ্লিকেশন আইডি যোগ করুন
আপনি আপনার আবেদন আইডি খুঁজে পেতে পারেনAdMob UI ।আপনার আইডি যোগ করুননিম্নলিখিত কোড স্নিপেট সহ:
সম্মতি তথ্যের জন্য অনুরোধ
প্রতিটি অ্যাপ লঞ্চ করার সময় ব্যবহারকারীর সম্মতির তথ্য আপডেট করার অনুরোধ করা উচিত Update()
. এই অনুরোধ নিম্নলিখিত পরীক্ষা করে:
- সম্মতি প্রয়োজন কিনা । উদাহরণস্বরূপ, প্রথমবারের জন্য সম্মতি প্রয়োজন, বা পূর্ববর্তী সম্মতির সিদ্ধান্তের মেয়াদ শেষ হয়ে গেছে।
- একটি গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট প্রয়োজন কিনা . কিছু গোপনীয়তা বার্তার জন্য অ্যাপের প্রয়োজন হয় যাতে ব্যবহারকারীরা যে কোনো সময় তাদের গোপনীয়তা বিকল্পগুলি পরিবর্তন করতে পারেন।
অ্যাপ স্টার্টে কীভাবে স্থিতি পরীক্ষা করবেন তার একটি উদাহরণ এখানে দেওয়া হল:
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
}
প্রয়োজনে একটি গোপনীয়তা বার্তা ফর্ম লোড করুন এবং উপস্থাপন করুন
আপনি সর্বাধিক আপ-টু-ডেট সম্মতি স্থিতি পাওয়ার পরে, কল করুনLoadAndShowConsentFormIfRequired()
ব্যবহারকারীর সম্মতি সংগ্রহের জন্য প্রয়োজনীয় কোনো ফর্ম লোড করতে। লোড করার পরে, ফর্মগুলি অবিলম্বে উপস্থিত হয়।
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
});
}
ব্যবহারকারীর পছন্দ করার বা ফর্মটি খারিজ করার পরে যদি আপনার কোনও ক্রিয়া সম্পাদনের প্রয়োজন হয়, তবে সেই যুক্তিটি রাখুন Action<FormError>
callbackআপনার ফর্মের জন্য।
গোপনীয়তা বিকল্প
কিছু গোপনীয়তা বার্তা ফর্ম প্রকাশক-রেন্ডার করা গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট থেকে উপস্থাপিত হয়, ব্যবহারকারীদের যে কোনো সময় তাদের গোপনীয়তা বিকল্পগুলি পরিচালনা করতে দেয়। গোপনীয়তা বিকল্প এন্ট্রি পয়েন্টে আপনার ব্যবহারকারীরা কোন বার্তা দেখেন সে সম্পর্কে আরও জানতে, দেখুনউপলব্ধ ব্যবহারকারী বার্তা প্রকার .
একটি গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট বাস্তবায়ন করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- চেক করুন
PrivacyOptionsRequirementStatus
. - যদি একটি গোপনীয়তা বিকল্প এন্ট্রি পয়েন্ট প্রয়োজন হয়, আপনার অ্যাপে একটি দৃশ্যমান এবং ইন্টারঅ্যাক্টেবল UI উপাদান যোগ করুন।
- ব্যবহার করে গোপনীয়তা বিকল্প ফর্ম ট্রিগার
ShowPrivacyOptionsForm()
.
নিম্নলিখিত কোড উদাহরণ এই পদক্ষেপগুলি প্রদর্শন করে:
[SerializeField, Tooltip("Button to show the privacy options form.")]
private Button _privacyButton;
private void Start()
{
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.onClick.AddListener(UpdatePrivacyButton);
// Disable the privacy settings button by default.
_privacyButton.interactable = false;
}
}
/// <summary>
/// Shows the privacy options form to the user.
/// </summary>
public void ShowPrivacyOptionsForm()
{
Debug.Log("Showing privacy options form.");
ConsentForm.ShowPrivacyOptionsForm((FormError showError) =>
{
if (showError != null)
{
Debug.LogError("Error showing privacy options form with error: " + showError.Message);
}
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.interactable =
ConsentInformation.PrivacyOptionsRequirementStatus ==
PrivacyOptionsRequirementStatus.Required;
}
});
}
বিজ্ঞাপনের জন্য অনুরোধ করুন
আপনার অ্যাপে বিজ্ঞাপনের অনুরোধ করার আগে, আপনি ব্যবহারকারীর কাছ থেকে সম্মতি পেয়েছেন কিনা তা পরীক্ষা করে দেখুন CanRequestAds()
. সম্মতি সংগ্রহ করার সময় চেক করার দুটি জায়গা আছে:
- বর্তমান অধিবেশনে সম্মতির পর।
- আপনি ফোন করার পরপরই
Update()
. পূর্ববর্তী অধিবেশনে সম্ভাব্য সম্মতি পাওয়া গেছে। লেটেন্সি সর্বোত্তম অনুশীলন হিসাবে, আমরা সুপারিশ করি যে কলব্যাক সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবেন না যাতে আপনি আপনার অ্যাপ চালু হওয়ার পরে যত তাড়াতাড়ি সম্ভব বিজ্ঞাপন লোড করা শুরু করতে পারেন।
সম্মতি সংগ্রহের প্রক্রিয়া চলাকালীন কোনও ত্রুটি দেখা দিলে, আপনাকে এখনও বিজ্ঞাপনের অনুরোধ করার চেষ্টা করা উচিত। UMP SDK আগের সেশনের সম্মতি স্ট্যাটাস ব্যবহার করে।
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
if (ConsentInformation.CanRequestAds())
{
MobileAds.Initialize((InitializationStatus initstatus) =>
{
// TODO: Request an ad.
});
}
});
}
টেস্টিং
আপনি বিকাশের সাথে সাথে আপনার অ্যাপে ইন্টিগ্রেশন পরীক্ষা করতে চাইলে, আপনার পরীক্ষা ডিভাইসটিকে প্রোগ্রাম্যাটিকভাবে নিবন্ধন করতে এই পদক্ষেপগুলি অনুসরণ করুন৷ আপনার অ্যাপ রিলিজ করার আগে এই টেস্ট ডিভাইস আইডি সেট করে এমন কোডটি সরিয়ে ফেলতে ভুলবেন না।
- কল
Update()
. নিম্নলিখিত উদাহরণের অনুরূপ একটি বার্তার জন্য লগ আউটপুট পরীক্ষা করুন, যা আপনার ডিভাইস আইডি দেখায় এবং এটিকে একটি পরীক্ষা ডিভাইস হিসাবে কীভাবে যুক্ত করতে হয়:
অ্যান্ড্রয়েড
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
iOS
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
আপনার ক্লিপবোর্ডে আপনার টেস্ট ডিভাইস আইডি কপি করুন।
আপনার কোড পরিবর্তন করুন কল
DebugGeography.TestDeviceHashedIds
এবং পাস আপনার পরীক্ষার ডিভাইস আইডিগুলির একটি তালিকা।void Start() { var debugSettings = new ConsentDebugSettings { TestDeviceHashedIds = new List<string> { "TEST-DEVICE-HASHED-ID" } }; // Create a ConsentRequestParameters object. ConsentRequestParameters request = new ConsentRequestParameters { ConsentDebugSettings = debugSettings, }; // Check the current consent information status. ConsentInformation.Update(request, OnConsentInfoUpdated); }
একটি ভূগোল জোর করে
UMP SDK আপনার অ্যাপের আচরণ পরীক্ষা করার একটি উপায় প্রদান করে যেন ডিভাইসটি EEA বা UK ব্যবহার করে the DebugGeography
field on ConsentDebugSettings
. মনে রাখবেন যে ডিবাগ সেটিংস শুধুমাত্র পরীক্ষা ডিভাইসে কাজ করে।
void Start()
{
var debugSettings = new ConsentDebugSettings
{
// Geography appears as in EEA for debug devices.
DebugGeography = DebugGeography.EEA,
TestDeviceHashedIds = new List<string>
{
"TEST-DEVICE-HASHED-ID"
}
};
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters
{
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
সম্মতির অবস্থা রিসেট করুন
UMP SDK-এর সাথে আপনার অ্যাপ পরীক্ষা করার সময়, আপনি SDK-এর অবস্থা রিসেট করা সহায়ক বলে মনে করতে পারেন যাতে আপনি একজন ব্যবহারকারীর প্রথম ইনস্টল অভিজ্ঞতা অনুকরণ করতে পারেন। SDK প্রদান করে Reset()
এটি করার পদ্ধতি।
ConsentInformation.Reset();