شروع به کار

پلتفرم مورد نظر: اندروید، iOS، یونیتی ، فلاتر

کیت توسعه نرم‌افزار (SDK) پلتفرم پیام‌رسانی کاربر گوگل (UMP) ابزاری برای حفظ حریم خصوصی و پیام‌رسانی است که به شما در مدیریت گزینه‌های حریم خصوصی کمک می‌کند. برای اطلاعات بیشتر، به «درباره حریم خصوصی و پیام‌رسانی» مراجعه کنید.

ایجاد نوع پیام

پیام‌های کاربری را با یکی از انواع پیام‌های کاربری موجود در زیر برگه حریم خصوصی و پیام‌رسانی حساب مدیریت تبلیغات خود ایجاد کنید. UMP SDK تلاش می‌کند یک پیام حریم خصوصی ایجاد شده از شناسه برنامه مدیریت تبلیغات تنظیم شده در پروژه شما را نمایش دهد.

برای جزئیات بیشتر، به «درباره حریم خصوصی و پیام‌رسانی» مراجعه کنید.

شما باید در هر بار اجرای برنامه، با استفاده از 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 the error is null, the consent information state was updated.
    if (consentError != null)
    {
        // Handle the error.
        UnityEngine.Debug.LogError(consentError);
        return;
    }
}

فرم پیام حریم خصوصی را بارگیری و ارائه دهید

پس از دریافت آخرین وضعیت رضایت، برای بارگذاری هرگونه فرم مورد نیاز برای جمع‌آوری رضایت کاربر، تابع 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() برای بررسی اینکه آیا رضایت کاربر را دریافت کرده‌اید یا خیر، استفاده کنید:

مکان‌های زیر برای بررسی اینکه آیا می‌توانید ضمن جمع‌آوری رضایت، درخواست تبلیغات دهید، فهرست شده‌اند:

  • پس از اینکه UMP SDK در جلسه فعلی رضایت را جمع آوری کرد.
  • بلافاصله پس از فراخوانی Update() . ممکن است UMP SDK در جلسه قبلی برنامه، رضایت را دریافت کرده باشد.

اگر در طول فرآیند جمع‌آوری رضایت خطایی رخ داد، بررسی کنید که آیا می‌توانید درخواست تبلیغات دهید یا خیر. 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.
            });
        }
    });
    
}

آزمایش

اگر می‌خواهید در حین توسعه، ادغام را در برنامه خود آزمایش کنید، این مراحل را برای ثبت برنامه‌ای دستگاه آزمایشی خود دنبال کنید. قبل از انتشار برنامه، حتماً کدی را که این شناسه‌های دستگاه آزمایشی را تنظیم می‌کند، حذف کنید.

  1. فراخوانی Update()
  2. خروجی گزارش را برای پیامی مشابه مثال زیر بررسی کنید، که شناسه دستگاه شما و نحوه اضافه کردن آن به عنوان یک دستگاه آزمایشی را نشان می‌دهد:

    اندروید

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231")
    to set this as a debug device.
    

    آی‌او‌اس

    <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 روشی را برای آزمایش رفتار برنامه شما فراهم می‌کند، گویی دستگاه در مناطق مختلفی مانند EEA یا UK قرار دارد. توجه داشته باشید که تنظیمات اشکال‌زدایی فقط روی دستگاه‌های آزمایشی کار می‌کنند.

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

مثال‌ها در گیت‌هاب

یک مثال کامل از یکپارچه‌سازی UMP SDK که در این صفحه در HelloWorld پوشش داده شده است را ببینید.