INFOnline Measurement pseudonymous (GZIP body)

INFOnline Measurement pseudonymous (GZIP body) (infonline/ioam-tx-body-gzip)

operated by: INFOnline GmbH (get company information on datarequests.org, go to tracker entry in the Exodus database)

Unlike Census Measurement, which works anonymously without identifiers, INFOnline Measurement pseudonymous “is designed as a pseudonymous system (with client identifiers)”. Source

According INFOnline’s own documentation, “[…] the pseudonymous INFOnline Measurement may only be loaded and executed if there is active consent from the user of [the] web page. […] The following also applies to apps: Only start the session of pseudonymous measurement if you have the user’s consent.” Source

Endpoint URLs

These are URLs or regexes of endpoints the tracker sends data to. We use these to determine which adapter to apply to a request. Some trackers use the same endpoint for several formats. In this case we use additional logic to match the adapter to the request, refer to the code for more information.
  • https://de.ioam.de/tx.io
  • https://at.iocnt.net/tx.io

Decoding steps

Every tracking library has its own way of transmitting tracking data, often even several. They are regularly pretty convoluted, nested encoding schemes. Because of that, the adapter needs to decode the request information into a consistent format. We try to keep keys and paths intact, but the structure results from our decoding. All steps used in the decoding for this adapter are documented here.
  1. Parse the request body as a query string. Store that in the variable parsedBody.
  2. Get the property at JSONPath ae in the variable parsedBody. Store that in the variable ae.
  3. Decode the variable ae as a Base64 string. Store that in the variable decodedAe.
  4. Decompress the variable decodedAe as a GZIP archive. Store that in the variable unzippedAe.
  5. Parse the variable unzippedAe as JSON. Store that in the result for the request body at ae.
  6. Get the cookie i00. Store that in the result for the cookies at i00.
1parsedBody = parseQueryString(body)
2ae = parsedBody.ae
3decodedAe = decodeBase64(ae)
4unzippedAe = gunzip(decodedAe)
5res.body.ae = parseJson(unzippedAe)
6res.cookie.i00 = cookie.i00

Observed data transmissions

This is data that we observed being transmitted by this tracker. Not every request contains all of this data. The context of the data describes where we found the data in the request, the path describes the location of the data in the decoded request. The examples are a selection of observed values.
PropertyContextPathExamples of observed values
App IDbodyae.application.packagede.mdr.smartphone.android.mdrthueringen
de.mdr.smartphone.android.mdrsachsen
de.prosiebensat1digital.seventv
com.ebay.kleinanzeigen
com.sprylab.axelspringer.tablet.welt
bodyae.application.bundleIdentifiercom.netbiscuits.kicker
de.cellular.focus
App versionbodyae.application.versionName4.1.2
5.37.2-AOS-537209140
100.0.2
6.5.2167
7.13.1
bodyae.application.versionCode2.021030401e+09
5.3720914e+08
631651
6.052167e+07
2.019008907e+09
bodyae.application.bundleVersion728
1.000005324e+09
637
Carrierbodyae.client.carrierT-Mobile
Countrybodyae.client.countryUS
Unique device IDcookiei00 More details on how we identified this property
Hashed device advertising IDbodyae.client.uuids.advertisingIdentifier More details on how we identified this propertyab9930d110c818f66934e6d39e4e7
85b03ce66f6dc8edd1ff84cda2653e
5345f17249f9454a08b121e83838552
53cc56dda0de1669b258c9edd23349
Is app in foreground?body$.ae..events[?(@.identifier == 'application' && @.state == 'enterForeground')].state Tracker documentation on this propertyenterForeground
body$.ae..events[?(@.identifier == 'application' && @.state == 'enterBackground')].state Tracker documentation on this propertyenterBackground
body$.ae..events[?(@.identifier == 'application' && @.state == 'becomeActive')].state Tracker documentation on this property
body$.ae..events[?(@.identifier == 'application' && @.state == 'resignActive')].state Tracker documentation on this property
Languagebodyae.client.languageen
Modelbodyae.client.platformGoogle,sdk_gphone_x86_64_arm64,generic_x86_64_arm64,google,ranchu,sdk_gphone_x86_64_arm64
Google,sdk_gphone_x86_64,generic_x86_64_arm64,google,ranchu,sdk_gphone_x86_64
Google,sdk_gphone_x86_64,emu64xa,google,ranchu,sdk_gphone_x86_64
OS namebodyae.client.osIdentifierandroid
OS versionbodyae.client.osVersion11
13
Screen heightbodyae.client.screen.resolution1440x2392
1080x2148
1080x2214
1080x2280
1080x1794
Screen widthbodyae.client.screen.resolution1440x2392
1080x2148
1080x2214
1080x2280
1080x1794
App start timebody$.ae..events[?(@.identifier == 'application' && @.state == 'start')].timestamp Tracker documentation on this property1.649286593782e+09
1.64967959126e+09
1.650862379049e+09
1.714155695486e+09
1.714155702776e+09
Tracker SDK versionbodyae.library.libVersion2.1.2
2.2.0
2.2.1
2.3.2
2.3.1
Viewed pagebody$.ae..events[?(@.identifier == 'view' && @.state == 'appeared')].category Tracker documentation on this propertyjoyn_dTxRcHpMqAyFz03
ebayK-9
ebayK-3-236
ebayK-7
2100,ki_menu
body$.ae..events[?(@.identifier == 'view' && @.state == 'refreshed')].category Tracker documentation on this propertyNachrichten/Politik
Nachrichten
Nachrichten/Meine_News
References