UMP SDK সেট-আপ করা

Google User Messaging Platform (UMP) SDK হল একটি গোপনীয়তা ও মেসেজিং টুল যা আপনাকে গোপনীয়তা সংক্রান্ত পছন্দ ম্যানেজ করতে সাহায্য করে। আরও তথ্যের জন্য, গোপনীয়তা ও মেসেজিং সম্পর্কে দেখুন।

মেসেজের ধরন তৈরি করুন

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

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

  • সম্মতি প্রয়োজন কিনা। যেমন, প্রথমবার সম্মতি প্রয়োজন অথবা আগের সম্মতি সংক্রান্ত সিদ্ধান্তের মেয়াদ শেষ হয়ে গেছে।
  • গোপনীয়তা বিকল্পের এন্ট্রি পয়েন্ট প্রয়োজন কিনা। কিছু গোপনীয়তা মেসেজের ক্ষেত্রে অ্যাপকে ব্যবহারকারীদের যেকোনও সময় তাদের গোপনীয়তা সংক্রান্ত বিকল্প পরিবর্তন করার অনুমতি দিতে হয়।
/**
 * Requests consent information update on app launch.
 */
export function requestConsent(onComplete?: () => void) {
  requestConsentInfoUpdate({}, (error) => {
    if (error) {
      console.warn('Consent info update error:', error.message);
    } else {
      console.log('Consent info update complete.');
    }

    // Load and show consent form if required.
    loadAndPresentConsentForm(onComplete);
  });
}

গোপনীয়তা মেসেজ ফর্ম লোড ও উপস্থাপন করুন

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

/**
 * Loads and presents the privacy message form if required to collect user consent.
 */
export function loadAndPresentConsentForm(onComplete?: () => void) {
  loadAndShowConsentFormIfRequired((formError) => {
    if (formError) {
      console.warn('Consent form error:', formError.message);
    } else {
      console.log('Consent gathering complete.');
    }

    // Execute logic that depends on consent state (for example, initialize the SDK).
    onComplete?.();
  });
}

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

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

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

requestConsentInfoUpdate() কল করার পরে, আপনার অ্যাপের জন্য গোপনীয়তা বিকল্পের এন্ট্রি পয়েন্ট প্রয়োজন কিনা তা নির্ধারণ করতে getPrivacyOptionsRequirementStatus() চেক করুন। এন্ট্রি পয়েন্ট প্রয়োজন হলে, আপনার অ্যাপে একটি দৃশ্যমান এবং ইন্টার‍্যাক্ট করা যায় এমন UI এলিমেন্ট যোগ করুন যা গোপনীয়তা বিকল্প ফর্ম দেখায়। গোপনীয়তা এন্ট্রি পয়েন্টের প্রয়োজন না হলে, আপনার UI এলিমেন্ট যাতে দেখা না যায় এবং ইন্টার‍্যাক্ট করা না যায় সেইভাবে কনফিগার করুন।

/**
 * Helper to determine if the privacy options entry point is required.
 */
export function isPrivacyOptionsRequired(): boolean {
  return (
    getPrivacyOptionsRequirementStatus() ===
    PrivacyOptionsRequirementStatus.REQUIRED
  );
}

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

গোপনীয়তা সংক্রান্ত বিকল্পের ফর্ম দেখান

ব্যবহারকারী আপনার এলিমেন্টের সাথে ইন্টার‍্যাক্ট করলে, গোপনীয়তা সংক্রান্ত বিকল্পের ফর্ম দেখান:

/**
 * Renders a privacy options button if required by user consent policy.
 */
export function PrivacyOptionsButton({
  onDismissed,
}: {
  onDismissed?: (error?: FormError) => void;
}) {
  const isRequired =
    getPrivacyOptionsRequirementStatus() ===
    PrivacyOptionsRequirementStatus.REQUIRED;

  if (!isRequired) {
    return null;
  }

  const handleShowPrivacyOptions = () => {
    showPrivacyOptionsForm((error) => {
      if (error) {
        console.error('Failed to show privacy options form:', error.message);
      } else {
        console.log('Privacy options form dismissed.');
      }

      // Execute custom logic after form is dismissed.
      onDismissed?.(error);
    });
  };

  return <Button title="Privacy Settings" onPress={handleShowPrivacyOptions} />;
}

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

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

/**
 * Checks whether user consent allows requesting ads and initializes the SDK.
 */
let isMobileAdsInitialized = false;

