שנה את ההתנהגות של הודעות Firebase In-App Messaging

ללא מעט מאמץ קידוד, Firebase In-App Messaging מאפשר לך ליצור, להגדיר ולמקד אינטראקציות עשירות של משתמשים, תוך מינוף היכולות של Google Analytics מחוץ לקופסה כדי לקשור אירועי הודעות למאפייני המשתמש, פעילויות ובחירות בפועל. עם שילוב נוסף של Firebase In-App Messaging SDK, אתה יכול להתאים את ההתנהגות של הודעות בתוך האפליקציה עוד יותר, להגיב כאשר משתמשים מקיימים אינטראקציה עם הודעות, להפעיל אירועי הודעות מחוץ למסגרת Analytics, ולאפשר למשתמשים לשלוט בשיתוף הנתונים האישיים שלהם הקשורים לאינטראקציות בהודעות.

השב כאשר משתמשים מקיימים אינטראקציה עם הודעות בתוך האפליקציה

בעזרת פעולות תוכל להשתמש בהודעות בתוך האפליקציה כדי להפנות משתמשים לאתר אינטרנט או למסך ספציפי באפליקציה שלך.

הקוד שלך יכול להגיב לאינטראקציות בסיסיות (קליקים ודחיות), להופעות (צפיות מאומתות של ההודעות שלך), ולהציג שגיאות שנרשמו ואושרו על ידי ה-SDK. לדוגמה, כאשר ההודעה שלך מורכבת כמודאל של כרטיס, ייתכן שתרצה לעקוב ולעקוב אחר איזו משתי כתובות האתרים שהמשתמש לחץ על הכרטיס.

הטמעת DisplayDelegate לטיפול באינטראקציות עם כרטיסים

אתה יכול לרשום נציג להצגת הודעות בתוך האפליקציה שייקרא בכל פעם שיש אינטראקציה כלשהי עם הודעה בתוך האפליקציה. לשם כך, הטמיע מחלקה לפי פרוטוקול InAppMessagingDisplayDelegate והגדר אותו כמאפיין delegate במופע InAppMessaging .

בהנחה שוב שאתה רוצה לעקוב על איזה קישור משתמש לחץ על הודעה בסגנון כרטיס, הגדר מחלקה המיישמת את שיטת messageClicked לפי פרוטוקול DisplayDelegate , ובכך מספקת לך גישה לקישור שעליו לחץ המשתמש.

מָהִיר

הערה: מוצר זה אינו זמין ביעדי macOS, Mac Catalyst, App Clip או watchOS.

עיין בהפניה של נציג Swift Display עבור קבוצת שיטות התקשרות חוזרת שניתן ליישם והפרמטרים שלהן, כולל 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;

Objective-C

הערה: מוצר זה אינו זמין ביעדי macOS, Mac Catalyst, App Clip או watchOS.

עיין בהפניה של נציג התצוגה של Objective-C עבור קבוצת שיטות ה-callback שניתן ליישם והפרמטרים שלהן, כולל 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;

הפעל הודעות בתוך האפליקציה באופן פרוגרמטי

הודעות באפליקציה של Firebase כברירת מחדל מאפשרת לך להפעיל הודעות בתוך האפליקציה עם אירועים של Google Analytics עבור Firebase, ללא אינטגרציה נוספת. אתה יכול גם להפעיל אירועים באופן ידני באמצעות הטריגרים הפרוגרמטיים של Firebase In-App Messaging SDK.

במחבר מסעות הפרסום בתוך האפליקציה, צור מסע פרסום חדש או בחר מסע פרסום קיים, ובשלב התזמון של זרימת העבודה של המלחין, שים לב למזהה האירוע של אירוע מסרים חדש שנוצר או קיים. לאחר שצוין, מכשיר את האפליקציה שלך להפעיל את האירוע על ידי המזהה שלה.

מָהִיר

הערה: מוצר זה אינו זמין ביעדי macOS, Mac Catalyst, App Clip או watchOS.
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Objective-C

הערה: מוצר זה אינו זמין ביעדי macOS, Mac Catalyst, App Clip או watchOS.
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

השתמש במטא נתונים מותאמים אישית של מסע פרסום

בקמפיינים שלך, תוכל לציין נתונים מותאמים אישית בסדרה של צמדי מפתח/ערך. כאשר משתמשים מקיימים אינטראקציה עם הודעות, הנתונים האלה זמינים עבורך, למשל, כדי להציג קוד הטבה.

מָהִיר

הערה: מוצר זה אינו זמין ביעדי macOS, Mac Catalyst, App Clip או watchOS.
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

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

Objective-C

הערה: מוצר זה אינו זמין ביעדי macOS, Mac Catalyst, App Clip או watchOS.
@implementation CardActionFiamDelegate

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

@end

השבת באופן זמני הודעות בתוך האפליקציה

כברירת מחדל, Firebase In-App Messaging מעבד הודעות בכל פעם שמתקיים תנאי הפעלה, ללא קשר למצב הנוכחי של האפליקציה. אם ברצונך לדכא את הצגת ההודעות מכל סיבה שהיא, למשל כדי למנוע הפרעה של רצף של מסכי עיבוד תשלום, השתמש במאפיין messageDisplaySuppressed של ה-SDK כפי שמוצג כאן ב-Ojective-C:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

הגדרת המאפיין ל- YES מונעת מ-Firebase In-App Messaging להציג הודעות, בעוד NO מפעיל מחדש את הצגת ההודעות. ה-SDK מאפס את המאפיין למצב NO בהפעלה מחדש של האפליקציה. ה-SDK מתעלם מהודעות נדחקות. תנאי ההפעלה שלהם חייבים להתקיים שוב בזמן הדיכוי כבוי, לפני ש-Firebase In-App Messaging יוכל להציג אותם.

אפשר משלוח הודעות לביטול הסכמה

כברירת מחדל, Firebase In-App Messaging מספקת הודעות אוטומטית לכל משתמשי האפליקציה שאליהם אתה ממקד בקמפיינים להעברת הודעות. כדי להעביר את ההודעות האלה, ה-SDK של Firebase In-App Messaging משתמש במזהי התקנה של Firebase כדי לזהות את האפליקציה של כל משתמש. המשמעות היא שהעברת הודעות בתוך האפליקציה צריכה לשלוח נתוני לקוח, המקושרים למזהה ההתקנה, לשרתי Firebase. אם תרצה לתת למשתמשים שליטה רבה יותר על הנתונים שהם שולחים, השבת את איסוף הנתונים האוטומטי ותן להם הזדמנות לאשר שיתוף נתונים.

כדי לעשות זאת, עליך להשבית את האתחול האוטומטי עבור Firebase In-App Messaging, ולאתחל את השירות באופן ידני עבור משתמשים שהצטרפו:

  1. כבה את האתחול האוטומטי עם מפתח חדש בקובץ Info.plist שלך:

    • מפתח: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • ערך: NO
  2. אתחול Firebase In-App Messaging עבור משתמשים נבחרים באופן ידני:

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

    לאחר שתגדיר את automaticDataCollectionEnabled ל- YES , הערך נמשך באמצעות הפעלה מחדש של האפליקציה, ויעקוף את הערך ב- Info.plist שלך. אם תרצה לבטל את האתחול שוב, לדוגמה אם משתמש יבטל את הסכמתך לאיסוף מאוחר יותר, הגדר את המאפיין ל- NO .