operated by: Google LLC (get company information on

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.

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. Decode the request body as a protocol buffer (Protobuf). Store that in the result for the request body.
  2. Wrap the result for the request body at 1 in an array if it isn’t one already. Replace the existing value.
1res.body = decodeProtobuf(body)
2res.body.1 = ensureArray(res.body.1)

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 IDbody1.*.14com.loveapplication.loveapp
App versionbody1.*.161.0
6.0.117 (
Device advertising ID (GAID/IDFA)body1.*.19827d8162-0e1c-48cd-892e-4abd3df95ba8
map[5:[8.08464432e+08 8.08464432e+08 8.08464432e+08 8.08464432e+08] 6:[48 48 48 48 48 48 48 48]]
map[5:[8.08464432e+08 8.08464432e+08 8.08464432e+08 8.08464432e+08] 6:[48 48 48 48 48 48 48 48]]
Developer-scoped device ID (IDFV/ASID/ANDROID_ID)body1.*.27B86C1463-141F-4649-B7B3-2DE67FDF6836
OS namebody1.*.8android
OS versionbody1.*.911