export function initializeMobileAdsSdkIfConsentGiven() {
  if (canRequestAds()) {
    if (!isMobileAdsInitialized) {
      isMobileAdsInitialized = true;
      initialize({}, (status) => {
        console.log('Google Mobile Ads SDK initialized:', status);
      });
    }
  }
}

সম্মতি সংগ্রহ করার সময় আপনি বিজ্ঞাপনের জন্য অনুরোধ করতে পারবেন কিনা তা চেক করার জন্য নিম্নলিখিত জায়গাগুলি তালিকাভুক্ত করা হয়েছে:

  • বর্তমান সেশনে UMP SDK সম্মতি সংগ্রহ করার পরে।
  • আপনি requestConsentInfoUpdate()-কে কল করার ঠিক পরেই। UMP SDK হয়ত আগের অ্যাপ সেশনে সম্মতি পেয়েছে।

সম্মতি সংগ্রহ করার প্রসেস চলাকালীন কোনও সমস্যা হলে, আপনি বিজ্ঞাপন দেখানোর অনুরোধ করতে পারবেন কিনা তা চেক করুন। UMP SDK আগের অ্যাপ সেশন থেকে সম্মতির স্ট্যাটাস ব্যবহার করে।

অপ্রয়োজনীয় বিজ্ঞাপনের অনুরোধের কাজ আটকানো

সম্মতি সংগ্রহ করার পরে এবং requestConsentInfoUpdate() কল করার পরে আপনি canRequestAds() চেক করার সময়, আপনার লজিক যাতে অপ্রয়োজনীয় বিজ্ঞাপনের অনুরোধ প্রতিরোধ করে তা নিশ্চিত করুন, যার ফলে দুটি চেকই true রিটার্ন করতে পারে। যেমন, বুলিয়ান ভেরিয়েবল ব্যবহার করে।

পরীক্ষা করা

আপনি যদি ডেভেলপ করার সময় আপনার অ্যাপে ইন্টিগ্রেশন পরীক্ষা করতে চান, তাহলে আপনার টেস্ট ডিভাইস প্রোগ্রাম্যাটিকভাবে রেজিস্টার করতে এই ধাপগুলি অনুসরণ করুন। আপনার অ্যাপ রিলিজ করার আগে, এইসব টেস্ট ডিভাইস আইডি সেট করে এমন কোড মুছে দিতে ভুলবেন না।

  1. requestConsentInfoUpdate()-এ কল করুন।
  2. নিচের উদাহরণের মতো কোনও মেসেজের জন্য লগ আউটপুট চেক করুন, যা আপনার ডিভাইস আইডি এবং কীভাবে এটি একটি টেস্ট ডিভাইস হিসেবে যোগ করতে হয় তা দেখায়:

    Android

    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]
    
  3. আপনার ক্লিপবোর্ডে টেস্ট ডিভাইসের আইডি কপি করুন।

  4. consentDebugSettings.testDeviceIdentifiers কল করতে আপনার কোড পরিবর্তন করুন এবং আপনার টেস্ট ডিভাইস আইডির তালিকা পাস করুন।

    /**
     * Registers a test device for testing consent flows.
     */
    export function configureTestDevice() {
      requestConsentInfoUpdate(
        {
          consentDebugSettings: {
            debugGeography: DebugGeography.DISABLED,
            testDeviceIdentifiers: ["TEST_DEVICE_HASHED_ID"],
          },
        },
        (error) => {
          if (!error) {
            console.log('Test device registered.');
          }
        },
      );
    }

ভৌগোলিক অঞ্চল ফোর্স করা

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

/**
 * Configures debug settings to force EEA geography on a test device.
 */
export function configureDebugGeography() {
  requestConsentInfoUpdate(
    {
      consentDebugSettings: {
        debugGeography: DebugGeography.EEA,
        testDeviceIdentifiers: ["TEST_DEVICE_HASHED_ID"],
      },
    },
    (error) => {
      if (!error) {
        console.log('Consent debug test configuration loaded.');
      }
    },
  );
}

UMP SDK-এর মাধ্যমে আপনার অ্যাপ পরীক্ষা করার সময়, SDK-এর স্ট্যাটাস রিসেট করলে আপনার সুবিধা হতে পারে, যাতে আপনি ব্যবহারকারীর প্রথমবার ইনস্টল করার অভিজ্ঞতা সিমুলেট করতে পারেন। এটি করার জন্য SDK reset() পদ্ধতি প্রদান করে।

/**
 * Resets consent state for testing purposes.
 */
export function resetConsentState() {
  reset();
}