Google Analytics 4 (GA4) is the primary analytics platform for NX Mobile. During set up, we configure all NX Mobile apps to send events to GA4 through Firebase. From the app, events are sent to Firebase which are then forwarded to GA4 as data streams. Each GA4 property holds one mobile app and one website. One of the benefits of GA4 is both web and app data can flow into one location and be consolidated.
Below are instructions on how to reconfigure your Firebase account to GA4 or look at the property where the app data streams are flowing to.
The GA4 events are a combination of defined events by BLOX Digital and automatic events collected by Google as part of the implementation of GA4 in the mobile app. We have provided a list of events and what triggers the event to fire. The automatic events are denoted to indicate we have very little control over the parameters sent. Please note this list will be updated with new events as updates are released.
UUID and PPID
Upon launch of the app, a unique identifier (PPID) will be created. For every firebase event, this PPID will be added under the “user_ppid” parameter. When a user logs in their subscribe state and BLOX user id will also be added to each firebase event going forward. The subscriber state will have the parameter “user_subscription” and will be set to true or false. The user id will have the parameter “user_uuid” and be passed as a string.
Screen Views
Event
Parameters
Version Requirement
Subsection page appears
Screen Name: Subsection title
200.00
Subsection asset feed, pull to refresh
Screen Name: Subsection title
200.00
Subsection selected from slider
Screen Name: Topic (subsection title)
200.00
Article or photo collection page appears
Screen Name: Asset Title
asset_guid: asset id/uuid
asset_keywords: asset keywords
asset_flags: asset’s flags
asset_section_path: asset section
content: Referrer
author.eh: Author’s email encoded with SHA-256 hash
author.first_name: Author’s first name (empty if not available)
author.last_name: Author’s last name (empty if not available)
Multimedia events will send the same parameters regardless of the event. The parameters will be prepended with “audio” or “video” depending on the event type. For some events, parameters will be hardcoded while others will pull from the current state of the player.
Event Trigger
Event Name
Parameters
Version Requirement
Video progressed 25%, 50%, 75%
video_progress
video_current_time: player current time
video_uuid: asset id/uuid
video_duration: asset total playtime
video_percent: 25, 50, 75
video_provider: BLOX or field59, depending on provider
video_title: asset title
video_url: asset url
visible: YES
200.00
Audio started
audio_start
audio_current_time: 0
audio_uuid: asset id/uuid
audio_duration: asset total playtime
audio_percent: 0
audio_provider: BLOX
audio_title: asset title
audio_url: asset url
visible: YES
200.00
Audio progressed 25%, 50%, 75%
audio_progress
audio_current_time: player current time
audio_uuid: asset id/uuid
audio_duration: asset total playtime
audio_percent: 25, 50, 75
audio_provider: BLOX
audio_title: asset title
audio_url: asset url
visible: YES
200.00
Audio finished
audio_complete
audio_current_time: asset total playtime
audio_uuid: asset id/uuid
audio_duration: asset total playtime
audio_percent: 100
audio_provider: BLOX
audio_title: asset title
audio_url: asset url
visible: YES
200.00
Paywall and user state
Event Trigger
Event Name
Parameters
Version Requirement
User logins into the app
login
method: "app"
location: The location where the user has logged in.
Possible value: "profile", "paywall", "onboarding"
210.0
User does not have an account and registers for a new one
sign_up
method: "app"
location: The location where the user has logged in.
Possible value: "profile", "paywall", "onboarding"
210.0
Subscription and shopping cart
If you are using in-app purchase within BLOX NX Mobile, the user will go through a standard shopping cart experience. First they will be shown offers (set up and configured within the App Stores and AppMan), then one of these offers will be added to the “shopping cart”, finally they will either complete the transaction or abandon the cart. Each step of this process will be logged with one of the following events. (Please note these events and parameters are official from GA4)
Each event will have an items parameter. This is an array containing all of the products being used at the moment of the event. For the latter three events, items will be filled with the user's selected iAP offer. The chart below shows the information provided about each product in the items parameter. The following chart will show the shopping cart events.
Parameter name
Type
Example
index
number
1 (Use position within offer page)
item_id
string
1monthsubscription (Use App Store identifier)
item_name
string
1 Month Subscription (Use App Store name)
item_brand
string
Apple or Google (hardcoded)
item_category
string
iAP (hardcoded)
item_list_id
string
1
item_list_name
string
Native paywall
price
number
$9.99
quantity
number
1 (hardcoded)
Event trigger
Event name
Parameters
Version requirement
User views the offer page
view_item_list
item_list_id:
item_list_name
items: Array of “products”
210.00
User clicks an offer and the payment prompt appears
add_to_cart
currency: ex: USD
value: value of iAP
items: Array of “products” (will always be 1, the selected one)
210.00
User clicks “Cancel” on the payment prompt
remove_from_cart
currency: ex: USD
value: value of iAP
items: Array of “products” (will always be 1, the selected one)
210.00
User completes the iAP payment purchase
purchase
currency: ex: USD
transaction_id: Original transaction ID
value: value of iAP
coupon: promo code
items: Array of “products” (will always be 1, the selected one)
210.00
Push notifications and messaging
Mobile NX GA4 - Push notifications and messaging
Event Trigger
Condition
Event Name
Parameters
Version Requirement
User responds to notification permissions prompt (allow)
notification_user_opt_in
None
200.0
User responds to notification permissions prompt (do not allow)
When a user opens a notification (foreground or background)
app_notification_open
notification_message_name: Push notification title; asset_id: BLOX asset ID; device_time: Time the push notification was opened (UTC) - ex: 2024/11/26 11:29:35; notification_message_id: FCM push ID
214.0 Android / 215.0 iOS
When a notification received while the app is in the foreground
app_notification_foreground
notification_message_name: Push notification title; asset_id: BLOX asset ID; device_time: Time the push notification was opened (UTC) - ex: 2024/11/26 11:29:35; notification_message_id: FCM push ID
214.0 Android / 215.0 iOS
When a user dismisses a notification while the app is in the foreground
app_notification_foreground_dismiss
notification_message_name: Push notification title; asset_id: BLOX asset ID; device_time: Time the push notification was opened (UTC) - ex: 2024/11/26 11:29:35; notification_message_id: FCM push ID
214.0 Android / 215.0 iOS
Mobile NX GA4 - Push notifications and messaging (NOT recommended)
* denotes automatic events collected by Firebase/GA4. By default Firebase/Google Analytics 4 provides automatic events for notifications. Due to how BLOX Mobile NX sends push notifications, these automatic events are being sent with less information than intended making them all but useless for tracking push notifications.
Apps updated on version 1.11.0 / 215.0 and beyond will have custom events to provide more visibility into which notifications are being acted upon. Please note the default analytics will continue to be sent as they are part of the SDK.
Event Trigger
Condition
Event Name
Parameters
Version Requirement
User opens notification (foreground or triggers the app to open banner) *
* denotes automatic events collected by Firebase/GA4. By default Firebase/Google Analytics 4 provides automatic events for notifications. Due to how BLOX Mobile NX sends push notifications, these automatic events are being sent with less information than intended making them all but useless for tracking push notifications.
Event Trigger
Condition
Event Name
Parameters
Version Requirement
when a user takes action on a Firebase In-App Message *
firebase_in_app_message_action
message_name; message_device_time; message_id
204.0
when a user dismisses a Firebase In-App Message *
firebase_in_app_message_dismiss
message_name; message_device_time; message_id
204.0
when a user sees a Firebase In-App Message *
firebase_in_app_message_impression
message_name; message_device_time; message_id
204.0
Features
Event Trigger
Event Name
Parameters
Version Requirement
Engagement prompt appears
prompt_appeared
type: review, upgrade
prompt_id: prompt_id set in AppMan
is_subscriber: true or false depending on subscriber status
version_number: app’s version number (only for upgrade prompt)
208.00
Engagement prompt dismissed
prompt_dismissed
type: review, upgrade
prompt_id: prompt_id set in AppMan
was_ignored: true or false depending on if they hit “No, thanks”
is_subscriber: true or false depending on subscriber status
sentiment: true or false depending on the response from initial prompt
208.00
Engagement prompt completed
prompt_completed
type: review, upgrade
prompt_id: prompt_id set in AppMan
was_ignored: true or false depending on if they hit “No, thanks”
is_subscriber: true or false depending on subscriber status
sentiment: true or false depending on the response from initial prompt
208.00
Engagement prompt initialized
prompt_initialized
type: review, upgrade
prompt_id: prompt_id set in AppMan
is_subscriber: true or false depending on subscriber status
sentiment: true or false depending on the response from initial prompt
213.0
The initial onboarding prompt appears (new install or first time update to NX Mobile)
tutorial_begin
None
210.0
The final onboarding prompt completes and user is moved to the asset feed (new install or first time update to NX Mobile)
tutorial_complete
None
210.0
User makes a selection on the onboarding prompt
onboarding_prompt
success
prompt_id: integer
0 - Sign up/Login
1 - Notification
2 - Select Topics
3 - Enable weather
4 - Reader experience
210.0
Reader adds new topic to favorite topics from app on select topics page
for_you_add_topic
topic_id: Topic ID
topic_name: Topic name
210.0
Reader removes new topic to favorite topics from app on select topics page
for_you_remove_topic
topic_id: Topic ID
topic_name: Topic name
210.0
Reader selects favorite section
slider_add_section
section_name: Section name
210.0
Reader removes favorite section (section must have been previous favorited)
slider_remove_section
section_name: Section name
210.0
Reader turns on/off section slider
slider_appearance
appearance: integer
0 - off
1 - on
210.0
Reader sets reading preference (on save)
reading_preference
preference: string
“eedition”
“news_feed”
210.0
Reader saves an asset for later
asset_list_save
asset_id: Asset ID
asset_name: Asset name
210.0
Reader unsaved an asset
asset_list_remove
asset_id: Asset ID
asset_name: Asset name
210.0
Trinity audio paused (Available only on iOS)
trinity_audio_paused
audio_current_time: player current time
audio_uuid: Article’s UUID
audio_duration: Trinity audio playback total duration
audio_percent: current percentage completed
audio_title: Article’s title
audio_url: Article’s URL
visible: YES
210.0
Trinity audio completed (Available only on iOS)
trinity_audio_completed
audio_current_time: Trinity audio playback total duration
audio_uuid: Article’s UUID
audio_duration: Trinity audio playback total duration
audio_percent: 100
audio_title: Article’s title
audio_url: Article’s URL
visible: YES
210.0
Trinity audio progress (25%, 50%, 75%) (Available only on iOS)
trinity_audio_progress
audio_current_time: player current time
audio_uuid: Article’s UUID
audio_duration: Trinity audio playback total duration
audio_percent: 25, 50, 75
audio_title: Article’s title
audio_url: Article’s URL
visible: YES
210.0
Lifecycle
Please note “*” denotes automatic events collected by Firebase/GA4.
Event Trigger
Event Name
Parameters
Version Requirement
The first time a user launches an app after installing or re-installing it (App must open) *