Zmodyfikuj zachowanie wiadomości Firebase w aplikacji

Przy niewielkim lub żadnym wysiłku związanym z kodowaniem funkcja Firebase In-App Messaging umożliwia tworzenie, konfigurowanie i kierowanie rozbudowanych interakcji z użytkownikami, wykorzystując gotowe możliwości Google Analytics do powiązania zdarzeń związanych z przesyłaniem wiadomości z rzeczywistymi cechami, działaniami i wyborami użytkownika. Dzięki dodatkowej integracji pakietu SDK do obsługi wiadomości w aplikacji Firebase możesz jeszcze bardziej dostosować zachowanie wiadomości w aplikacji, reagując, gdy użytkownicy wchodzą w interakcję z wiadomościami, wyzwalając zdarzenia w wiadomościach poza strukturą Analytics i pozwalając użytkownikom kontrolować udostępnianie ich danych osobowych w związku z do interakcji za pomocą wiadomości.

Odpowiadaj, gdy użytkownicy wchodzą w interakcję z wiadomościami w aplikacji

Dzięki akcjom możesz używać wiadomości w aplikacji do kierowania użytkowników do witryny internetowej lub określonego ekranu w aplikacji.

Twój kod może reagować na podstawowe interakcje (kliknięcia i zwolnienia), na wyświetlenia (zweryfikowane wyświetlenia Twoich wiadomości) oraz wyświetlać błędy zarejestrowane i potwierdzone przez SDK. Na przykład, jeśli Twoja wiadomość jest zbudowana w trybie karty, możesz chcieć śledzić i sprawdzać, który z dwóch adresów URL użytkownik kliknął kartę.

Zaimplementuj 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 jakakolwiek 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 kliknął użytkownik w wiadomości typu Card, zdefiniuj klasę implementującą metodę messageClicked zgodnie z protokołem DisplayDelegate , zapewniając w ten sposób dostęp do łącza klikniętego przez użytkownika.

Szybki

Uwaga: ten produkt nie jest dostępny w systemach macOS, Mac Catalyst, App Clip i watchOS.

Zapoznaj się z dokumentacją delegata wyświetlania Swift, aby zapoznać się z zestawem metod wywołania zwrotnego, które można zaimplementować, i ich parametrami, w tym InAppMessagingAction.


// 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;

Cel C

Uwaga: ten produkt nie jest dostępny w systemach macOS, Mac Catalyst, App Clip i watchOS.

Zapoznaj się z dokumentacją delegata wyświetlania w języku C, aby zapoznać się z zestawem metod wywołania zwrotnego, które można zaimplementować, i ich parametrami, w tym FIRInAppMessagingDisplayMessage.


// 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;

Programowo wyzwalaj wiadomości w aplikacji

Wiadomości w aplikacji Firebase domyślnie umożliwiają wyzwalanie wiadomości w aplikacji za pomocą Google Analytics dla zdarzeń Firebase, bez dodatkowej integracji. Możesz także ręcznie wyzwalać zdarzenia programowo za pomocą wyzwalaczy programistycznych pakietu SDK do obsługi komunikatów w aplikacji Firebase.

W narzędziu do tworzenia wiadomości w aplikacji utwórz nową kampanię lub wybierz istniejącą kampanię, a na etapie planowania w procesie tworzenia wiadomości zanotuj identyfikator nowo utworzonego lub istniejącego zdarzenia dotyczącego przesyłania wiadomości. Po zanotowaniu zainstruuj aplikację tak, aby wyzwalała zdarzenie na podstawie jej identyfikatora.

Szybki

Uwaga: ten produkt nie jest dostępny w systemach macOS, Mac Catalyst, App Clip i watchOS.
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Cel C

Uwaga: ten produkt nie jest dostępny w systemach macOS, Mac Catalyst, App Clip i watchOS.
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

Użyj niestandardowych metadanych kampanii

W swoich kampaniach możesz określić dane niestandardowe w postaci serii par klucz/wartość. Gdy użytkownicy wchodzą w interakcję z wiadomościami, dane te są dostępne dla Ciebie, na przykład w celu wyświetlenia kodu promocyjnego.

Szybki

Uwaga: ten produkt nie jest dostępny w systemach macOS, Mac Catalyst, App Clip i watchOS.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

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

Cel C

Uwaga: ten produkt nie jest dostępny w systemach macOS, Mac Catalyst, App Clip i watchOS.
@implementation CardActionFiamDelegate

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

@end

Tymczasowo wyłącz wiadomości w aplikacji

Domyślnie Firebase In-App Messaging renderuje wiadomości za każdym razem, gdy spełniony zostanie warunek wyzwalający, niezależnie od bieżącego stanu aplikacji. Jeśli z jakiegoś powodu chcesz wyłączyć wyświetlanie komunikatów, na przykład aby uniknąć przerwania 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 komunikatów w aplikacji Firebase Messaging, natomiast ustawienie NO powoduje ponowne włączenie wyświetlania komunikatów. Zestaw SDK resetuje właściwość na NO po ponownym uruchomieniu aplikacji. Pominięte komunikaty są ignorowane przez zestaw SDK. Warunki wyzwalania muszą zostać spełnione ponownie, gdy tłumienie jest wyłączone, zanim funkcja Wiadomości w aplikacji Firebase będzie mogła je wyświetlić.

Włącz dostarczanie wiadomości o rezygnacji

Domyślnie funkcja Wiadomości w aplikacji Firebase automatycznie dostarcza wiadomości do wszystkich użytkowników aplikacji, do których kierujesz kampanie z wiadomościami. Aby dostarczać te wiadomości, zestaw SDK do obsługi komunikatów w aplikacji Firebase wykorzystuje identyfikatory instalacji Firebase do identyfikowania aplikacji każdego użytkownika. Oznacza to, że funkcja przesyłania wiadomości w aplikacji musi wysyłać dane klienta powiązane z identyfikatorem instalacji do serwerów Firebase. Jeśli chcesz dać użytkownikom większą kontrolę nad wysyłanymi przez nich danymi, wyłącz automatyczne zbieranie danych i daj im szansę na zatwierdzenie udostępniania danych.

Aby to zrobić, musisz wyłączyć automatyczną inicjalizację wiadomości w aplikacji Firebase i ręcznie zainicjować usługę dla użytkowników, którzy wyrazili zgodę:

  1. Wyłącz automatyczną inicjalizację nowym kluczem w pliku Info.plist :

    • Klucz: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • Wartość: NO
  2. Zainicjuj ręcznie komunikację w aplikacji Firebase dla wybranych użytkowników:

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

    Po ustawieniu opcji automaticDataCollectionEnabled na YES wartość będzie obowiązywać po ponownym uruchomieniu aplikacji, zastępując wartość w pliku Info.plist . Jeśli chcesz ponownie wyłączyć inicjalizację, na przykład jeśli użytkownik zrezygnuje później z gromadzenia danych, ustaw tę właściwość na NO .