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

Firebase Uygulama İçi Mesajlaşma, çok az kodlama çalışmasıyla veya hiç kodlama çabası gerektirmeden, mesajlaşma olaylarını gerçek kullanıcı özelliklerine, etkinliklerine ve seçimlerine bağlamak için Google Analytics'in kullanıma hazır özelliklerinden yararlanarak zengin kullanıcı etkileşimleri oluşturmanıza, yapılandırmanıza ve hedeflemenize olanak tanır. Bazı ek Firebase Uygulama İçi Mesajlaşma SDK entegrasyonuyla, uygulama içi mesajların davranışını daha da özel hale getirebilir, kullanıcılar mesajlarla etkileşimde bulunduğunda yanıt verebilir, Analytics çerçevesi dışında mesaj etkinliklerini tetikleyebilir ve kullanıcıların, mesajlarla ilgili kişisel verilerinin paylaşımını kontrol etmesine olanak tanıyabilirsiniz. mesajlaşma etkileşimlerine.

Kullanıcılar uygulama içi mesajlarla etkileşime girdiğinde yanıt verin

Eylemlerle, 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 reddetmeler), gösterimlere (mesajlarınızın doğrulanmış görünümleri) ve SDK tarafından günlüğe kaydedilen ve onaylanan hataları görüntüleyebilir. Örneğin mesajınız Kart modeli olarak oluşturulduğunda, kullanıcının Kart üzerinde iki URL'den hangisine tıkladığını takip etmek isteyebilirsiniz.

Kart etkileşimlerini yönetmek için bir DisplayDelegate uygulayın

Uygulama içi bir mesajla herhangi bir etkileşim olduğunda çağrılacak bir uygulama içi mesajlaşma ekranı temsilcisini kaydedebilirsiniz. Bunu yapmak için InAppMessagingDisplayDelegate protokolüne göre bir sınıf uygulayın ve bunu InAppMessaging örneğinde temsilci özelliği olarak ayarlayın.

Bir kullanıcının Card tarzı bir mesajda hangi bağlantıya tıkladığını izlemek istediğinizi varsayalım, DisplayDelegate protokolü başına messageClicked yöntemini uygulayan ve böylece kullanıcı tarafından tıklatılan bağlantıya erişmenizi sağlayan bir sınıf tanımlayın.

Süratli

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde mevcut değildir.

InAppMessagingAction da dahil olmak üzere uygulanabilecek geri çağırma yöntemleri ve bunların parametreleri için Swift ekran temsilci 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;

Amaç-C

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde mevcut değildir.

FIRInAppMessagingDisplayMessage dahil olmak üzere uygulanabilecek geri çağırma yöntemleri ve bunların parametreleri için Objective-C ekran temsilcisi referansına bakın.


// 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ı programlı olarak tetikleyin

Firebase Uygulama İçi Mesajlaşma, varsayılan olarak, herhangi bir ek entegrasyona gerek kalmadan Firebase için Google Analytics etkinlikleriyle uygulama içi mesajları tetiklemenize olanak tanır. Firebase Uygulama İçi Mesajlaşma SDK'sının programatik tetikleyicilerini kullanarak etkinlikleri programlı olarak manuel olarak da tetikleyebilirsiniz.

Uygulama İçi Mesajlaşma kampanya oluşturucusunda yeni bir kampanya oluşturun veya mevcut bir kampanyayı seçin ve oluşturucu iş akışının Planlama adımında yeni oluşturulan veya mevcut bir mesajlaşma etkinliğinin etkinlik kimliğini not edin. Not alındıktan sonra uygulamanızı, etkinliği kimliğine göre tetikleyecek şekilde ayarlayın.

Süratli

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

Amaç-C

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

Kampanya özel meta verilerini kullan

Kampanyalarınızda özel verileri bir dizi anahtar/değer çiftinde belirtebilirsiniz. Kullanıcılar mesajlarla etkileşime girdiğinde bu veriler, örneğin bir promosyon kodunu görüntülemek için kullanılabilir.

Süratli

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde mevcut değildir.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

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

Amaç-C

Not: Bu ürün macOS, Mac Catalyst, App Clip veya watchOS hedeflerinde mevcut değildir.
@implementation CardActionFiamDelegate

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

@end

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

Varsayılan olarak Firebase Uygulama İçi Mesajlaşma, uygulamanın mevcut durumundan bağımsız olarak tetikleyici bir koşul karşılandığında mesajları oluşturur. Herhangi bir nedenden dolayı mesaj görüntülemelerini bastırmak istiyorsanız (örneğin, ödeme işleme ekranları dizisinin kesintiye uğramasını önlemek için), burada Objective-C'de gösterildiği gibi SDK'nın messageDisplaySuppressed özelliğini kullanın:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

Özelliğin YES olarak ayarlanması, Firebase Uygulama İçi Mesajlaşma'nın mesajları görüntülemesini engellerken NO mesaj görüntülemeyi yeniden etkinleştirir. SDK, uygulama yeniden başlatıldığında özelliği NO olarak sıfırlar. Bastırılmış iletiler SDK tarafından dikkate alınmaz. Firebase In-App Messaging'in bunları görüntüleyebilmesi için, bastırma kapalıyken tetikleme koşullarının yeniden karşılanması gerekir.

Devre dışı bırakma mesajı dağıtımını etkinleştir

Varsayılan olarak Firebase Uygulama İçi Mesajlaşma, mesajları mesajlaşma kampanyalarında hedeflediğiniz tüm uygulama kullanıcılarına otomatik olarak iletir. Bu mesajları iletmek için Firebase Uygulama İçi Mesajlaşma SDK'sı, her kullanıcının uygulamasını tanımlamak üzere Firebase kurulum kimliklerini kullanır. Bu, Uygulama İçi Mesajlaşma'nın kurulum 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 onlara veri paylaşımını onaylama şansı verin.

Bunu yapmak için, Firebase Uygulama İçi Mesajlaşma için otomatik başlatmayı devre dışı bırakmanız ve hizmeti, kaydolan kullanıcılar için manuel olarak başlatmanız gerekir:

  1. Info.plist dosyanızda yeni bir anahtar kullanarak otomatik başlatmayı kapatın:

    • Anahtar: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • Değer: NO
  2. Seçilen kullanıcılar için Firebase Uygulama İçi Mesajlaşmayı manuel olarak başlatın:

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

    automaticDataCollectionEnabled öğesini YES olarak ayarladığınızda, değer, Info.plist dosyanızdaki değeri geçersiz kılarak uygulama yeniden başlatıldığında devam eder. Başlatmayı tekrar devre dışı bırakmak istiyorsanız (örneğin, bir kullanıcı daha sonra toplama kapsamı dışında kalmayı seçerse), özelliği NO olarak ayarlayın.