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


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

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

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

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

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

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

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

Swift

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

בהפניה ל-delegate של התצוגה ב-Swift מפורטות קבוצת שיטות הקריאה החוזרת שאפשר להטמיע והפרמטרים שלהן, כולל InAppMessagingAction.


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

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

בהפניה ל-delegate של הצגת מודעות ב-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 כברירת מחדל, ללא צורך בשילוב נוסף. אפשר גם להפעיל אירועים באופן ידני באמצעות טריגרים מתוכנתים של Firebase In-App Messaging SDK.

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

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 CardActionDelegate : 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 ExampleCardActionDelegate

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
    NSDictionary *appData = inAppMessage.appData;
    NSLog(@"Message data: %@", appData);
	// ...
}

@end

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

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

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

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

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

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