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.
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.
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.- Parse the request body as JSON. Store that in the result for the request body.
- Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREPERF')].sourceExtension
in the result for the request body. Store that in the variablelogEvents_FIREPERF_base64
. - Decode every element in the variable
logEvents_FIREPERF_base64
as a Base64 string. Store that in the variablelogEvents_FIREPERF_protobuf
. - Decode every element in the variable
logEvents_FIREPERF_protobuf
as a protocol buffer (Protobuf). Store that in the result for the request body atlogEvents_FIREPERF
. - Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'GDT_CLIENT_METRICS')].sourceExtension
in the result for the request body. Store that in the variablelogEvents_GDT_CLIENT_METRICS_base64
. - Decode every element in the variable
logEvents_GDT_CLIENT_METRICS_base64
as a Base64 string. Store that in the variablelogEvents_GDT_CLIENT_METRICS_protobuf
. - 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 atlogEvents_GDT_CLIENT_METRICS
. - Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_INAPPMESSAGING')].sourceExtension
in the result for the request body. Store that in the variablelogEvents_FIREBASE_INAPPMESSAGING_base64
. - Decode every element in the variable
logEvents_FIREBASE_INAPPMESSAGING_base64
as a Base64 string. Store that in the variablelogEvents_FIREBASE_INAPPMESSAGING_protobuf
. - Decode every element in the variable
logEvents_FIREBASE_INAPPMESSAGING_protobuf
as a protocol buffer (Protobuf). Store that in the result for the request body atlogEvents_FIREBASE_INAPPMESSAGING
. - Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'PLAY_BILLING_LIBRARY')].sourceExtension
in the result for the request body. Store that in the variablelogEvents_PLAY_BILLING_LIBRARY_base64
. - Decode every element in the variable
logEvents_PLAY_BILLING_LIBRARY_base64
as a Base64 string. Store that in the variablelogEvents_PLAY_BILLING_LIBRARY_protobuf
. - 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 atlogEvents_PLAY_BILLING_LIBRARY
. - Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_ML_SDK')].sourceExtension
in the result for the request body. Store that in the variablelogEvents_FIREBASE_ML_SDK_base64
. - Decode every element in the variable
logEvents_FIREBASE_ML_SDK_base64
as a Base64 string. Store that in the variablelogEvents_FIREBASE_ML_SDK_protobuf
. - 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 atlogEvents_FIREBASE_ML_SDK
. - Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'CAST_SENDER_SDK')].sourceExtension
in the result for the request body. Store that in the variablelogEvents_CAST_SENDER_SDK_base64
. - Decode every element in the variable
logEvents_CAST_SENDER_SDK_base64
as a Base64 string. Store that in the variablelogEvents_CAST_SENDER_SDK_protobuf
. - 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 atlogEvents_CAST_SENDER_SDK
. - Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'LE')].sourceExtension
in the result for the request body. Store that in the variablelogEvents_LE_base64
. - Decode every element in the variable
logEvents_LE_base64
as a Base64 string. Store that in the variablelogEvents_LE_protobuf
. - Decode every element in the variable
logEvents_LE_protobuf
as a protocol buffer (Protobuf). Store that in the result for the request body atlogEvents_LE
. - Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_CRASHLYTICS_REPORT')].sourceExtensionJsonProto3
in the result for the request body. Store that in the variablelogEvents_FIREBASE_CRASHLYTICS_REPORT_json
. - Parse every element in the variable
logEvents_FIREBASE_CRASHLYTICS_REPORT_json
as JSON. Store that in the result for the request body atlogEvents_FIREBASE_CRASHLYTICS_REPORT
. - Get the property at JSONPath
$.logRequest.*.logEvent[?(@parent.logSourceName === 'FIREBASE_APPQUALITY_SESSION')].sourceExtensionJsonProto3
in the result for the request body. Store that in the variablelogEvents_FIREBASE_APPQUALITY_SESSION_json
. - Parse every element in the variable
logEvents_FIREBASE_APPQUALITY_SESSION_json
as JSON. Store that in the result for the request body atlogEvents_FIREBASE_APPQUALITY_SESSION
. - 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 variablelogEvents_FIREBASE_ML_LOG_SDK_json
. - Parse every element in the variable
logEvents_FIREBASE_ML_LOG_SDK_json
as JSON. Store that in the result for the request body atlogEvents_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.References
- Documentation for
logEvents_FIREPERF.*.1.3.1
: https://github.com/firebase/firebase-android-sdk/blob/132b8ba8563aa00b06e27b56ee811e738d14c791/firebase-perf/src/main/proto/firebase/perf/v1/perf_metric.proto#L326-L328 - Documentation for
logEvents_GDT_CLIENT_METRICS.*.4
: https://github.com/firebase/firebase-android-sdk/blob/132b8ba8563aa00b06e27b56ee811e738d14c791/transport/transport-runtime/src/main/proto/client_analytics.proto#L38-L39 - Documentation for
logEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.androidAppInfo.appId
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebaseSessions/ProtoSupport/Protos/sessions.proto#L204-L205 - Documentation for
logEvents_FIREBASE_ML_LOG_SDK.*.systemInfo.appId
: https://github.com/firebase/firebase-android-sdk/blob/master/firebase-ml-modeldownloader/src/test/proto/firebase/ml/modeldownloader/firebase_ml_log_sdk.proto#L28-L30 - Documentation for
logRequest.*.clientInfo.androidClientInfo.applicationBuild
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L123-L125 - Documentation for
logEvents_FIREPERF.*.1.3.3
: https://github.com/firebase/firebase-android-sdk/blob/132b8ba8563aa00b06e27b56ee811e738d14c791/firebase-perf/src/main/proto/firebase/perf/v1/perf_metric.proto#L333-L338 - Documentation for
logEvents_FIREPERF.*.1.4.3
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebasePerformance/ProtoSupport/Protos/perf_metric.proto#L457-L461 - Documentation for
logEvents_FIREBASE_CRASHLYTICS_REPORT.*.buildVersion
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/Crashlytics/ProtoSupport/Protos/crashlytics.proto#L47-L48 - Documentation for
logEvents_FIREBASE_CRASHLYTICS_REPORT.*.displayVersion
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/Crashlytics/ProtoSupport/Protos/crashlytics.proto#L50-L51 - Documentation for
logEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.androidAppInfo.versionName
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebaseSessions/ProtoSupport/Protos/sessions.proto#L207-L208 - Documentation for
logEvents_FIREBASE_ML_LOG_SDK.*.systemInfo.appVersion
: https://github.com/firebase/firebase-android-sdk/blob/master/firebase-ml-modeldownloader/src/test/proto/firebase/ml/modeldownloader/firebase_ml_log_sdk.proto#L32-34 - Documentation for
logRequest.*.clientInfo.androidClientInfo.mccMnc
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L127-L129 - Documentation for
logRequest.*.clientInfo.androidClientInfo.country
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L135-L136 - Documentation for
logEvents_FIREPERF.*.1.5
: https://github.com/firebase/firebase-android-sdk/blob/132b8ba8563aa00b06e27b56ee811e738d14c791/firebase-perf/src/main/proto/firebase/perf/v1/perf_metric.proto#L314-L315 - Documentation for
logRequest.*.clientInfo.androidClientInfo.locale
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L131-L133 - Documentation for
logRequest.*.clientInfo.androidClientInfo.manufacturer
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L138-L140 - Documentation for
logRequest.*.clientInfo.androidClientInfo.model
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L104-L106 - Documentation for
logRequest.*.clientInfo.androidClientInfo.device
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L108-L110 - Documentation for
logRequest.*.clientInfo.androidClientInfo.hardware
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L116-L118 - Documentation for
logRequest.*.clientInfo.androidClientInfo.product
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L108-L110 - Documentation for
logRequest.*.clientInfo.androidClientInfo.fingerprint
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L158-L160 - Documentation for
logEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.deviceModel
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebaseSessions/ProtoSupport/Protos/sessions.proto#L172-L173 - Documentation for
logEvents_FIREPERF.*.1.4.5.1
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebasePerformance/ProtoSupport/Protos/perf_metric.proto#L469-L470 - Documentation for
logEvents_FIREBASE_CRASHLYTICS_REPORT.*.platform
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/Crashlytics/ProtoSupport/Protos/crashlytics.proto#L34-L35 - Documentation for
logRequest.*.clientInfo.androidClientInfo.sdkVersion
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L101-L102 - Documentation for
logRequest.*.clientInfo.androidClientInfo.osBuild
: https://github.com/firebase/firebase-android-sdk/blob/bb0823ffc999ccfc38d75a165f6c0391ed884f6b/transport/transport-backend-cct/src/test/proto/google/cct/google_cct.proto#L120-L121 - Documentation for
logEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.osVersion
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebaseSessions/ProtoSupport/Protos/sessions.proto#L180-L181 - Documentation for
logEvents_FIREPERF.*.4.1
: https://github.com/firebase/firebase-android-sdk/blob/132b8ba8563aa00b06e27b56ee811e738d14c791/firebase-perf/src/main/proto/firebase/perf/v1/perf_metric.proto#L213-L217 - Documentation for
logEvents_FIREBASE_CRASHLYTICS_REPORT.*.installationUuid
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/Crashlytics/ProtoSupport/Protos/crashlytics.proto#L37-L39 - Documentation for
logEvents_FIREBASE_APPQUALITY_SESSION.*.sessionData.sessionId
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebaseSessions/ProtoSupport/Protos/sessions.proto#L120-L121 - Documentation for
logEvents_FIREBASE_APPQUALITY_SESSION.*.sessionData.firstSessionId
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebaseSessions/ProtoSupport/Protos/sessions.proto#L122-L124 - Documentation for
logEvents_FIREBASE_APPQUALITY_SESSION.*.sessionData.firebaseInstallationId
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebaseSessions/ProtoSupport/Protos/sessions.proto#L128-L129 - Documentation for
logEvents_FIREPERF.*.4.4.*.2
: https://github.com/firebase/firebase-android-sdk/blob/132b8ba8563aa00b06e27b56ee811e738d14c791/firebase-perf/src/main/proto/firebase/perf/v1/perf_metric.proto#L255-L256 - Documentation for
logEvents_FIREPERF.*.1.3.2
: https://github.com/firebase/firebase-android-sdk/blob/132b8ba8563aa00b06e27b56ee811e738d14c791/firebase-perf/src/main/proto/firebase/perf/v1/perf_metric.proto#L330-L331 - Documentation for
logEvents_FIREPERF.*.1.4.2
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebasePerformance/ProtoSupport/Protos/perf_metric.proto#L454-L455 - Documentation for
logEvents_FIREBASE_INAPPMESSAGING.*.9
: https://github.com/firebase/firebase-android-sdk/blob/132b8ba8563aa00b06e27b56ee811e738d14c791/firebase-inappmessaging/src/proto/logs/proto/firebase/inappmessaging/campaign_analytics.proto#L57-L58 - Documentation for
logEvents_FIREBASE_CRASHLYTICS_REPORT.*.sdkVersion
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/Crashlytics/ProtoSupport/Protos/crashlytics.proto#L28-L29 - Documentation for
logEvents_FIREBASE_APPQUALITY_SESSION.*.applicationInfo.sessionSdkVersion
: https://github.com/firebase/firebase-ios-sdk/blob/7a0145207ec66f24e4bd1ceccd4f861a3e22535b/FirebaseSessions/ProtoSupport/Protos/sessions.proto#L178-L179 - Documentation for
logEvents_FIREBASE_ML_LOG_SDK.*.systemInfo.mlSdkVersion
: https://github.com/firebase/firebase-android-sdk/blob/master/firebase-ml-modeldownloader/src/test/proto/firebase/ml/modeldownloader/firebase_ml_log_sdk.proto#L41-L43