בלי מאמץ תכנות משמעותי, Firebase In-App Messaging מאפשר לכם ליצור אינטראקציות עשירות עם משתמשים, להגדיר אותן ולטרגט אותן. לשם כך, אתם יכולים להשתמש ביכולות של Google Analytics מבלי לבצע שינויים מיוחדים כדי לקשר אירועי שליחת הודעות למאפיינים, לפעילויות ולבחירות של המשתמשים בפועל. שילוב נוסף של Firebase In-App Messaging SDK מאפשר להתאים אישית את ההתנהגות של ההודעות באפליקציה עוד יותר, להגיב כשמשתמשים יוצרים אינטראקציה עם הודעות, להפעיל אירועי הודעות מחוץ למסגרת של Analytics ולאפשר למשתמשים לשלוט בשיתוף של המידע האישי שלהם שקשור לאינטראקציות עם הודעות.
תגובה כשמשתמשים מבצעים אינטראקציה עם הודעות מתוך האפליקציה
באמצעות פעולות, תוכלו להשתמש בהודעות בתוך האפליקציה כדי להפנות משתמשים לאתר או למסך ספציפי באפליקציה.
הקוד יכול להגיב לאינטראקציות בסיסיות (קליקים וסגירות), לחשיפות (צפיות מאומתות בהודעות) ולהצגת שגיאות שתועדו ביומן ואומתו על ידי ה-SDK. לדוגמה, אם ההודעה מורכבת כחלון קופץ של כרטיס, יכול להיות שתרצו לעקו�� אחרי שתי כתובות ה-URL ולב��וק על אחת מהן המשתמש לחץ בכרטיס.
הטמעת DisplayDelegate לטיפול באינטראקציות עם כרטיסים
אתם יכולים לרשום נציג להצגת הודעות באפליקציה, שייקרא בכל פעם שתהיה אינטראקציה עם הודעה באפליקציה. כדי לעשות זאת, מטמיעים מחלקה בהתאם לפרוטוקול InAppMessagingDisplayDelegate
ומגדירים אותה כנכס הענקת הגישה במכונה InAppMessaging
.
שוב, נניח שאתם רוצים לעקוב אחרי הקישור שבו משתמש לחץ בהודעה בסגנון כרטיס. כדי לעשות זאת, מגדירים כיתה שמטמיעה את השיטה messageClicked
בהתאם לפרוטוקול DisplayDelegate
, וכך מספקים גישה לקישור שבו המשתמש לחץ.
Swift
במאמר העזרה בנושא 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
במאמר העזרה בנושא נציג תצוגה ב-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 In-App Messaging מאפשר להפעיל הודעות באפליקציה באמצעות אירועים של Google Analytics for Firebase, ללא שילוב נוסף. אפשר גם להפעיל אירועים באופן ידני באופן פרוגרמטי באמצעות הטריגרים הפרוגרמטיים של ה-SDK של Firebase In-App Messaging.
בכלי ליצירת קמפיינים של הודעות בתוך האפליקציה, יוצרים קמפיין חדש או בוחרים קמפיין קיים. בשלב התזמון בתהליך העבודה בכלי, מציינים את מזהה האירוע של אירוע שליחת הודעות חדש או קיי��. לאחר מכן, תוכלו לצייד את האפליקציה כך שתפעיל את האירוע לפי המזהה שלו.
Swift
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");
Objective-C
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];
שימוש במטא-נתונים מותאמים אישית של קמפיינים
בקמפיינים, אפשר לציין נתונים מותאמים אישית בסדרה של צמדי מפתח/ערך. כשמשתמשים יוצרים אינטראקציה עם הודעות, הנתונים האלה זמינים לכם, למשל, כדי להציג קוד הטבה.
Swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
// Get data bundle from the inapp message
let appData = inAppMessage.appData
// ...
}
}
Objective-C
@implementation CardActionFiamDelegate
- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
appData = inAppMessage.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 שולח הודעות באופן אוטומטי לכל משתמשי האפליקציה שאתם מטרגטים בקמפיינים של הודעות. כדי לשלוח את ההודעות האלה, ה-SDK של Firebase In-App Messaging משתמש במזהי ההתקנה של Firebase כדי לזהות את האפליקציה של כל משתמש. כלומר, In-App Messaging צריך לשלוח נתוני לקוח שמקושרים למזהה ההתקנה לשרתים של Firebase. אם אתם רוצים לתת למשתמשים שליטה רבה יותר על הנתונים שהם שולחים, תוכלו להשבית את ��י��ו�� ��נתונים ��אוטומטי ולאפשר להם לאשר את שיתוף הנתונים.
כדי לעשות זאת, צריך להשבית את האינטליגנציה האוטומטית של Firebase In-App Messaging ולהפעיל את השירות באופן ידני למשתמשים שהביעו הסכמה:
משביתים את האינטוליזציה האוטומטית באמצעות מפתח חדש בקובץ
Info.plist
:- מקש:
FirebaseInAppMessagingAutomaticDataCollectionEnabled
- ערך:
NO
- מקש:
מאתחלים את Firebase In-App Messaging למשתמשים נבחרים באופן ידני:
// Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO // in Info.plist [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
אחרי שמגדירים את
automaticDataCollectionEnabled
כ-YES
, הערך נשמר גם אחרי הפעלות מחדש של האפליקציה, ומבטל את הערך ב-Info.plist
. אם רוצים להשבית שוב את האתחול, למשל אם משתמש מבטל את ההסכמה לאיסוף מאוחר יותר, מגדירים את המאפיין לערךNO
.