Bez konieczności kodowania możesz tworzyć, konfigurować i kierować interakcje z użytkownikami za pomocą funkcji Firebase In-App Messaging, korzystając z domyślnych możliwości usługi Google Analytics do łączenia zdarzeń związanych z wiadomościami z rzeczywistymi cechami, działaniami i wyborami użytkowników. Dzięki dodatkowej integracji pakietu SDK Firebase In-App Messaging możesz jeszcze lepiej dostosować działanie wiadomości w aplikacji, reagując na interakcje użytkowników z wiadomościami, wywołując zdarzenia wiadomości poza frameworkiem Analytics oraz umożliwiając użytkownikom kontrolowanie udostępniania ich danych osobowych związanych z interakcjami z wiadomościami.
Odpowiadanie 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 konkretnego ekranu w aplikacji.
Twój kod może reagować na podstawowe interakcje (kliknięcia i odrzucenia), wyświetlenia (zweryfikowane wyświetlenia wiadomości) i wyświetlać błędy zarejestrowane i potwierdzone przez pakiet SDK. Jeśli na przykład wiadomość jest sformatowana jako modalna karta, możesz śledzić i przetwarzać informacje o tym, który z 2 adresów URL użytkownik kliknął na karcie.
Implementowanie klasy DisplayDelegate do obsługi interakcji z kartą
Możesz zarejestrować delegata wyświetlania wiadomości w aplikacji, który będzie wywoływany, gdy nastąpi jakakolwiek interakcja z wiadomością w aplikacji. Aby to zrobić, zaimplementuj klasę zgodnie z protokołem InAppMessagingDisplayDelegate
i ustaw ją jako właściwość delegującą w obiekcie InAppMessaging
.
Zakładając, że chcesz śledzić link, który użytkownik kliknął w wiadomości w stylu karty, zdefiniuj klasę, która implementuje metodę messageClicked
zgodnie z protokołem DisplayDelegate
, zapewniając dostęp do linku klikniętego przez użytkownika.
Swift
Informacje o dostępnych metodach wywołania i ich parametrach, w tym o metodzie InAppMessagingAction, znajdziesz w artykule display delegate reference (w języku Swift).
// 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
Informacje o zestawie metod wywołania, które można zaimplementować, oraz ich parametrach, w tym FIRInAppMessagingDisplayMessage, znajdziesz w dokumentacji Objective-C DISPLAY_DELEGATE_REFERENCE.
// 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;
Automatyczne wywoływanie wiadomości w aplikacji
Firebase In-App Messaging domyślnie pozwala na aktywowanie wiadomości w aplikacji ze zdarzeniami Google Analytics dla Firebase bez konieczności dodatkowej integracji. Zdarzenia możesz też uruchamiać ręcznie za pomocą wywołań programowych w pakiecie SDK Firebase In-App Messaging.
W narzędziu do tworzenia wiadomości w aplikacji utwórz nową kampanię lub wybierz już istniejącą. Następnie w kroku Planowanie w procesie tworzenia wiadomości zanotuj identyfikator zdarzenia nowo utworzonego lub istniejącego zdarzenia wiadomości. Gdy to zrobisz, zintegruj swoją aplikację z usługą, aby wywołać zdarzenie za pomocą jego identyfikatora.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
Korzystanie z niestandardowych metadanych kampanii
W kampaniach możesz podawać dane niestandardowe w serii par klucz-wartość. Gdy użytkownicy wchodzą w interakcje z wiadomościami, możesz udostępniać te dane, np. wyświetlać kod promocyjny.
Swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-C
@implementation CardActionFiamDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
appData = inAppMessage.appData
// ...
}
@end
Tymczasowe wyłączenie wiadomości w aplikacji
Domyślnie Firebase In-App Messaging wyświetla wiadomości, gdy warunek jest spełniony, niezależnie od bieżącego stanu aplikacji. Jeśli z jakiegokolwiek powodu chcesz z jakiegokolwiek powodu wyłączyć wyświetlanie komunikatów, na przykład aby nie przerywać sekwencji ekranów przetwarzania płatności, użyj właściwości messageDisplaySuppressed
pakietu SDK, jak pokazano w tym przykładzie w Objective-C:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Ustawienie tej właściwości na YES
spowoduje, że Firebase In-App Messaging nie będzie wyświetlać wiadomości, natomiast ustawienie jej na NO
ponownie włączy wyświetlanie wiadomości. Po ponownym uruchomieniu aplikacji pakiet SDK resetuje tę właściwość do wartości NO
. Pakiet SDK ignoruje wiadomości z wyłączonym powiadomieniem. Gdy pomijanie jest wyłączone, ich warunki aktywatora muszą zostać ponownie spełnione, zanim Firebase In-App Messaging będzie mógł je wyświetlić.
Włączanie wysyłania wiadomości z możliwością rezygnacji
Domyślnie Firebase In-App Messaging automatycznie dostarcza wiadomości do wszystkich użytkowników aplikacji, na których kierujesz kampanie z opcją przesyłania wiadomości. Aby dostarczyć te komunikaty, pakiet SDK Firebase In-App Messaging korzysta z identyfikatorów instalacji aplikacji Firebase, aby zidentyfikować aplikację każdego użytkownika. Oznacza to, że In-App Messaging musi wysyłać dane klienta połączone z identyfikatorem instalacji na serwery Firebase. Jeśli chcesz, aby użytkownicy mieli większą kontrolę nad przesyłanymi przez siebie danymi, wyłącz automatyczne gromadzenie danych i pozwalaj im na zatwierdzanie udostępniania danych.
Aby to zrobić, musisz wyłączyć automatyczne inicjowanie usługi Firebase In-App Messaging i zainicjować ją ręcznie dla użytkowników, którzy wyrazili na to zgodę:
Wyłącz automatyczną inicjalizację za pomocą nowego klucza w pliku
Info.plist
:- Klucz:
FirebaseInAppMessagingAutomaticDataCollectionEnabled
- Wartość:
NO
- Klucz:
Aby ręcznie zainicjować Firebase In-App Messaging dla wybranych użytkowników:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
Gdy ustawisz
automaticDataCollectionEnabled
naYES
, wartość będzie się utrzymywała po ponownym uruchomieniu aplikacji i zastąpi wartość zInfo.plist
. Jeśli chcesz ponownie wyłączyć inicjowanie, na przykład jeśli użytkownik zrezygnuje z zbierania danych, ustaw tę właściwość naNO
.