شروع کنید

تحت خط‌مشی رضایت کاربر اتحادیه اروپا Google، شما باید اطلاعات مشخصی را برای کاربران خود در منطقه اقتصادی اروپا (EEA) همراه با بریتانیا انجام دهید و رضایت آنها را برای استفاده از کوکی‌ها یا سایر فضای ذخیره‌سازی محلی، در صورت نیاز قانونی، و استفاده از داده‌های شخصی کسب کنید ( مانند AdID) برای ارائه تبلیغات. این سیاست منعکس کننده الزامات دستورالعمل حریم خصوصی الکترونیک اتحادیه اروپا و مقررات عمومی حفاظت از داده ها (GDPR) است.

برای حمایت از ناشران در انجام وظایف خود تحت این خط‌مشی، Google پلتفرم پیام‌رسانی کاربر (UMP) SDK را ارائه می‌دهد. UMP SDK برای پشتیبانی از آخرین استانداردهای IAB به روز شده است. همه این پیکربندی‌ها اکنون می‌توانند به راحتی در حریم خصوصی و پیام‌رسانی AdMob مدیریت شوند.

پیش نیازها

انواع پیام کاربر

انواع پیام های کاربررا برای لیست کامل پیام های پشتیبانی شده ببینید. برای دستورالعمل‌های خاص در مورد اجرای هر نوع پیام، نوار پیمایش سمت چپ را ببینید.

SDK را وارد کنید

CocoaPods (ترجیحا)

UMP SDK به عنوان یک وابستگی از Google Mobile Ads SDK Pod که با Google Mobile Ads SDK 7.64.0 شروع می شود، گنجانده شده است.

ساده ترین راه برای وارد کردن SDK به پروژه iOS استفاده از CocoaPods است. Podfile پروژه خود را باز کنید و این خط را به هدف برنامه خود اضافه کنید:

pod 'Google-Mobile-Ads-SDK'

سپس دستور زیر را اجرا کنید:

pod install --repo-update

اگر با CocoaPods تازه کار هستید، برای جزئیات بیشتر در مورد نحوه ایجاد و استفاده از Podfiles به استفاده از CocoaPods مراجعه کنید.

دانلود دستی

راه دیگر وارد کردن SDK این است که آن را به صورت دستی انجام دهید.

SDK را دانلود کنید

سپس، چارچوب را به پروژه Xcode خود بکشید و مطمئن شوید که در صورت نیاز موارد کپی را انتخاب کنید.

سپس می توانید چارچوب را در هر فایلی که نیاز دارید با استفاده از:

سریع

import UserMessagingPlatform

هدف-C

#include <UserMessagingPlatform/UserMessagingPlatform.h>

Info.plist خود را به روز کنید

شناسه برنامه خود را بیابیدو آن را به Info.plist خود اضافه کنید:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

تعیین کنید که آیا یک پیام باید نمایش داده شود

قبل از بارگیری فرم، باید در هر راه اندازی برنامه با استفاده از requestConsentInfoUpdateWithParameters:completionHandler: درخواست به روز رسانی اطلاعات رضایت کاربر را بدهید. این می‌تواند تعیین کند که آیا کاربر شما نیاز به ارائه رضایت دارد یا خیر، اگر قبلاً این کار را انجام نداده باشد یا اینکه رضایت او منقضی شده باشد.

در صورت نیاز، می توانید فرم را بعداً ارائه دهید .

در اینجا مثالی از نحوه بررسی وضعیت در شروع برنامه آورده شده است:

سریع

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
   // Create a UMPRequestParameters object.
   let parameters = UMPRequestParameters()
   // Set tag for under age of consent. Here false means users are not under age.
   parameters.tagForUnderAgeOfConsent = false

   // Request an update to the consent information.
   UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
      with: parameters,
      completionHandler: { error in
        if error != nil {
           // Handle the error.
        } else {
           // The consent information state was updated.
           // You are now ready to check if a form is
           // available.
        }
       })
}

هدف-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

// Create a UMPRequestParameters object.
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
// Set tag for under age of consent. Here NO means users are not under age.
parameters.tagForUnderAgeOfConsent = NO;

// Request an update to the consent information.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable error) {
                           if (error) {
                             // Handle the error.
                           } else {
                             // The consent information state was updated.
                             // You are now ready to check if a form is
                             // available.
                           }
                         }];
}

در صورت موجود بودن فرم را بارگیری کنید

قبل از نمایش فرم، ابتدا باید مشخص کنید که آیا فرم موجود است یا خیر. فرم‌های در دسترس نمی‌تواند به دلیل فعال کردن ردیابی تبلیغات محدود توسط کاربر باشد یا اینکه شما آنها را به‌عنوان زیر سن رضایت برچسب‌گذاری کرده‌اید.

برای بررسی در دسترس بودن یک فرم، ازthe formStatus property on the UMPConsentInformation instance که قبلا ایجاد کردید استفاده کنید.

سپس، یک متد wrapper برای بارگیری فرم اضافه کنید:

سریع

// Request an update to the consent information.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
    withParameters: parameters,
    completionHandler: { [self] error in

      // The consent information has updated.
      if error != nil {
        // Handle the error.
      } else {
        // The consent information state was updated.
        // You are now ready to see if a form is available.
        let formStatus = UMPConsentInformation.sharedInstance.formStatus
        if formStatus == UMPFormStatus.available {
          loadForm()
        }
      }
    })
...
func loadForm() {

}

هدف-C

