שינוי ההתנהגות של הודעות בתוך האפליקציה ב-Firebase


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

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

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

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

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

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

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

Swift

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

במאמר העזרה בנושא Swift מפורטות קבוצת שיטות הקריאה החוזרת (callback) שניתן להטמיע והפרמטרים שלהן, כולל 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 תוכלו למצוא רשימה של שיטות קריאה חוזרת שאפשר להטמיע ואת הפרמטרים שלהן, כולל 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 In-App Messaging מאפשרת לך להפעיל הודעות בתוך האפליקציה באמצעות אירועים של Google Analytics for Firebase, ללא שילוב נוסף. אפשר גם להפעיל באופן ידני אירועים באופן פרוגרמטי באמצעות ה-SDK של Firebase In-App Messaging טריגרים פרוגרמטיים.

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

Swift

הערה: המוצר הזה לא זמין ביעדים של 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"];

שימוש במטא-נתונים מותאמים אישית של הקמפיין

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

Swift

הערה: המוצר הזה לא זמין ביעדים של 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 כפי שמוצג כאן ב-Objective-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 מזהי התקנה שמשמשים לזיהוי האפליקציות של כל משתמש. כלומר על In-App Messaging לשלוח נתוני לקוח, שמקושרים אל לשרתי 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.