Google AB Kullanıcı Rızası Politikası uyarınca Avrupa Ekonomik Alanı'ndaki (AEA) kullanıcılarınızla Birleşik Krallık genelinde belirli açıklamalar yapmanız ve yasal olarak gerekli olduğu durumlarda çerez veya başka yerel depolama bilgilerinin yanı sıra reklam yayınlamak için kişisel verileri (AdID gibi) kullanma konusunda izin almanız gerekir. Bu politika AB eGizlilik Yönergesi ve Genel Veri Koruma Yönetmeliği'nin (GDPR) şartlarını yansıtmaktadır.
Google, yayıncıları bu politika kapsamındaki gereksinimleri yerine getirmeleri konusunda desteklemek için User Messaging Platform (UMP) SDK'sını sunar. UMP SDK'sı en son IAB standartlarını destekleyecek şekilde güncellendi. Tüm bu yapılandırmalar artık gizlilik ve mesajlaşma AdMob özelliğiyle kolayca yönetilebilir.
Ön koşullar
- Başlangıç kılavuzunu tamamlayın.
- AdMob Hesabınızın Gizlilik ve mesajlaşma sekmesi altında mesajlarınızı yapılandırın. Daha fazla bilgi için Gizlilik ve mesajlaşma hakkında,
- GDPR ile ilgili şartlar üzerinde çalışıyorsanızIAB şartları AB kullanıcı rızası alma mesajlarını nasıl etkiler? başlıklı makaleyi okuyun.
Kullanıcı mesajı türleri
Desteklenen mesajların tam listesi için Kullanıcı mesajı türleri başlıklı makaleyi inceleyin. Her mesaj türünün uygulanmasıyla ilgili özel talimatlar için soldaki gezinme çubuğuna bakın.
SDK'yı içe aktarın
CocoaPods (tercih edilen)
UMP SDK'sı, Google Mobile Ads SDK'sı 7.64.0 sürümünden itibaren Google Mobile Ads SDK'sı bağımlılığına dahil edilmiştir.
SDK'yı bir iOS projesine aktarmanın en kolay yolu CocoaPods'u kullanmaktır. Projenizin Podfile'ını açın ve bu satırı uygulamanızın hedefine ekleyin:
pod 'Google-Mobile-Ads-SDK'
Ardından aşağıdaki komutu çalıştırın:
pod install --repo-update
CocoaPods'da yeniyseniz Podfile oluşturma ve kullanma ile ilgili ayrıntılar için CocoaPods'u kullanma sayfasına bakın.
Manuel olarak indir
SDK'yı içe aktarmanın diğer bir yolu da SDK'yı manuel olarak oluşturmaktır.
Ardından, çerçeveyi Xcode projenize sürükleyin ve Gerekirse öğeleri kopyalayın'ı seçin.
Ardından, aşağıdakileri kullanarak çerçeveyi istediğiniz dosyaya ekleyebilirsiniz:
Swift
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
Info.plist dosyanızı güncelleyin
Uygulama kimliğinizi bulun veInfo.plist
cihazınıza ekleyin:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Bir mesajın gösterilmesi gerekip gerekmediğini belirleme
Her uygulama başlatmada bir form yüklemeden önce requestConsentInfoUpdateWithParameters:completionHandler:
kullanarak kullanıcının izin bilgilerinin güncellenmesini istemeniz gerekir.
Kullanıcılarınızın daha önce izin vermemiş olması veya izinlerinin süresinin dolması durumunda bu kullanıcıların izin vermesi gerekip gerekmediğini belirleyebilirsiniz.
Uygulama başlangıcında durumun nasıl kontrol edileceğine ilişkin bir örnek aşağıda verilmiştir:
Swift
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. } }) }
Objective-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. } }]; }
Varsa form yükleyin
Bir formu görüntülemeden önce, kullanılabilir bir form olup olmadığını belirlemeniz gerekir. Kullanılamayan formlar, kullanıcının sınırlı reklam izlemeyi etkinleştirmesi veya reşit olma yaşının altında olarak etiketlemiş olmasından kaynaklanabilir.
Bir formun kullanılabilirliğini kontrol etmek için daha öncethe formStatus
property on the UMPConsentInformation
instance oluşturduğunuz formu kullanın.
Ardından, formu yüklemek için bir sarmalayıcı yöntemi ekleyin:
Swift
// 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() { }
Objective-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 { }
Formu yüklemek için the static loadWithCompletionHandler:
method on the UMPConsentForm
classkodunu kullanın.
Swift
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 } }) }
Objective-C
- (void)loadForm { [UMPConsentForm loadWithCompletionHandler:^(UMPConsentForm *form, NSError *loadError) { if (loadError) { // Handle the error } else { // Present the form } }]; }
Gerekirse formu gönderin
Formun kullanılabilirliğini belirledikten ve yükledikten sonraUMPConsentForm
örneğindekipresentFromViewController:completionHandler:
yöntemini kullanarak formu sunun.
Daha öncekiUMPConsentInformation
nesneyi kullanarakconsent status
loadForm
yönteminizi güncelleyin:
Swift
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. } } }) }
Objective-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. } } }]; }
Kullanıcı bir seçim yaptıktan veya formu kapattıktan sonra herhangi bir işlem yapmanız gerekirse bu mantığı formunuzun tamamlanma işleyicisine veya geri çağırmasına yerleştirin.
Test
Coğrafi konumu zorunlu kılın
UMP SDK'sı, cihaz the debugGeography
property of type UMPDebugGeography
on UMPDebugSettings
kullanarak AEA veya Birleşik Krallık'taymış gibi uygulamanızın davranışını test etmenin bir yolunu sunar.
Hata ayıklama işlevini kullanmak için uygulamanızın hata ayıklama ayarlarında test cihazınızın karma kimliğini sağlamanız gerekir. Bu değeri ayarlamadanrequestConsentInfoUpdateWithParameters:completionHandler:
yöntemini çağırırsanız uygulamanız çalıştırıldığında gerekli kimlik karmasını günlüğe kaydeder.
Swift
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 ... })
Objective-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
ile aşağıdaki seçeneklerden birini zorunlu kılabilirsiniz:
Hata Ayıklama Coğrafyası | Açıklama |
---|---|
UMPDebugGeographyDisabled |
Hata ayıklama konumu devre dışı bırakıldı. |
UMPDebugGeographyEEA |
Coğrafya, hata ayıklama cihazları için AEA'da olduğu gibi görünür. |
UMPDebugGeographyNotEEA |
Hata ayıklama cihazları için bu bölgenin AEA'da olmadığı anlaşılıyor. |
Hata ayıklama ayarlarının yalnızca test cihazlarında çalıştığını unutmayın. Testler varsayılan olarak zaten etkinleştirildiğinden, emülatörlerin cihaz kimliği listenize eklenmesi gerekmez.
İzin durumunu sıfırla
UMP SDK'sıyla uygulamanızı test ederken, bir kullanıcının ilk yükleme deneyimini simüle etmek için SDK durumunu sıfırlamanız yararlı olabilir.
SDK, bunu yapmanın reset
yöntemini sunar.
Swift
UMPConsentInformation.sharedInstance.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
UMP SDK'sını projenizden tamamen kaldırmaya karar verirseniz reset
yöntemini de çağırmanız gerekir.