Firebase Uygulama İçi Mesajlaşma mesajlarının davranışını değiştirin


Firebase Uygulama İçi Mesajlaşma, çok az kodlama veya hiç kodlama yapmadan zengin kullanıcı etkileşimleri oluşturmanıza, yapılandırmanıza ve hedeflemenize olanak tanır. Bu sayede, mesajlaşma etkinliklerini gerçek kullanıcı özelliklerine, etkinliklerine ve seçimlerine bağlamak için Google Analytics'ün hazır özelliklerinden yararlanabilirsiniz. Bazı ek Firebase In-App Messaging SDK entegrasyonlarıyla, uygulama içi mesajların davranışını daha da özelleştirebilir, kullanıcılar mesajlarla etkileşime geçtiğinde yanıt verebilir, Analytics çerçevesinin dışında mesaj etkinlikleri tetikleyebilir ve kullanıcıların mesajlaşma etkileşimleriyle ilgili kişisel verilerinin paylaşımını kontrol etmelerine olanak tanıyabilirsiniz.

Kullanıcılar uygulama içi mesajlarla etkileşime geçtiğinde yanıt verme

İşlemler sayesinde, kullanıcıları bir web sitesine veya uygulamanızdaki belirli bir ekrana yönlendirmek için uygulama içi mesajlarınızı kullanabilirsiniz.

Kodunuz temel etkileşimlere (tıklamalar ve kapatmalar), gösterimlere (iletilerinizin doğrulanmış görüntülemeleri) ve SDK tarafından kaydedilen ve onaylanan hataları görüntülemeye yanıt verebilir. Örneğin, mesajınız Kart modülü olarak oluşturulduğunda, kullanıcının Kart'ta iki URL'den hangisini tıkladığını izlemek ve takip etmek isteyebilirsiniz.

Kart etkileşimlerini işlemek için bir DisplayDelegate uygulayın

Uygulama içi mesajla etkileşim olduğunda çağrılacak bir uygulama içi mesaj görüntüleme temsilcisi kaydedebilirsiniz. Bunu yapmak için InAppMessagingDisplayDelegate protokolüne göre bir sınıf uygulayın ve bu sınıfı InAppMessaging örneğinde temsilci mülk olarak ayarlayın.

Bir kullanıcının kart stilindeki bir mesajda hangi bağlantıyı tıkladığını izlemek istediğinizi varsayalım. DisplayDelegate protokolüne göre messageClicked yöntemini uygulayan bir sınıf tanımlayarak kullanıcının tıkladığı bağlantıya erişebilirsiniz.

Swift

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde kullanılamaz.

InAppMessagingAction dahil olmak üzere uygulanabilecek geri çağırma yöntemleri ve bunların parametreleri için Swift görüntüleme temsilcisi referansına bakın.


// In CardActionFiamDelegate.swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
        // ...
    }

    func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
                          dismissType: FIRInAppMessagingDismissType) {
        // ...
    }

    func impressionDetected(for inAppMessage: InAppMessagingDisplayMessage) {
        // ...
    }

    func displayError(for inAppMessage: InAppMessagingDisplayMessage, error: Error) {
        // ...
    }

}

// In AppDelegate.swift
// Register the delegate with the InAppMessaging instance
let myFiamDelegate = CardActionFiamDelegate()
InAppMessaging.inAppMessaging().delegate = myFiamDelegate;

Objective-C

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde kullanılamaz.

FIRInAppMessagingDisplayMessage dahil olmak üzere uygulanabilecek geri çağırma yöntemleri ve parametreleri için Objective-C görüntüleme temsilcisi referansını inceleyin.


// In CardActionFiamDelegate.h
@interface CardActionFiamDelegate : NSObject <FIRInAppMessagingDisplayDelegate>
@end

// In CardActionFiamDelegate.m
@implementation CardActionFiamDelegate

- (void)displayErrorForMessage:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage
                         error:(nonnull NSError *)error {
    // ...
}

- (void)impressionDetectedForMessage:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
    // ...
}

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
    // ...
}

- (void)messageDismissed:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage
             dismissType:(FIRInAppMessagingDismissType)dismissType {
    // ...
}

@end

// In AppDelegate.m
CardActionFiamDelegate *myFiamDelegate = [CardActionFiamDelegate new];
[FIRInAppMessaging inAppMessaging].delegate = myFiamDelegate;

