Push data to JENTIS
Before you start, the JENTIS App SDK uses the same approach as the web data layer. We recommend reading the Set Up JENTIS Data Layerarticle 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:
app_device_id
Unique device identifier UUID of the device
A1B2C3D4-5678-90AB-CDEF-1234567890AB
app_device_brand
The brand of the device
Apple
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:
app_device_id
Unique device identifier UUID of the device
A1B2C3D4-5678-90AB-CDEF-1234567890AB
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:
val pageViewData = listOf(
mapOf(
"track" to "pageview",
"url" to "https://www.demoapp.com",#
"title" to "Demo-APP Pagetitle"
)
)
JentisTrackService.getInstance().push(pageViewData)
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()
Android Custom Event - complete registration:
JentisTrackService.getInstance().push(mapOf(
"track" to "complete-registration",
"registration_method" to "email"
))
JentisTrackService.getInstance().submit()
iOS Custom Event - complete registration:
TrackingService.shared.push([
"track": "complete-registration"",
"registration_method": "email"
])
TrackingService.shared.submit()
Last updated
Was this helpful?