البدء

حزمة تطوير البرامج لمنصّة User Messaging Platform (UMP) من Google هي أداة للخصوصية والمراسلة لمساعدتك في إدارة خيارات الخصوصية. لمزيد من المعلومات، يُرجى الاطّلاع على لمحة عن "الخصوصية والمراسلة".

إنشاء نوع رسالة

أنشئ رسائل مستخدِمين باستخدام أحد أنواع رسائل المستخدِمين المتاحة ضمن علامة التبويب الخصوصية والمراسلة في حسابك على مدير إعلانات Google . تحاول حزمة تطوير البرامج لمنصّة UMP عرض رسالة خصوصية تم إنشاؤها من معرّف تطبيق "مدير إعلانات Google" الذي تم ضبطه في مشروعك.

لمزيد من التفاصيل، يُرجى الاطّلاع على لمحة عن الخصوصية والمراسلة.

لجمع الموافقات، أكمِل الخطوات التالية:

  1. طلب أحدث معلومات عن موافقة المستخدم
  2. حمِّل نموذج موافقة وقدِّمه، إذا لزم الأمر.

يجب طلب تعديل لمعلومات موافقة المستخدم في كل مرة يتم فيها تشغيل التطبيق، وذلك باستخدام Update(). يتحقّق هذا الطلب مما يلي:

  • ما إذا كانت الموافقة مطلوبة: على سبيل المثال، تكون الموافقة مطلوبة للمرة الأولى، أو تكون صلاحية قرار الموافقة السابق قد انتهت.
  • ما إذا كانت نقطة دخول خيارات الخصوصية مطلوبة تتطلب بعض رسائل الخصوصية من التطبيقات السماح للمستخدمين بتعديل خيارات الخصوصية في أي وقت.

تحميل نموذج رسالة الخصوصية وتقديمه إذا لزم الأمر

بعد تلقّي أحدث حالة للموافقة، يمكنك طلب 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.
    });
}

خيارات الخصوصية

يتم عرض بعض نماذج رسائل الخصوصية من نقطة دخول خيارات الخصوصية التي يعرضها الناشر، ما يتيح للمستخدمين إدارة خيارات الخصوصية في أي وقت. لمعرفة المزيد من المعلومات عن الرسالة التي تظهر للمستخدمين عند نقطة دخول "خيارات الخصوصية"، يُرجى الاطّلاع على أنواع رسائل المستخدمين المتاحة.

لتنفيذ نقطة دخول إلى خيارات الخصوصية، أكمِل الخطوات التالية:

  1. بعد الاتصال بالرقم Update()، راجِع PrivacyOptionsRequirementStatus لتحديد ما إذا كانت نقطة دخول خيارات الخصوصية مطلوبة.
  2. إذا لزم الأمر، يمكنك إضافة عنصر واجهة مستخدم مرئي وتفاعلي إلى تطبيقك كنقطة دخول لخيارات الخصوصية. إذا لم تكن نقطة دخول الخصوصية مطلوبة، يمكنك ضبط عنصر واجهة المستخدم بحيث لا يكون مرئيًا ولا يمكن التفاعل معه.
  3. مشاركة نموذج خيارات الخصوصية باستخدام " 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.
        UpdatePrivacyButton();
    });
}

/// <summary>
/// Updates the privacy buttons visual state based on the consent information.
/// </summary>
void UpdatePrivacyButton()
{
    if (_privacyButton != null)
    {
        _privacyButton.interactable =
            ConsentInformation.PrivacyOptionsRequirementStatus ==
                PrivacyOptionsRequirementStatus.Required;
    }
}

طلب إدراج الإعلانات

قبل طلب إعلانات في تطبيقك، يُرجى التحقّق مما إذا كنت قد حصلت على موافقة من المستخدم باستخدام تطبيق " CanRequestAds()". هناك مكانان للتحقّق أثناء جمع الموافقة:

  • بعد جمع الموافقة في الجلسة الحالية
  • بعد الاتصال بـ Update() مباشرةً من المحتمل أن تكون قد حصلت على موافقة في الجلسة السابقة. ومن بين أفضل ممارسات وقت الاستجابة، ننصحك بعدم انتظار اكتمال معاودة الاتصال حتى تتمكّن من البدء في تحميل الإعلانات في أقرب وقت ممكن بعد إطلاق تطبيقك.
.

في حال حدوث خطأ أثناء عملية جمع الموافقة، يجب التحقّق مما إذا كان بإمكانك طلب عرض الإعلانات. تستخدِم حزمة SDK لـ UMP حالة الموافقة من الجلسة السابقة.

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.
            });
        }
    });
    
}

الاختبار

إذا أردت اختبار عملية الدمج في تطبيقك أثناء تطويره، اتّبِع هذه الخطوات لتسجيل جهاز الاختبار آليًا. احرص على إزالة الرمز البرمجي الذي يضبط أرقام تعريف الأجهزة الاختبارية هذه قبل طرح تطبيقك.

  1. تواصل هاتفيًا مع "Update()".
  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. عليك تعديل الرمز لطلب "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 وسيلة لاختبار سلوك تطبيقك كما لو كان الجهاز موجودًا في مناطق مختلفة، مثل المنطقة الاقتصادية الأوروبية أو المملكة المتحدة، وذلك باستخدام السمة DebugGeography. يُرجى العِلم أنّ إعدادات تصحيح الأخطاء لا تعمل إلا على الأجهزة الاختبارية.

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);
}

عند اختبار تطبيقك باستخدام حزمة SDK لمنصة UMP، قد يكون من المفيد إعادة ضبط حالة حزمة SDK حتى تتمكّن من محاكاة تجربة تثبيت المستخدم الأولى. وتوفّر حزمة تطوير البرامج (SDK) الطريقة Reset() لإجراء ذلك.

ConsentInformation.Reset();

أمثلة على GitHub

يمكنك الاطّلاع على مثال كامل لدمج حزمة تطوير البرامج (SDK) لمنصّة UMP الموضّح في هذه الصفحة في HelloWorld.