GoogleDataTransport (FireLog BatchedLogRequest, JSON)

GoogleDataTransport (FireLog BatchedLogRequest, JSON) (google/googledatatransport-firelog-batchlog-json)

operated by: Google LLC (get company information on datarequests.org)
The GoogleDataTransport SDK is a transport layer used internally by many other Firebase (e.g. Crashlytics, Performance, Core) Google (e.g. ML Kit) SDKs and services. Source It batches application-specific data from within an app to Google, using a common endpoint regardless of the actual SDK that was integrated by the app developer. 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://firebaselogging-pa.googleapis.com/v1/firelog/legacy/batchlog
  • https://crashlyticsreports-pa.googleapis.com/v1/firelog/legacy/batchlog
  • https://firebaselogging.googleapis.com/v0cc/log/batch

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 JSON. Store that in the result for the request body.
  2. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREPERF')].sourceExtension in the result for the request body. Store that in the variable logEvents_FIREPERF_base64.
  3. Decode every element in the variable logEvents_FIREPERF_base64 as a Base64 string. Store that in the variable logEvents_FIREPERF_protobuf.
  4. Decode every element in the variable logEvents_FIREPERF_protobuf as a protocol buffer (Protobuf). Store that in the result for the request body at logEvents_FIREPERF.
  5. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'GDT_CLIENT_METRICS')].sourceExtension in the result for the request body. Store that in the variable logEvents_GDT_CLIENT_METRICS_base64.
  6. Decode every element in the variable logEvents_GDT_CLIENT_METRICS_base64 as a Base64 string. Store that in the variable logEvents_GDT_CLIENT_METRICS_protobuf.
  7. Decode every element in the variable logEvents_GDT_CLIENT_METRICS_protobuf as a protocol buffer (Protobuf). Store that in the result for the request body at logEvents_GDT_CLIENT_METRICS.
  8. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_INAPPMESSAGING')].sourceExtension in the result for the request body. Store that in the variable logEvents_FIREBASE_INAPPMESSAGING_base64.
  9. Decode every element in the variable logEvents_FIREBASE_INAPPMESSAGING_base64 as a Base64 string. Store that in the variable logEvents_FIREBASE_INAPPMESSAGING_protobuf.
  10. Decode every element in the variable logEvents_FIREBASE_INAPPMESSAGING_protobuf as a protocol buffer (Protobuf). Store that in the result for the request body at logEvents_FIREBASE_INAPPMESSAGING.
  11. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'PLAY_BILLING_LIBRARY')].sourceExtension in the result for the request body. Store that in the variable logEvents_PLAY_BILLING_LIBRARY_base64.
  12. Decode every element in the variable logEvents_PLAY_BILLING_LIBRARY_base64 as a Base64 string. Store that in the variable logEvents_PLAY_BILLING_LIBRARY_protobuf.
  13. Decode every element in the variable logEvents_PLAY_BILLING_LIBRARY_protobuf as a protocol buffer (Protobuf). Store that in the result for the request body at logEvents_PLAY_BILLING_LIBRARY.
  14. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_ML_SDK')].sourceExtension in the result for the request body. Store that in the variable logEvents_FIREBASE_ML_SDK_base64.
  15. Decode every element in the variable logEvents_FIREBASE_ML_SDK_base64 as a Base64 string. Store that in the variable logEvents_FIREBASE_ML_SDK_protobuf.
  16. Decode every element in the variable logEvents_FIREBASE_ML_SDK_protobuf as a protocol buffer (Protobuf). Store that in the result for the request body at logEvents_FIREBASE_ML_SDK.
  17. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'CAST_SENDER_SDK')].sourceExtension in the result for the request body. Store that in the variable logEvents_CAST_SENDER_SDK_base64.
  18. Decode every element in the variable logEvents_CAST_SENDER_SDK_base64 as a Base64 string. Store that in the variable logEvents_CAST_SENDER_SDK_protobuf.
  19. Decode every element in the variable logEvents_CAST_SENDER_SDK_protobuf as a protocol buffer (Protobuf). Store that in the result for the request body at logEvents_CAST_SENDER_SDK.
  20. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'LE')].sourceExtension in the result for the request body. Store that in the variable logEvents_LE_base64.
  21. Decode every element in the variable logEvents_LE_base64 as a Base64 string. Store that in the variable logEvents_LE_protobuf.
  22. Decode every element in the variable logEvents_LE_protobuf as a protocol buffer (Protobuf). Store that in the result for the request body at logEvents_LE.
  23. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_CRASHLYTICS_REPORT')].sourceExtensionJsonProto3 in the result for the request body. Store that in the variable logEvents_FIREBASE_CRASHLYTICS_REPORT_json.
  24. Parse every element in the variable logEvents_FIREBASE_CRASHLYTICS_REPORT_json as JSON. Store that in the result for the request body at logEvents_FIREBASE_CRASHLYTICS_REPORT.
  25. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_APPQUALITY_SESSION')].sourceExtensionJsonProto3 in the result for the request body. Store that in the variable logEvents_FIREBASE_APPQUALITY_SESSION_json.
  26. Parse every element in the variable logEvents_FIREBASE_APPQUALITY_SESSION_json as JSON. Store that in the result for the request body at logEvents_FIREBASE_APPQUALITY_SESSION.
  27. Get the property at JSONPath $.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_ML_LOG_SDK')].sourceExtensionJsonProto3 in the result for the request body. Store that in the variable logEvents_FIREBASE_ML_LOG_SDK_json.
  28. Parse every element in the variable logEvents_FIREBASE_ML_LOG_SDK_json as JSON. Store that in the result for the request body at logEvents_FIREBASE_ML_LOG_SDK.
 1res.body = parseJson(body)
 2logEvents_FIREPERF_base64 = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREPERF')].sourceExtension
 3logEvents_FIREPERF_protobuf = decodeBase64.map(logEvents_FIREPERF_base64)
 4res.body.logEvents_FIREPERF = decodeProtobuf.map(logEvents_FIREPERF_protobuf)
 5logEvents_GDT_CLIENT_METRICS_base64 = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'GDT_CLIENT_METRICS')].sourceExtension
 6logEvents_GDT_CLIENT_METRICS_protobuf = decodeBase64.map(logEvents_GDT_CLIENT_METRICS_base64)
 7res.body.logEvents_GDT_CLIENT_METRICS = decodeProtobuf.map(logEvents_GDT_CLIENT_METRICS_protobuf)
 8logEvents_FIREBASE_INAPPMESSAGING_base64 = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_INAPPMESSAGING')].sourceExtension
 9logEvents_FIREBASE_INAPPMESSAGING_protobuf = decodeBase64.map(logEvents_FIREBASE_INAPPMESSAGING_base64)