// Request an update to the consent information.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError* _Nullable error) {

                           // The consent information has updated.
                           if (error) {
                             // Handle the error.
                           } else {
                             // The consent information state was updated.
                             // You are now ready to see if a form is available.
                             UMPFormStatus formStatus =
                                 UMPConsentInformation.sharedInstance
                                     .formStatus;
                             if (formStatus == UMPFormStatusAvailable) {
                               [self loadForm];
                             }
                           }
                         }];
...
- (void) loadForm {

}

برای بارگیری فرم، از the static loadWithCompletionHandler: method on the UMPConsentForm classاستفاده کنید.

سریع

func loadForm() {
  // Loads a consent form. Must be called on the main thread.
  UMPConsentForm.load(
      withCompletionHandler: { form, loadError in
        if loadError != nil {
          // Handle the error
        } else {
          // Present the form
        }
      })
}

هدف-C

- (void)loadForm {
  [UMPConsentForm
      loadWithCompletionHandler:^(UMPConsentForm *form, NSError *loadError) {
        if (loadError) {
          // Handle the error
        } else {
          // Present the form
        }
      }];
}

در صورت نیاز فرم را ارائه دهید

پس از تعیین در دسترس بودن فرم و بارگیری آن، از روشpresentFromViewController:completionHandler: در نمونهUMPConsentForm برای ارائه فرم استفاده کنید.

از شیUMPConsentInformation قبلی استفاده کنید تاconsent status بررسی کنید و روشloadForm خود را به روز کنید:

سریع

func loadForm() {
  UMPConsentForm.load(withCompletionHandler: { form, loadError in
    if loadError != nil {
      // Handle the error.
    } else {
      // Present the form. You can also hold on to the reference to present
      // later.
      if UMPConsentInformation.sharedInstance.consentStatus == UMPConsentStatus.required {
        form?.present(
            from: self,
            completionHandler: { dismissError in
              if UMPConsentInformation.sharedInstance.consentStatus == UMPConsentStatus.obtained {
                // App can start requesting ads.
              }
                // Handle dismissal by reloading form.
                loadForm();
            })
      } else {
        // Keep the form available for changes to user consent.
      }
    }
  })
}

هدف-C

- (void)loadForm {
  [UMPConsentForm loadWithCompletionHandler:^(UMPConsentForm *form,
                                              NSError *loadError) {
    if (loadError) {
      // Handle the error.
    } else {
      // Present the form. You can also hold on to the reference to present
      // later.
      if (UMPConsentInformation.sharedInstance.consentStatus ==
          UMPConsentStatusRequired) {
        [form
            presentFromViewController:self
                    completionHandler:^(NSError *_Nullable dismissError) {
                      if (UMPConsentInformation.sharedInstance.consentStatus ==
                          UMPConsentStatusObtained) {
                        // App can start requesting ads.
                      }
                        // Handle dismissal by reloading form.
                        [self loadForm];
                    }];
      } else {
        // Keep the form available for changes to user consent.
      }
    }
  }];
}

اگر پس از انتخاب کاربر یا رد کردن فرم، نیاز به انجام هر کاری دارید، آن منطق را در کنترل کننده تکمیل یا پاسخ تماس برای فرم خود قرار دهید.

آزمایش کردن

جغرافی اجباری

UMP SDK راهی برای آزمایش رفتار برنامه شما ارائه می دهد که گویی دستگاه با استفاده از the debugGeography property of type UMPDebugGeography on UMPDebugSettingsدر منطقه اقتصادی اروپا یا بریتانیا قرار دارد.

برای استفاده از قابلیت اشکال‌زدایی، باید شناسه هش شده دستگاه آزمایشی خود را در تنظیمات اشکال‌زدایی برنامه خود ارائه دهید. اگر بدون تنظیم این مقدارrequestConsentInfoUpdateWithParameters:completionHandler: را فراخوانی کنید، برنامه شما هنگام اجرا هش شناسه مورد نیاز را ثبت می‌کند.

سریع

let parameters = UMPRequestParameters()
let debugSettings = UMPDebugSettings()
debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = UMPDebugGeography.EEA
parameters.debugSettings = debugSettings
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(
    with: parameters,
    completionHandler: { error in
      ...
    })

هدف-C

UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
                         completionHandler:^(NSError *_Nullable error){
                           ...
}];

با UMPDebugGeography، می‌توانید موقعیت جغرافیایی را به یکی از این گزینه‌ها وادار کنید:

DebugGeography شرح
UMPDebugGeographyDisabled اشکال‌زدایی جغرافیایی غیرفعال است.
UMPDebugGeographyEEA جغرافیا مانند EEA برای دستگاه های اشکال زدایی ظاهر می شود.
UMPDebugGeographyNotEEA به نظر می رسد جغرافیا برای دستگاه های اشکال زدایی در EEA نیست.

توجه داشته باشید که تنظیمات اشکال زدایی فقط در دستگاه های آزمایشی کار می کند. شبیه سازها نیازی به اضافه شدن به لیست شناسه دستگاه شما ندارند، زیرا آنها قبلاً آزمایش را به طور پیش فرض فعال کرده اند.

در آزمایش برنامه خود با UMP SDK، ممکن است بازنشانی وضعیت SDK برای شما مفید باشد تا بتوانید اولین تجربه نصب کاربر را شبیه سازی کنید. SDK روش reset را برای انجام این کار ارائه می دهد.

سریع

UMPConsentInformation.sharedInstance.reset()

هدف-C

[UMPConsentInformation.sharedInstance reset];

همچنین اگر تصمیم دارید UMP SDK را به طور کامل از پروژه خود حذف کنید، باید با reset تماس بگیرید.