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