10res.body.logEvents_FIREBASE_INAPPMESSAGING = decodeProtobuf.map(logEvents_FIREBASE_INAPPMESSAGING_protobuf)
11logEvents_PLAY_BILLING_LIBRARY_base64 = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'PLAY_BILLING_LIBRARY')].sourceExtension
12logEvents_PLAY_BILLING_LIBRARY_protobuf = decodeBase64.map(logEvents_PLAY_BILLING_LIBRARY_base64)
13res.body.logEvents_PLAY_BILLING_LIBRARY = decodeProtobuf.map(logEvents_PLAY_BILLING_LIBRARY_protobuf)
14logEvents_FIREBASE_ML_SDK_base64 = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_ML_SDK')].sourceExtension
15logEvents_FIREBASE_ML_SDK_protobuf = decodeBase64.map(logEvents_FIREBASE_ML_SDK_base64)
16res.body.logEvents_FIREBASE_ML_SDK = decodeProtobuf.map(logEvents_FIREBASE_ML_SDK_protobuf)
17logEvents_CAST_SENDER_SDK_base64 = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'CAST_SENDER_SDK')].sourceExtension
18logEvents_CAST_SENDER_SDK_protobuf = decodeBase64.map(logEvents_CAST_SENDER_SDK_base64)
19res.body.logEvents_CAST_SENDER_SDK = decodeProtobuf.map(logEvents_CAST_SENDER_SDK_protobuf)
20logEvents_LE_base64 = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'LE')].sourceExtension
21logEvents_LE_protobuf = decodeBase64.map(logEvents_LE_base64)
22res.body.logEvents_LE = decodeProtobuf.map(logEvents_LE_protobuf)
23logEvents_FIREBASE_CRASHLYTICS_REPORT_json = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_CRASHLYTICS_REPORT')].sourceExtensionJsonProto3
24res.body.logEvents_FIREBASE_CRASHLYTICS_REPORT = parseJson.map(logEvents_FIREBASE_CRASHLYTICS_REPORT_json)
25logEvents_FIREBASE_APPQUALITY_SESSION_json = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_APPQUALITY_SESSION')].sourceExtensionJsonProto3
26res.body.logEvents_FIREBASE_APPQUALITY_SESSION = parseJson.map(logEvents_FIREBASE_APPQUALITY_SESSION_json)
27logEvents_FIREBASE_ML_LOG_SDK_json = res.body.$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_ML_LOG_SDK')].sourceExtensionJsonProto3
28res.body.logEvents_FIREBASE_ML_LOG_SDK = parseJson.map(logEvents_FIREBASE_ML_LOG_SDK_json)

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 IDbodylogEvents_FIREPERF.*.1.3.1 Tracker documentation on this propertycom.expedia.bookings
com.turkishairlines.mobile
kr.co.alba.webappalba.m
com.rewedigital.shop
com.sheypoor.mobile
bodylogEvents_GDT_CLIENT_METRICS.*.4 Tracker documentation on this propertyde.avm.android.fritzapp
com.realbyteapps.moneymanagerfree
com.hellofresh.androidapp
de.spiegel.android.app.spon
com.joytunes.simplypiano
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.app.identifiercom.askfm
com.babbel.mobile.android.en
de.payback.client.android
com.kvadgroup.photostudio
de.falkemedia.zaubertopfappandroid
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.androidAppInfo.appId Tracker documentation on this property
bodylogEvents_PLAY_BILLING_LIBRARY.*.1.2de.bild.MeinKlub
de.cellular.n24hybrid
de.friendscout24.android.messaging
de.gmx.mobile.android.mail
de.komoot.android
bodylogEvents_FIREBASE_ML_LOG_SDK.*.systemInfo.appId Tracker documentation on this propertyvsin.t16_funny_photo
com.ubercab
bodylogEvents_FIREBASE_ML_SDK.*.1.1de.ladenetz.app
online.passportphoto.visa.id.app
com.microsoft.appmanager
com.scanteam.qrcodereader
com.softissimo.reverso.context
bodylogEvents_CAST_SENDER_SDK.*.48.1.1de.lineas.lit.ntv.android
de.motain.iliga
grit.storytel.app
com.audible.application
com.blinkslabs.blinkist.android
bodylogEvents_LE.*.2.2.1de.meinprospekt.android
com.bonial.kaufda
App versionbodylogRequest.*.clientInfo.androidClientInfo.applicationBuild Tracker documentation on this property21010001
502
236
19600474
5090000
bodylogEvents_FIREPERF.*.1.3.3 Tracker documentation on this property21.1.0
1.14.0
5.3.00
3.4.37-11
map[6:8.08335662e+08]
bodylogEvents_FIREPERF.*.1.4.3 Tracker documentation on this property
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.buildVersion Tracker documentation on this property2428
20670099
680059799
21412
317
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.displayVersion Tracker documentation on this property4.68
20.67.0
20.11.10700
2.5.3
2.5.7.7
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.app.version2428
20670099
680059799
317
320
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.app.displayVersion4.68
20.67.0
20.11.10700
2.5.7.7
2.1.7
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.androidAppInfo.versionName Tracker documentation on this property2.10.3
2.14.2
3.6.0
8.43
12.14.0
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.androidAppInfo.appBuildVersion210030
19392
3526
1008430000
1511
bodylogEvents_FIREBASE_ML_LOG_SDK.*.systemInfo.appVersion Tracker documentation on this property9078
183223
ArchitecturebodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.device.arch1
9
Battery levelbodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.events.*.device.batteryLevel0.7699999809265137
1
CarrierbodylogRequest.*.clientInfo.androidClientInfo.mccMnc Tracker documentation on this property310260
CountrybodylogRequest.*.clientInfo.androidClientInfo.country Tracker documentation on this propertyUS
CH
DE
GB
DK
Total disk spacebodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.device.diskSpace6.2406656e+09
1.6776077312e+10
6.228115456e+09
Used disk spacebodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.events.*.device.diskUsed5.90671872e+08
6.33667584e+08
6.33831424e+08
6.12093952e+08
6.13339136e+08
Is device an emulator?bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.device.simulatorfalse
true
Is app in foreground?bodylogEvents_FIREPERF.*.1.5 Tracker documentation on this property1
2
3
0
Is device rooted?bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.os.jailbrokentrue
false
LanguagebodylogRequest.*.clientInfo.androidClientInfo.locale Tracker documentation on this propertyen
de
da
zh
nl
ManufacturerbodylogRequest.*.clientInfo.androidClientInfo.manufacturer Tracker documentation on this propertyGoogle
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.device.manufacturerGoogle
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.androidAppInfo.deviceManufacturerGoogle
ModelbodylogRequest.*.clientInfo.androidClientInfo.model Tracker documentation on this propertysdk_gphone_x86_64_arm64
sdk_gphone_x86_64
bodylogRequest.*.clientInfo.androidClientInfo.device Tracker documentation on this propertygeneric_x86_64_arm64
emu64xa
bodylogRequest.*.clientInfo.androidClientInfo.hardware Tracker documentation on this propertyranchu
bodylogRequest.*.clientInfo.androidClientInfo.product Tracker documentation on this propertysdk_gphone_x86_64_arm64
sdk_gphone_x86_64
bodylogRequest.*.clientInfo.androidClientInfo.fingerprint Tracker documentation on this propertygoogle/sdk_gphone_x86_64_arm64/generic_x86_64_arm64:11/RSR1.201013.001/6903271:userdebug/dev-keys
google/sdk_gphone_x86_64_arm64/generic_x86_64_arm64:11/RSR1.201211.001.A1/7054069:userdebug/dev-keys
google/sdk_gphone_x86_64/generic_x86_64_arm64:11/RSR1.210722.013.A2/10067904:userdebug/dev-keys
google/sdk_gphone_x86_64/emu64xa:13/TE1A.220922.025/9795748:userdebug/dev-keys
google/sdk_gphone_x86_64_arm64/generic_x86_64_arm64:11/RSR1.210722.013/7800151:userdebug/dev-keys
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.device.modelsdk_gphone_x86_64_arm64
sdk_gphone_x86_64
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.device.modelClasssdk_gphone_x86_64_arm64
sdk_gphone_x86_64
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.deviceModel Tracker documentation on this propertysdk_gphone_x86_64
Network connection typebodylogRequest.*.logEvent.*.networkConnectionInfo.networkTypeWIFI
MOBILE
bodylogRequest.*.logEvent.*.networkConnectionInfo.mobileSubtypeUNKNOWN_MOBILE_SUBTYPE
LTE
HSPA
bodylogEvents_FIREPERF.*.1.4.5.1 Tracker documentation on this property
OrientationbodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.events.*.device.orientation1
OS namebodylogRequest.*.clientInfo.clientTypeANDROID_FIREBASE
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.platform Tracker documentation on this property4
OS versionbodylogRequest.*.clientInfo.androidClientInfo.sdkVersion Tracker documentation on this property30
33
bodylogRequest.*.clientInfo.androidClientInfo.osBuild Tracker documentation on this propertyRSR1.201013.001
RSR1.201211.001.A1
RSR1.210722.013.A2
TE1A.220922.025
RSR1.210722.013
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.os.version11
13
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.osVersion Tracker documentation on this property11
13
Other unique identifiers for the user, device, session, or installationbodylogEvents_FIREPERF.*.4.1 Tracker documentation on this property4f243ac4bb7c4441b9b1ef3e500773f6
878693c246584d18855a018be0590c72
3b21ce7be8de4213bdf4ef930f940c5b
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.installationUuid Tracker documentation on this property2c9c8357ba504a3284da68e3fa4c1417
0ea29c273794491e93da1e7a1e4e3b5e
d06ebbfac43447f2b298e402c97b645b
93abb65a096b4dbd8e8cf7fd8f24ae04
8e9d2e2a2c044a48adb56a79aad7a22a
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.sessionData.sessionId Tracker documentation on this property5944dddc66514aa38ad0e8fad30a01ec
e8c6e98fd362403db58396976dd6fc3e
553968bc4aa54094bca6c8f40518d460
322f29127da44567afeb76f46680da26
8e63c3e6b2124041b39cafb6bd832e1b
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.sessionData.firstSessionId Tracker documentation on this property5944dddc66514aa38ad0e8fad30a01ec
e8c6e98fd362403db58396976dd6fc3e
553968bc4aa54094bca6c8f40518d460
322f29127da44567afeb76f46680da26
8e63c3e6b2124041b39cafb6bd832e1b
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.sessionData.firebaseInstallationId Tracker documentation on this propertyeX82zWxuQq2D-x985Z1nKL
fKGf0pFbSfu7PFNk-QL1co
d9wrIuzcQEuzRRbdxULtkN
dM8r_TatRASD8bIF-Ok-iO
fXORKi9fSc-Z00b1ATSd00
Total RAMbodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.device.ram2.077356032e+09
2.076893184e+09
2.0772864e+09
2.061852672e+09
Used RAMbodylogEvents_FIREPERF.*.4.4.*.2 Tracker documentation on this property6495
6531
6687
6723
6779
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.events.*.device.ramUsed1.104044032e+09
1.059577856e+09
1.12304128e+09
1.102331904e+09
1.100918784e+09
Time zonebodylogRequest.*.logEvent.*.timezoneOffsetSeconds3600
7200
Tracker SDK versionbodylogEvents_FIREPERF.*.1.3.2 Tracker documentation on this property19.0.10
19.0.11
20.0.4
20.0.3
20.0.0
bodylogEvents_FIREPERF.*.1.4.2 Tracker documentation on this property
bodylogEvents_FIREBASE_INAPPMESSAGING.*.9 Tracker documentation on this property19.1.2
20.1.1
20.1.2
20.4.1
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.sdkVersion Tracker documentation on this property17.2.1
17.2.2
18.2.7
18.2.3
17.4.1
bodylogEvents_FIREBASE_CRASHLYTICS_REPORT.*.session.generatorCrashlytics Android SDK/17.2.1
Crashlytics Android SDK/17.2.2
Crashlytics Android SDK/18.2.3
Crashlytics Android SDK/18.6.0
Crashlytics Android SDK/18.3.2
bodylogEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.sessionSdkVersion Tracker documentation on this property1.2.0
1.2.1
1.2.3
1.2.4
1.2.2
bodylogEvents_PLAY_BILLING_LIBRARY.*.1.16.0.1
6.2.0
6.1.0
6.2.0-ktx
6.2.1
bodylogEvents_FIREBASE_ML_LOG_SDK.*.systemInfo.mlSdkVersion Tracker documentation on this property24.2.3
24.0.5
References