Wysyłanie wiadomości w aplikacji Firebase pozwala tworzyć, konfigurować i kierować bogate interakcje z użytkownikami przy minimalnym nakładzie pracy związanej z kodowaniem. Wykorzystuje ono 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 integracji pakietu SDK Firebase In-App Messaging możesz jeszcze bardziej dostosować zachowanie wiadomości w aplikacji, reagując na interakcje użytkowników z wiadomościami, wywołując zdarzenia związane z przesyłaniem wiadomości poza platformą Analytics i umożliwiając użytkownikom kontrolowanie udostępniania swoich 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 określony ekran w aplikacji.
Twój kod może reagować na podstawowe interakcje (kliknięcia i odrzucenia), wyświetlenia (zweryfikowane wyświetlenia wiadomości) oraz błędy wyświetlania zarejestrowane i potwierdzone przez pakiet SDK. Jeśli na przykład wiadomość jest wyświetlana jako modalna karta, możesz śledzić, który z 2 adresów URL użytkownik kliknął na karcie, i odpowiednio reagować.
Implementowanie DisplayDelegate do obsługi interakcji z kartami
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.
Zakładając ponownie, ż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, dzięki czemu uzyskasz dostęp do linku klikniętego przez użytkownika.
Swift
Informacje o zbiorze metod wywołania zwrotnego, które można zaimplementować, oraz ich parametrach, w tym InAppMessagingAction, znajdziesz w dokumentacji delegata wyświetlania w 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
Informacje o zbiorze metod wywołania zwrotnego, które można zaimplementować, oraz ich parametrach, w tym FIRInAppMessagingDisplayMessage, znajdziesz w dokumentacji delegata wyświetlania w 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 dodatkowej integracji. Możesz też ręcznie wywoływać zdarzenia programowo za pomocą programowych wyzwalaczy pakietu SDK Firebase In-App Messaging.
W edytorze kampanii Wysyłanie wiadomości w aplikacji utwórz nową kampanię lub wybierz istniejącą, a w kroku Planowanie w przepływie pracy edytora zanotuj identyfikator zdarzenia nowo utworzonego lub istniejącego zdarzenia związanego z wiadomościami. Po zanotowaniu skonfiguruj aplikację tak, aby wywoływał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"];
Używanie niestandardowych metadanych kampanii
W kampaniach możesz określić dane niestandardowe w postaci serii par klucz-wartość. Gdy użytkownicy wchodzą w interakcje z wiadomościami, te dane są dostępne, aby na przykład wyświetlić kod promocyjny.
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 jakiegoś powodu chcesz wstrzymać
wyświetlanie wiadomości, na przykład aby uniknąć przerywania
sekwencji ekranów przetwarzania płatności, użyj
właściwości messageDisplaySuppressed pakietu SDK, jak pokazano tutaj w Objective-C:
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
Ustawienie właściwości na YES uniemożliwia wyświetlanie wiadomości przez Firebase In-App Messaging,
a wartość NO ponownie włącza wyświetlanie wiadomości. Pakiet SDK resetuje właściwość do wartości NO
po ponownym uruchomieniu aplikacji. Wstrzymane wiadomości są ignorowane przez pakiet SDK. Aby funkcja Firebase In-App Messaging mogła je wyświetlić, po wyłączeniu wstrzymywania muszą zostać ponownie spełnione warunki wyzwalające.
Włączanie dostarczania wiadomości z rezygnacją
Domyślnie funkcja Firebase In-App Messaging automatycznie dostarcza wiadomości do wszystkich użytkowników aplikacji, do których kierujesz kampanie związane z wiadomościami. Aby dostarczać te wiadomości, pakiet SDK Firebase In-App Messaging używa Firebase 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 daj im możliwość zatwierdzenia udostępniania danych.
Aby to zrobić, musisz wyłączyć automatyczną inicjację funkcji Firebase In-App Messaging, i ręcznie zainicjować usługę dla użytkowników, którzy wyrazili zgodę:
Wyłącz automatyczną inicjację za pomocą nowego klucza w pliku
Info.plist:- Klucz:
FirebaseInAppMessagingAutomaticDataCollectionEnabled - Wartość:
NO
- Klucz:
Ręcznie zainicjuj 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 wartość
automaticDataCollectionEnablednaYES, wartość będzie się utrzymywać po ponownym uruchomieniu aplikacji, zastępując wartość w plikuInfo.plist. Jeśli chcesz ponownie wyłączyć inicjację, na przykład gdy użytkownik później zrezygnuje ze zbierania danych, ustaw właściwość naNO.