Offline-Mode
For Android and iOS version, springKantar Media Audiences-lib has a feature the so-called "offlineMode". This mode can be switched on and off by using public API: setOfflineMode (boolean offlineMode)KMA_SpringStreams.offlineMode.
If the lib is configured to offlineMode,
...
KMA_SpringStreams library will hold all requests in a local buffer and send them when the device goes back online.
...
KMA_SpringStreams lib checks the
...
internet connection regularly by using the
...
iOS Timer and
...
send the data as soon as possible.
Please notice:
- Old requests will be dropped if too many requests pump into local buffer for the limitation in buffer size.
- The default buffer size is 500. (Note: in case of streaming requests only the last request of a singular streaming sequence is stored, in other words it allows for 500 views to be stored)
- The data will be stored in a local file, so the lib will not lose the requests even if the application terminates
- the springKantar Media Audiences-lib tries to send the requests in a fixed rate, 10 seconds by default, and sends them if device is online again
iOS
Identifiers on iOS
...
How the library acts when offline-mode is enabled:
- The device will keep trying to empty the ring buffer by attempting to send requests to the measuring system.
- When there is a connection, the requests seamlessly pass through the ring buffer.
- When there is no connection, the requests will be retained indefinitely.
For more information, check the chapter about offline-mode below.
iOS Identifiers
Device ID (did) | Advertising ID (ai) | Mac ID (mid) | ID_For_Vendor (ifv) | |
---|---|---|---|---|
iOS4 | --- | --- | --- | |
iOS5 | --- | --- | --- | |
iOS6 | --- | |||
iOS7 | --- | --- | ||
iOS8 | --- | --- | ||
iOS9 | — | — |
...
Considering that the Apple private policy is changing all the time, Spring Kantar Media Audiences libs have to adapt different UDIDs for identifying the end user's devices.
...
Note |
---|
Please attention: |
Migration to iOS9
URL Scheme White-listing
So if your application is combining with a specific "Panel App" (e.g. Virtualmeter App), please register the URL scheme in your application, the syntax is as following:
Code Block |
---|
<key>LSApplicationQueriesSchemes</key> <array> <string>XX.XXX<string>**.***.ipm</string> //please change **.*** to the parameters given in your <string>XXXXXPanelApp</string> </array> |
library delivery
<string>*****PanelApp</string> //please change ***** to the parameters given in your library delivery
</array> |
App Transport Security (ATS)
Migrating from "http" to "https" has to be planed for the more secure communication.
However for this moment, if you decide to enable ATS, a temporary solution can be adapted by adding an exception for Kantar Media Audiences measurement box:
Code Block |
---|
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <false/> <key>NSExceptionDomains</key> <dict> <key>XXXXXXXXX</key> <key>*****</key> //please change ***** to the parameters given in your library delivery <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> </dict> </dict> </dict> |
Note |
---|
if ATS is not enabled in your application, as NSAllowsArbitraryLoads = true, then you don't need to modify anything. |
Bitcode
BitCodeAndroid Identifier
Google Advertising ID
Beginning with Spring Kantar Media Audiences lib 1.6.0, GoogleAdvertisingID is adapted to identify the android devices.
In order to achieve this, please import google-play-services_lib to your application.
Follow the tutorial detailed info: http://developer.android.com/google/play-services/setup.html
- Install the Google Play Services SDK.
- Import the project into your application.
Don't forget to add following items into your project AndroidManifest.xml file:
Code Block <meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"
/>