Apple, iOS 14.5 ile geliştiricilerin, onları izlemek veya cihazlarının reklam tanımlayıcısına (IDFA) erişmek için Uygulama İzleme Şeffaflığı çerçevesi aracılığıyla kullanıcının iznini almasını gerektirir. Daha fazla ayrıntı için Apple'ın Kullanıcı Gizliliği ve Veri Kullanımı ve Apple'ın Uygulama İzleme Şeffaflığı belgelerine bakın.
Etkilenen Firebase ürünleri
Firebase SDK'ları IDFA'ya erişmez, ancak bazılarının Google Analytics ile IDFA erişimini içerebilecek entegrasyonları vardır.
Aşağıdaki tablo, Apple platformlarında bulunan Firebase ürünlerini listeler ve IDFA'ya erişilemiyorsa her bir ürünün işlevselliğinin nasıl etkilendiğini açıklar.
|Ürün||IDFA'ya erişilemiyorsa etki|
|A/B Testi||Google Analytics ile A/B Testi entegrasyonundaki bazı hedefleme verileri (demografik veriler gibi) IDFA'dan türetilir. IDFA'ya erişimi olmayan uygulamalarda bu hedefleme kullanılamaz.|
|Uygulama Kontrolü||Etkisiz|
|Uygulama Dağıtımı||Etkisiz|
|kimlik doğrulama||Google Oturum Açma ve Telefonla Kimlik Doğrulama gibi Kimlik Doğrulama ve birinci taraf Kimlik Doğrulama sağlayıcıları üzerinde hiçbir etkisi yoktur.|
|Crashlytics||Etkisiz. Gerçek zamanlı kilitlenme verileri ve içerik haritaları sağlayan Google Analytics ile Crashlytics entegrasyonu, IDFA'ya bağlı değildir.|
|Dinamik Bağlantılar||Bağlantı açma işlevi için hiçbir etkisi yoktur. Google Analytics ile birlikte kullanıldığında, bağlantı dönüştürme etkinlikleri için ilişkilendirme kullanılamaz.|
|Bulut Firestore||Etkisiz|
|Bulut İşlevleri||Etkisiz|
|Uygulama İçi Mesajlaşma||Etkisiz|
|Firebase kurulumları||Etkisiz|
|Örnek Kimliği||Etkisiz|
|Bulut Mesajlaşma||Google Analytics ile birlikte kullanıldığında Google Analytics, FCM ile ilgili bazı dönüşüm etkinliklerini otomatik olarak günlüğe kaydeder. Bu etkinlikler için ilişkilendirme, IDFA erişimi gerektirir.|
|Firebase Makine Öğrenimi||Etkisiz|
|Performans İzleme||Etkisiz|
|Uzak Yapılandırma||Google Analytics ile birlikte kullanıldığında Remote Config, IDFA erişimi olmadan hedefleme için otomatik olarak oluşturulan kullanıcı özelliklerine izin vermez.|
|Gerçek Zamanlı Veritabanı||Etkisiz|
|Bulut depolama||Etkisiz|
Etkilenen Firebase entegrasyonları
Aşağıdaki tablo, IDFA'ya erişilemiyorsa etkilenen Firebase entegreli ürünleri listeler.
|Ürün||IDFA'ya erişilemiyorsa etki|
|Google Analytics||Analytics olay günlüğü, olay raporlama ve dönüşüm ölçümü etkilenmez, ancak IDFA erişilebilir değilse ilişkilendirme etkilenir. Google'ın iOS 14'e yanıtı hakkında daha fazla bilgi edinmek için blog gönderimize bakın.|
iOS 14'te Uygulama İzleme İzni İsteme
Apple uygulamanızın IDFA'ya erişebilmesini istiyorsanız, Apple'ın Uygulama İzleme Şeffaflığı çerçevesini uygulamanıza ekleyebilir ve kullanıcılarınızın IDFA'sını izlemek veya IDFA'ya erişmek için izin isteyebilirsiniz.
Birçok uygulama, izin istemeden önce bir ısınma veya açıklayıcı ekran sunmayı tercih eder. Açıklayıcı ekran, erişim talebinde bulunmadan önce kullanıcılara uygulamanızın IDFA'yı nasıl kullandığı hakkında daha fazla bilgi vermenizi sağlar.
Bir AdMob veya Ad Manager uygulama yayıncısıysanız, kişiselleştirilmiş reklamlar sunmak için izin almanın yanı sıra kullanıcıyı Apple'ın yönergelerine göre otomatik olarak izlemek için onay almayı işleyen Funding Choices'ı kullanmayı düşünün. Daha fazla ayrıntı için Kullanıcı Mesajlarıyla AdMob Onayı sayfasına bakın.
Aşağıdaki kılavuz, Uygulama İzleme Şeffaflığı yoluyla izleme erişimi talep etmeden önce bir açıklayıcı ekran oluşturmak ve görüntülemek için Firebase Uygulama İçi Mesajlaşmayı kullanan bir çözüm sunar.
Uygulamanıza Uygulama İçi Mesajlaşma ekleyin
Uygulama İçi Mesajlaşmayı Apple uygulamanıza eklemek için talimatları izleyin.
Uygulama içi mesaj kapatmayı yönetin
İlk olarak, iOS 13 çalıştıran cihazlar gibi izin iletişim kutusu sunamayan cihazlarda açıklayıcı ekranı görüntülemekten kaçının. Bu kodun
FirebaseApp.configure() sonrasında hemen çalıştırıldığından emin olun.
Süratli
if NSClassFromString("ATTrackingManager") == nil { // Avoid showing the App Tracking Transparency explainer if the // framework is not linked. InAppMessaging.inAppMessaging().messageDisplaySuppressed = true }
Kullanıcı açıklayıcı ekranı kapattığında olayları işlemek için
InAppMessagingDisplayDelegate protokolünü uygulayın. Kullanıcı Tamam'a dokunursa, Uygulama İzleme Şeffaflığı çerçevesi aracılığıyla sistem istemini görüntüleyin.
Süratli
// The InAppMessaging delegate must be assigned before events can be handled. InAppMessaging.inAppMessaging().delegate = self func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage, with action: InAppMessagingAction) { switch action.actionText { case "OK": ATTrackingManager.requestTrackingAuthorization { status in switch status { case .authorized: // Optionally, log an event when the user accepts. Analytics.logEvent("tracking_authorized", parameters: nil) case _: // Optionally, log an event here with the rejected value. } } case _: // do nothing } }
Uygulama İçi Mesajlaşma kampanyası oluşturun
Kod uygulamanıza yerleştirildikten sonra Firebase konsolunda bir uygulama içi mesaj oluşturun.
- Firebase konsolunda yeni bir Uygulama İçi Mesajlaşma kampanyası oluşturun.
- Uygulama içi mesajları istediğiniz içerikle doldurun ve mesajı
app_launcholayında tetiklenecek şekilde ayarlayın.
- Hedefleme bölümünde, kampanyanın yalnızca uygulamanızın en son sürümünü ve sonraki sürümlerini hedeflediğinden emin olun.
Uygulama İçi Mesajlaşma belgelerindeki talimatları izleyerek açıklayıcı ekranın görünümünü özelleştirebilirsiniz.
İsteğe bağlı: A/B Testi farklı açıklayıcı ekranlar
Uygulama İçi Mesajlaşma, farklı açıklayıcı ekranlarla denemeler yapmak için kullanabileceğiniz Firebase A/B Testing ile yerleşik bir entegrasyona sahiptir.
Firebase A/B Testing, otomatik olarak deney grupları oluşturur ve kullanıcıların uygulamanızın farklı değişkenleriyle nasıl etkileşim kurduğunu görselleştirmenize yardımcı olur.
Uygulama izleme izinlerini kaydedin
Uygulama izleme izinleri yanıtını işlerken bir Google Analytics etkinliği günlüğe kaydetmediyseniz, bir A/B denemesi çalıştırırken yanıt oranındaki değişiklikleri ölçmek için kaydetmeniz gerekir.
Süratli
ATTrackingManager.requestTrackingAuthorization { status in switch status { case .authorized: // Optionally, log an event when the user accepts. Analytics.logEvent("tracking_authorized", parameters: nil) case _: // Optionally, log an event here with the rejected value. } }
Yeni bir dönüşüm etkinliği oluştur
Firebase konsolunun Analytics bölümünde , Dönüşümler menüsüne gidin, ardından yukarıdaki örnek kodla günlüğe kaydedilen etkinlikle aynı ada sahip yeni bir dönüşüm etkinliği ekleyin.
Yeni bir deneme oluştur
Konsolun Uygulama İçi Mesajlaşma menüsünde , Yeni Deney 'i tıklayın ve ardından açılan ekranlardaki talimatları izleyin.
- Hedefleme bölümünde, kampanyanın yalnızca uygulamanızın en son sürümünü ve sonraki sürümlerini hedeflediğinden emin olun.
- Hedefler bölümünde, yukarıdaki örnek kodla oluşturduğunuz dönüşüm etkinliğini ve izlemek istediğiniz diğer ölçümleri seçin.
Denemenizi yayınladıktan sonra, kesin sonuçlar üretebilmesi için bir süre veri toplaması gerekecektir.
Bir denemenin nasıl izleneceği ve başarılı bir değişkenin nasıl kullanıma sunulacağı hakkında bilgi için Firebase A/B Testi belgelerini okuyun.