App Tracking: Push data to JENTIS
Before you start, the JENTIS App SDK uses the same approach as the web data layer. We recommend reading the JENTIS Data Layer—Data Model Reference article to better understand this documentation.
This article explains how to push data from your app to JENTIS using the App SDK. Expertise in app development will be needed for this.
General
In the JENTIS App SDK, we follow a push call stack approach. When the submit()
function is called, the necessary information is included in the Data Submission Request sent to JENTIS, and the JENTIS SDK call stack is reset.
Track Push Events
iOS Implementation:
Track custom events with the push
method. Events will be stored but not sent to the server:
TrackingService.shared.push([
"track": "pageview",
"title": "Home Page",
"url": "https://example.com"
])
Android Implementation:
To track custom events, use the addToPush
method. Events will be stored locally and not sent to the server until the submission method is called:
JentisTrackService.getInstance().push()
Submitting Data
When the submit
function is called in the mobile environment, the data is transmitted to JENTIS and flagged with the status 'JENTIS Datalayer SENT', indicating successful submission.
iOS Implementation:
To submit stored events, you need to call the submit
method. All events will be sent to the server and the local and deleted from the local queue:
try await TrackingService.shared.submit()
Android Implementation:
To submit stored events, you need to call the submitPushing
method. All events will be sent to the server and the local and deleted from the local queue:
JentisTrackService.getInstance().submit()
Default Tracking
This data is added by default to every request by the JENTIS App SDK when the submit()
function is executed.
iOS Implementation:
Key | Description | Example Value(s) |
---|---|---|
app_device_id | Unique device identifier UUID of the device |
|
app_device_brand | The brand of the device | Apple |
app_device_model | The device model | iPhone14,5 (for iPhone 13, see Lookup table for more Information) |
app_device_os | The device operating system | iOS |
app_device_os_version | The device OS version | 15.0, 13.1 |
app_device_language | The device language | de, en |
app_device_region | The device region specified in the device settings (not the current location) | US |
app_device_width | The screen width of the device | 390 |
app_device_height | The screen height of the device | 844 |
app_device_carrier | The network carrier name of the device | Verizon, AT&T |
app_device_network_type | The type of network connection | Wi-Fi, Cellular |
app_application_name | The name of the application | ExampleApp |
app_application_version | The app version | 1.0, 2.1 |
app_application_build_number | The app build number | 1, 2, 3 |
Android Implementation:
Key | Description | Example Value(s) |
---|---|---|
app_device_id | Unique device identifier UUID of the device |
|
app_device_brand | The brand of the device | Samsung |
app_device_model | The device model | Galaxy S21 |
app_device_os | The device operating system | Android |
app_device_os_version | The device OS version | 12, 11 |
app_device_language | The device language | en |
app_device_region | US | |
app_device_width | The screen width of the device | 1080 |
app_device_height | The screen height of the device | 2340 |
app_device_carrier | The network carrier name of the device | Verizon, AT&T |
app_device_network_type | The type of network connection | Wi-Fi, Cellular |
app_application_name | The name of the application | JentisAppExample |
app_application_version | The app version | 1.0.12 |
app_application_build_number | The app build number | 1 |
Tracking Examples
iOS Pageview:
TrackingService.shared.push([
"track": "pageview",
"pagetitle": "Demo-APP Pagetitle",
"url": "https://www.demoapp.com"
])
TrackingService.shared.submit()
Android Pageview:
JentisTrackService.getInstance().push(mapOf(
"track" to "pageview",
"url" to "https://www.demoapp.com",
"title" to "Demo-APP Pagetitle"
))
JentisTrackService.getInstance().submit()
iOS Productview:
TrackingService.shared.push([
"track": "pageview",
"pagetitle": "Demo-APP Productview"
])
TrackingService.shared.push([
"track": "product",
"type": "productview",
"id": "123",
"name": "Testproduct",
"brutto": 199.99
])
TrackingService.shared.push([
"track": "productview"
])
TrackingService.shared.submit()
Android Productview:
JentisTrackService.getInstance().push(mapOf(
"track" to "pageview",
"pagetitle" to "Demo-APP Productview"
))
JentisTrackService.getInstance().push(mapOf(
"track" to "product",
"type" to "productview",
"id" to "123",
"name" to "Testproduct",
"brutto" to 199.99
))
JentisTrackService.getInstance().push(mapOf(
"track" to "productview"
))
JentisTrackService.getInstance().submit()
iOS Add-to-Cart:
TrackingService.shared.push([
"track": "product",
"type": "addtocart",
"id": "123",
"name": "Testproduct",
"brutto": 199.99
])
TrackingService.shared.push([
"track": "addtocart"
])
TrackingService.shared.submit()
Android Add-to-Cart:
JentisTrackService.getInstance().push(mapOf(
"track" to "product",
"type" to "addtocart",
"id" to "123",
"name" to "Testproduct",
"brutto" to 199.99
))
JentisTrackService.getInstance().push(mapOf(
"track" to "addtocart"
))
JentisTrackService.getInstance().submit()
iOS Order / Purchase:
TrackingService.shared.push([
"track": "pageview",
"pagetitle": "Demo-APP Order Confirmed"
])
TrackingService.shared.push([
"track": "product",
"type": "order",
"id": "123",
"name": "Testproduct",
"brutto": 199.99
])
TrackingService.shared.push([
"track": "product",
"type": "order",
"id": "456",
"name": "Testproduct 2",
"brutto": 299.99
])
TrackingService.shared.push([
"track": "order",
"orderid": "12345666",
"brutto": 499.98,
"paytype": "creditcard"
])
TrackingService.shared.submit()
Android Order / Purchase:
JentisTrackService.getInstance().push(mapOf(
"track" to "pageview",
"pagetitle" to "Demo-APP Order Confirmed"
))
JentisTrackService.getInstance().push(mapOf(
"track" to "product",
"type" to "order",
"id" to "123",
"name" to "Testproduct",
"brutto" to 199.99
))
JentisTrackService.getInstance().push(mapOf(
"track" to "product",
"type" to "order",
"id" to "456",
"name" to "Testproduct 2",
"brutto" to 299.99
))
JentisTrackService.getInstance().push(mapOf(
"track" to "order",
"orderid" to "12345666",
"brutto" to 499.98,
"paytype" to "creditcart"
))
JentisTrackService.getInstance().submit()
Read next
App Tracking: Using your app data in the JENTIS Platform
If you have any questions or suggestions, contact us through our Helpdesk.