Uygulama içi mesajları programatik olarak tetikleme

Firebase In-App Messaging, varsayılan olarak ek entegrasyon olmadan Firebase için Google Analytics etkinlikleriyle uygulama içi mesajları tetiklemenize olanak tanır. Ayrıca, Firebase In-App Messaging SDK'sının programatik tetikleyicileriyle etkinlikleri programatik olarak manuel olarak da tetikleyebilirsiniz.

Uygulama içi mesajlaşma kampanyası derleyicisinde yeni bir kampanya oluşturun veya mevcut bir kampanyayı seçin. Derleyici iş akışının Planlama adımında, yeni oluşturulan veya mevcut bir mesajlaşma etkinliğinin etkinlik kimliğini not edin. Not ettikten sonra, uygulamanızı etkinliği kimliğine göre tetikleyecek şekilde donatın.

Swift

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde kullanılamaz.
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Objective-C

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde kullanılamaz.
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

Kampanya özel meta verilerini kullanma

Kampanyalarınızda bir dizi anahtar/değer çiftinde özel veriler belirtebilirsiniz. Kullanıcılar mesajlarla etkileşime geçtiğinde bu verileri kullanarak örneğin promosyon kodu gösterebilirsiniz.

Swift

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde kullanılamaz.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
	// Get data bundle from the inapp message
	let appData = inAppMessage.appData
	// ...
    }
}

Objective-C

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde kullanılamaz.
@implementation CardActionFiamDelegate

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
	appData = inAppMessage.appData
	// ...
}

@end

Uygulama içi mesajları geçici olarak devre dışı bırakma

Varsayılan olarak Firebase In-App Messaging, bir uygulamanın mevcut durumundan bağımsız olarak, tetikleyici koşul sağlandığında mesajları oluşturur. Mesajların gösterilmesini herhangi bir nedenle engellemek istiyorsanız (ör. ödeme işleme ekranlarının sırasını kesintiye uğratmamak için) SDK'nın messageDisplaySuppressed mülkünü burada gösterildiği gibi Objective-C'te kullanın:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

Mülkün YES olarak ayarlanması Firebase In-App Messaging'un mesaj göstermesini engellerken NO, mesaj göstermeyi yeniden etkinleştirir. SDK, uygulama yeniden başlatılırken mülkü NO olarak sıfırlar. Engellenen iletiler SDK tarafından yoksayılır. Firebase In-App Messaging'ün bunları gösterebilmesi için, engelleme devre dışıyken tetikleyici koşullarının tekrar karşılanması gerekir.

Mesajları devre dışı bırakma seçeneğini etkinleştirme

Varsayılan olarak Firebase In-App Messaging, mesajlaşma kampanyalarında hedeflediğiniz tüm uygulama kullanıcılarına otomatik olarak mesaj gönderir. Bu mesajları yayınlamak için Firebase In-App Messaging SDK'sı, her kullanıcının uygulamasını tanımlamak amacıyla Firebase yükleme kimliklerini kullanır. Bu, In-App Messaging'nin yükleme kimliğine bağlı istemci verilerini Firebase sunucularına göndermesi gerektiği anlamına gelir. Kullanıcılara gönderdikleri veriler üzerinde daha fazla kontrol vermek istiyorsanız otomatik veri toplamayı devre dışı bırakın ve kullanıcılara veri paylaşımını onaylama fırsatı verin.

Bunun için Firebase In-App Messaging için otomatik başlatmayı devre dışı bırakmanız ve hizmeti etkinleştiren kullanıcılar için manuel olarak başlatmanız gerekir:

  1. Info.plist dosyanızda yeni bir anahtarla otomatik başlatmayı devre dışı bırakma:

    • Anahtar: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • Değer: NO
  2. Seçili kullanıcılar için Firebase In-App Messaging'ü manuel olarak başlatın:

    // Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO
    // in Info.plist
    [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
    
    

    automaticDataCollectionEnabled değerini YES olarak ayarladıktan sonra bu değer, uygulama yeniden başlatılırken devam eder ve Info.plist değerinizi geçersiz kılar. Örneğin, bir kullanıcı daha sonra veri toplamayı devre dışı bırakırsa özelliği NO olarak ayarlayarak ilk başlatmayı tekrar devre dışı bırakabilirsiniz.