Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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)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 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.

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------(plus)---
iOS5------(plus)---
iOS6---(plus)(plus)(plus)
iOS7---(plus)---(plus)
iOS8---(plus)---

(plus)

iOS9

(plus)

(plus)

...


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.

...

Starting on iOS9, iOS apps will have to declare what URL schemes they would like to be able to check for and open in the configuration files (plist file) of the app as it is submitted to Apple.
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>**.***.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)

Starting from iOS 9.0, App Transport Security (ATS) enforces best practices in the secure connections between an app and its back end.
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>*****</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

Bitcode is a new feature on iOS 9, an intermediate representation of a compiled program. Now you have the new Kantar Media Audiences lib with Bitcode enabled for your application you have the chance to enable or disable the Bitcode service.

...