Firebase In-App Messaging umożliwia tworzenie, konfigurowanie i kierowanie bogatych interakcji z użytkownikami przy niewielkim lub zerowym nakładzie pracy związanym z kodowaniem. Wykorzystuje on możliwości Google Analytics, aby powiązać zdarzenia związane z wiadomościami z rzeczywistymi cechami, aktywnością i wyborami użytkowników. Dzięki dodatkowej Firebase In-App Messagingintegracji pakietu SDK możesz jeszcze bardziej dostosować działanie wiadomości w aplikacji, reagując na interakcje użytkowników z wiadomościami, wywołując zdarzenia związane z wiadomościami poza Analytics platformą i umożliwiając użytkownikom kontrolowanie udostępniania danych osobowych związanych z interakcjami z wiadomościami.
Reagowanie na interakcje użytkowników z wiadomościami w aplikacji
Dzięki działaniom możesz używać wiadomości w aplikacji, aby kierować użytkowników do witryny lub na konkretny ekran w aplikacji.
Kod może reagować na podstawowe interakcje (kliknięcia i zamknięcia), wyświetlenia (zweryfikowane wyświetlenia wiadomości) oraz błędy wyświetlania rejestrowane i potwierdzane przez pakiet SDK. Jeśli na przykład wiadomość jest wyświetlana w formie karty, możesz śledzić, który z 2 adresów URL użytkownik kliknął na karcie, i podejmować odpowiednie działania.
Zaimplementuj DisplayDelegate, aby obsługiwać interakcje z kartą
Możesz zarejestrować delegata wyświetlania wiadomości w aplikacji, który będzie wywoływany za każdym razem, gdy nastąpi interakcja z wiadomością w aplikacji. Aby to zrobić, zaimplementuj klasę zgodnie z protokołem InAppMessagingDisplayDelegate
i ustaw ją jako właściwość delegata w instancji InAppMessaging
.
Załóżmy, że chcesz śledzić, który link użytkownik kliknął w wiadomości w stylu karty. Zdefiniuj klasę, która implementuje metodę messageClicked
zgodnie z protokołem DisplayDelegate
, aby uzyskać dostęp do linku klikniętego przez użytkownika.
Swift
Listę metod wywołania zwrotnego, które można zaimplementować, oraz ich parametrów, w tym InAppMessagingAction, znajdziesz w dokumentacji delegata wyświetlania w języku Swift.
// In CardActionFiamDelegate.swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// ...
}
func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
dismissType: InAppMessagingDismissType) {
// ...
}
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
Zestaw metod wywołania zwrotnego, które można zaimplementować, oraz ich parametry, w tym FIRInAppMessagingDisplayMessage, znajdziesz w dokumentacji delegata wyświetlania w języku Objective-C.
// 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;
Programowe wywoływanie wiadomości w aplikacji
Firebase In-App Messaging domyślnie umożliwia wywoływanie wiadomości w aplikacji za pomocą zdarzeń Google Analytics dla Firebase bez konieczności dodatkowej integracji. Możesz też ręcznie wywoływać zdarzenia programowo za pomocą wywołań programowych Firebase In-App Messaging pakietu SDK.
W kompozytorze kampanii wiadomości w aplikacji utwórz nową kampanię lub wybierz istniejącą. W kroku planowania w przepływie pracy kompozytora zanotuj identyfikator zdarzenia nowo utworzonego lub istniejącego zdarzenia wiadomości. Po zanotowaniu tego identyfikatora skonfiguruj aplikację tak, aby wywoływała zdarzenie za pomocą tego identyfikatora.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Używanie niestandardowych metadanych kampanii
W kampaniach możesz określać dane niestandardowe w postaci serii par klucz/wartość. Gdy użytkownicy wchodzą w interakcję z wiadomościami, te dane są dostępne, np. do wyświetlania kodu promocyjnego.
Swift
class CardActionDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-C
@implementation ExampleCardActionDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
NSDictionary *appData = inAppMessage.appData;
NSLog(@"Message data: %@", appData);
// ...
}
@end
Tymczasowe wyłączanie wiadomości w aplikacji
Domyślnie Firebase In-App Messaging renderuje wiadomości, gdy tylko zostanie spełniony warunek wyzwalający, niezależnie od bieżącego stanu aplikacji. Jeśli z jakiegokolwiek powodu chcesz wstrzymać wyświetlanie komunikatów, np. aby nie przerywać sekwencji ekranów przetwarzania płatności, użyj właściwości messageDisplaySuppressed
pakietu SDK, jak pokazano poniżej w języku Objective-C:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Ustawienie wartości YES
uniemożliwia wyświetlanie wiadomości przez Firebase In-App Messaging, a NO
ponownie włącza wyświetlanie wiadomości. Po ponownym uruchomieniu aplikacji pakiet SDK resetuje tę właściwość do wartości NO
. Wyciszone wiadomości są ignorowane przez pakiet SDK. Gdy wyciszanie jest wyłączone, warunki wywołania muszą zostać ponownie spełnione, zanim Firebase In-App Messaging będzie mogło wyświetlić te reklamy.
Włączanie dostarczania wiadomości z prośbą o rezygnację
Domyślnie Firebase In-App Messaging automatycznie dostarcza wiadomości do wszystkich użytkowników aplikacji, na których kierujesz kampanie informacyjne. Aby dostarczać te wiadomości, pakiet SDK Firebase In-App MessagingużywaFirebase identyfikatorów instalacji do identyfikowania aplikacji każdego użytkownika. Oznacza to, że In-App Messaging musi wysyłać dane klienta powiązane z identyfikatorem instalacji na serwery Firebase. Jeśli chcesz dać użytkownikom większą kontrolę nad wysyłanymi przez nich danymi, wyłącz automatyczne zbieranie danych i pozwól im zatwierdzać udostępnianie danych.
Aby to zrobić, musisz wyłączyć automatyczną inicjację dla Firebase In-App Messaging i ręcznie zainicjować usługę dla użytkowników, którzy wyrazili na to zgodę:
Wyłącz automatyczną inicjację za pomocą nowego klucza w pliku
Info.plist
:- Klucz:
FirebaseInAppMessagingAutomaticDataCollectionEnabled
- Wartość:
NO
- Klucz:
Ręczne inicjowanie Firebase In-App Messaging w przypadku wybranych użytkowników:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
Gdy ustawisz wartość
automaticDataCollectionEnabled
naYES
, będzie ona obowiązywać po ponownym uruchomieniu aplikacji, zastępując wartość w plikuInfo.plist
. Jeśli chcesz ponownie wyłączyć inicjowanie, np. gdy użytkownik później zrezygnuje z zbierania danych, ustaw wartość właściwości naNO
.