Log OneSignal Push Notification with Firebase Analytics Event
up vote
0
down vote
favorite
So my goal is to log event any push notification that comes up on my app. I'm using Firebase Analytics to log any event and I already know how to use it using :
Analytics.logEvent(FirebaseEventName, parameters: [:])
But is it possible to log event a push notification? I'm using OneSignal as my Push Notification service.
ios swift push-notification firebase-analytics onesignal
add a comment |
up vote
0
down vote
favorite
So my goal is to log event any push notification that comes up on my app. I'm using Firebase Analytics to log any event and I already know how to use it using :
Analytics.logEvent(FirebaseEventName, parameters: [:])
But is it possible to log event a push notification? I'm using OneSignal as my Push Notification service.
ios swift push-notification firebase-analytics onesignal
1
in your appDelegate where you receive the notification (userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler) add a logEvent to capture the data that you want.
– Alex Bailey
Nov 15 at 2:41
@AlexBailey I'll try that, I'll inform you if it works
– Gelar Aulia Prima Putra
Nov 19 at 2:41
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
So my goal is to log event any push notification that comes up on my app. I'm using Firebase Analytics to log any event and I already know how to use it using :
Analytics.logEvent(FirebaseEventName, parameters: [:])
But is it possible to log event a push notification? I'm using OneSignal as my Push Notification service.
ios swift push-notification firebase-analytics onesignal
So my goal is to log event any push notification that comes up on my app. I'm using Firebase Analytics to log any event and I already know how to use it using :
Analytics.logEvent(FirebaseEventName, parameters: [:])
But is it possible to log event a push notification? I'm using OneSignal as my Push Notification service.
ios swift push-notification firebase-analytics onesignal
ios swift push-notification firebase-analytics onesignal
asked Nov 15 at 1:55
Gelar Aulia Prima Putra
288
288
1
in your appDelegate where you receive the notification (userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler) add a logEvent to capture the data that you want.
– Alex Bailey
Nov 15 at 2:41
@AlexBailey I'll try that, I'll inform you if it works
– Gelar Aulia Prima Putra
Nov 19 at 2:41
add a comment |
1
in your appDelegate where you receive the notification (userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler) add a logEvent to capture the data that you want.
– Alex Bailey
Nov 15 at 2:41
@AlexBailey I'll try that, I'll inform you if it works
– Gelar Aulia Prima Putra
Nov 19 at 2:41
1
1
in your appDelegate where you receive the notification (userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler) add a logEvent to capture the data that you want.
– Alex Bailey
Nov 15 at 2:41
in your appDelegate where you receive the notification (userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler) add a logEvent to capture the data that you want.
– Alex Bailey
Nov 15 at 2:41
@AlexBailey I'll try that, I'll inform you if it works
– Gelar Aulia Prima Putra
Nov 19 at 2:41
@AlexBailey I'll try that, I'll inform you if it works
– Gelar Aulia Prima Putra
Nov 19 at 2:41
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
I've found my answer. But my method required Backend to be involved. Which I don't have the answer because I don't handle the Backend part. The following answer is only just for iOS part only.
So, the method is using OneSignal method, and it's implemented in
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
If you're already using OneSignal for iOS you should already write below code in didFinishLaunchingWithOptions
OneSignal.initWithLaunchOptions(launchOptions, appId: ONE_SIGNAL_APPID, handleNotificationReceived: { (notification) in
let additionalData = notification?.payload.additionalData // Get additional data such as custom flaging from backend
if additionalData != nil { // A condition to avoid crash if additionalData is empty
let customFlag:String = additionalData!["tipe"] as! String // Get value of the custom flag, in this case mine is "tipe", and store the value to customFlag
Analytics.logEvent(customFlag, parameters: [:]) // Send Log Event to Firebase
}
}, handleNotificationAction: { (result) in
}, settings: [kOSSettingsKeyInFocusDisplayOption: OSNotificationDisplayType.none.rawValue,kOSSettingsKeyAutoPrompt : true])
For example, if you print additionalData the value should be looking like
[AnyHashable("tipe"): inbox]
And this value is set/declared in Backend part.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
I've found my answer. But my method required Backend to be involved. Which I don't have the answer because I don't handle the Backend part. The following answer is only just for iOS part only.
So, the method is using OneSignal method, and it's implemented in
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
If you're already using OneSignal for iOS you should already write below code in didFinishLaunchingWithOptions
OneSignal.initWithLaunchOptions(launchOptions, appId: ONE_SIGNAL_APPID, handleNotificationReceived: { (notification) in
let additionalData = notification?.payload.additionalData // Get additional data such as custom flaging from backend
if additionalData != nil { // A condition to avoid crash if additionalData is empty
let customFlag:String = additionalData!["tipe"] as! String // Get value of the custom flag, in this case mine is "tipe", and store the value to customFlag
Analytics.logEvent(customFlag, parameters: [:]) // Send Log Event to Firebase
}
}, handleNotificationAction: { (result) in
}, settings: [kOSSettingsKeyInFocusDisplayOption: OSNotificationDisplayType.none.rawValue,kOSSettingsKeyAutoPrompt : true])
For example, if you print additionalData the value should be looking like
[AnyHashable("tipe"): inbox]
And this value is set/declared in Backend part.
add a comment |
up vote
1
down vote
accepted
I've found my answer. But my method required Backend to be involved. Which I don't have the answer because I don't handle the Backend part. The following answer is only just for iOS part only.
So, the method is using OneSignal method, and it's implemented in
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
If you're already using OneSignal for iOS you should already write below code in didFinishLaunchingWithOptions
OneSignal.initWithLaunchOptions(launchOptions, appId: ONE_SIGNAL_APPID, handleNotificationReceived: { (notification) in
let additionalData = notification?.payload.additionalData // Get additional data such as custom flaging from backend
if additionalData != nil { // A condition to avoid crash if additionalData is empty
let customFlag:String = additionalData!["tipe"] as! String // Get value of the custom flag, in this case mine is "tipe", and store the value to customFlag
Analytics.logEvent(customFlag, parameters: [:]) // Send Log Event to Firebase
}
}, handleNotificationAction: { (result) in
}, settings: [kOSSettingsKeyInFocusDisplayOption: OSNotificationDisplayType.none.rawValue,kOSSettingsKeyAutoPrompt : true])
For example, if you print additionalData the value should be looking like
[AnyHashable("tipe"): inbox]
And this value is set/declared in Backend part.
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
I've found my answer. But my method required Backend to be involved. Which I don't have the answer because I don't handle the Backend part. The following answer is only just for iOS part only.
So, the method is using OneSignal method, and it's implemented in
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
If you're already using OneSignal for iOS you should already write below code in didFinishLaunchingWithOptions
OneSignal.initWithLaunchOptions(launchOptions, appId: ONE_SIGNAL_APPID, handleNotificationReceived: { (notification) in
let additionalData = notification?.payload.additionalData // Get additional data such as custom flaging from backend
if additionalData != nil { // A condition to avoid crash if additionalData is empty
let customFlag:String = additionalData!["tipe"] as! String // Get value of the custom flag, in this case mine is "tipe", and store the value to customFlag
Analytics.logEvent(customFlag, parameters: [:]) // Send Log Event to Firebase
}
}, handleNotificationAction: { (result) in
}, settings: [kOSSettingsKeyInFocusDisplayOption: OSNotificationDisplayType.none.rawValue,kOSSettingsKeyAutoPrompt : true])
For example, if you print additionalData the value should be looking like
[AnyHashable("tipe"): inbox]
And this value is set/declared in Backend part.
I've found my answer. But my method required Backend to be involved. Which I don't have the answer because I don't handle the Backend part. The following answer is only just for iOS part only.
So, the method is using OneSignal method, and it's implemented in
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
If you're already using OneSignal for iOS you should already write below code in didFinishLaunchingWithOptions
OneSignal.initWithLaunchOptions(launchOptions, appId: ONE_SIGNAL_APPID, handleNotificationReceived: { (notification) in
let additionalData = notification?.payload.additionalData // Get additional data such as custom flaging from backend
if additionalData != nil { // A condition to avoid crash if additionalData is empty
let customFlag:String = additionalData!["tipe"] as! String // Get value of the custom flag, in this case mine is "tipe", and store the value to customFlag
Analytics.logEvent(customFlag, parameters: [:]) // Send Log Event to Firebase
}
}, handleNotificationAction: { (result) in
}, settings: [kOSSettingsKeyInFocusDisplayOption: OSNotificationDisplayType.none.rawValue,kOSSettingsKeyAutoPrompt : true])
For example, if you print additionalData the value should be looking like
[AnyHashable("tipe"): inbox]
And this value is set/declared in Backend part.
answered Nov 29 at 6:18
Gelar Aulia Prima Putra
288
288
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311337%2flog-onesignal-push-notification-with-firebase-analytics-event%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
in your appDelegate where you receive the notification (userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler) add a logEvent to capture the data that you want.
– Alex Bailey
Nov 15 at 2:41
@AlexBailey I'll try that, I'll inform you if it works
– Gelar Aulia Prima Putra
Nov 19 at 2:41