Offline-Mode
For Android and iOS version, Kantar 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)
If the lib is configured to offlineMode, Kantar Media Audiences library will hold all requests in a local buffer and send them when the device goes back online.
The Kantar Media Audiences-lib checks the Internet connection regularly by using the Android/iOS Timer and sends 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)
- The data will be stored in a local file, so the lib will not lose the requests even if the application terminates
- the Kantar Media Audiences-lib tries to send the requests in a fixed rate, 10 seconds by default, and sends them if device is online again
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.
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, Kantar Media Audiences libs have to adapt different UDIDs for identifying the end user's devices.
- Since iOS7 the Mac ID is not available anymore,
- Since iOS7 introducing of Advertising ID and ID_For_Vendor
Please attention:
Apple will reject all the applications which retrieve Advertising ID (ai) but with no advertising content provided.
So Advertising-Framework is linked as optional in Kantar Media Audiences lib,
If the Advertising ID should be used as udid, please import Advertising-Framework into your projects.
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:
<key>LSApplicationQueriesSchemes</key> <array> <string>**.***.ipm</string> //please change **.*** to the parameters given in your 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:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <false/> <key>NSExceptionDomains</key> <dict> <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>
Bitcode
Android Identifier
Google Advertising ID
Beginning with 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:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />