{
  "$id": "https://googleapis.github.io/google-cloudevents/jsonschema/google/events/firebase/analytics/v1/AnalyticsLogData.json",
  "name": "AnalyticsLogData",
  "examples": [
    "https://googleapis.github.io/google-cloudevents/testdata/google/events/firebase/analytics/v1/AnalyticsLogData-complex.json"
  ],
  "package": "google.events.firebase.analytics.v1",
  "datatype": "google.events.firebase.analytics.v1.AnalyticsLogData",
  "cloudeventTypes": [
    "google.firebase.analytics.log.v1.written"
  ],
  "product": "Google Analytics for Firebase",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "$ref": "#/definitions/AnalyticsLogData",
  "definitions": {
    "AnalyticsLogData": {
      "properties": {
        "userDim": {
          "$ref": "#/definitions/UserDimensions",
          "additionalProperties": true,
          "description": "User related dimensions."
        },
        "eventDim": {
          "items": {
            "$ref": "#/definitions/EventDimensions"
          },
          "type": "array",
          "description": "A repeated record of event related dimensions."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "Analytics Log Data",
      "description": "The data within Firebase Analytics log events."
    },
    "AnalyticsValue": {
      "properties": {
        "stringValue": {
          "type": "string"
        },
        "intValue": {
          "type": "integer"
        },
        "floatValue": {
          "type": "number"
        },
        "doubleValue": {
          "type": "number"
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "Analytics Value",
      "description": "Value for Event Params and UserProperty can be of type string or int or float or double."
    },
    "AppInfo": {
      "properties": {
        "appVersion": {
          "type": "string",
          "description": "The app's version name Examples: \"1.0\", \"4.3.1.1.213361\", \"2.3 (1824253)\", \"v1.8b22p6\""
        },
        "appInstanceId": {
          "type": "string",
          "description": "Unique id for this instance of the app. Example: \"71683BF9FA3B4B0D9535A1F05188BAF3\""
        },
        "appStore": {
          "type": "string",
          "description": "The identifier of the store that installed the app. Eg. \"com.sec.android.app.samsungapps\", \"com.amazon.venezia\", \"com.nokia.nstore\""
        },
        "appPlatform": {
          "type": "string",
          "description": "The app platform. Eg \"ANDROID\", \"IOS\"."
        },
        "appId": {
          "type": "string",
          "description": "Unique application identifier within an app store."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "App Info",
      "description": "Message which contains App Information."
    },
    "DeviceInfo": {
      "properties": {
        "deviceCategory": {
          "type": "string",
          "description": "Device category. Eg. tablet or mobile."
        },
        "mobileBrandName": {
          "type": "string",
          "description": "Device brand name. Eg. Samsung, HTC, etc."
        },
        "mobileModelName": {
          "type": "string",
          "description": "Device model name. Eg. GT-I9192"
        },
        "mobileMarketingName": {
          "type": "string",
          "description": "Device marketing name. Eg. Galaxy S4 Mini"
        },
        "deviceModel": {
          "type": "string",
          "description": "Device model. Eg. GT-I9192"
        },
        "platformVersion": {
          "type": "string",
          "description": "Device OS version when data capture ended. Eg. 4.4.2"
        },
        "deviceId": {
          "type": "string",
          "description": "Vendor specific device identifier. This is IDFV on iOS. Not used for Android. Example: \"599F9C00-92DC-4B5C-9464-7971F01F8370\""
        },
        "resettableDeviceId": {
          "type": "string",
          "description": "The type of the resettable_device_id is always IDFA on iOS and AdId on Android. Example: \"71683BF9-FA3B-4B0D-9535-A1F05188BAF3\""
        },
        "userDefaultLanguage": {
          "type": "string",
          "description": "The user language. Eg. \"en-us\", \"en-za\", \"zh-tw\", \"jp\""
        },
        "deviceTimeZoneOffsetSeconds": {
          "type": "integer",
          "description": "The timezone of the device when data was uploaded as seconds skew from UTC."
        },
        "limitedAdTracking": {
          "type": "boolean",
          "description": "The device's Limit Ad Tracking setting. When true, we cannot use device_id for remarketing, demographics or influencing ads serving behaviour. However, we can use device_id for conversion tracking and campaign attribution."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "Device Info",
      "description": "Message containing device informations."
    },
    "EventDimensions": {
      "properties": {
        "date": {
          "type": "string",
          "description": "The date on which this event was logged. (YYYYMMDD format in the registered timezone of your app.)"
        },
        "name": {
          "type": "string",
          "description": "The name of this event."
        },
        "params": {
          "additionalProperties": {
            "$ref": "#/definitions/AnalyticsValue",
            "additionalProperties": true
          },
          "type": "object",
          "description": "A repeated record of the parameters associated with this event."
        },
        "timestampMicros": {
          "type": "integer",
          "description": "UTC client time when the event happened."
        },
        "previousTimestampMicros": {
          "type": "integer",
          "description": "UTC client time when the previous event happened."
        },
        "valueInUsd": {
          "type": "number",
          "description": "Value param in USD."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "Event Dimensions",
      "description": "Message containing information pertaining to the event."
    },
    "ExportBundleInfo": {
      "properties": {
        "bundleSequenceId": {
          "type": "integer",
          "description": "Monotonically increasing index for each bundle set by SDK."
        },
        "serverTimestampOffsetMicros": {
          "type": "integer",
          "description": "Timestamp offset between collection time and upload time."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "Export Bundle Info",
      "description": "Message containing information regarding the bundle in which these events were uploaded."
    },
    "GeoInfo": {
      "properties": {
        "continent": {
          "type": "string",
          "description": "The geographic continent. Eg. Americas"
        },
        "country": {
          "type": "string",
          "description": "The geographic country. Eg. Brazil"
        },
        "region": {
          "type": "string",
          "description": "The geographic region. Eg. State of Sao Paulo"
        },
        "city": {
          "type": "string",
          "description": "The geographic city. Eg. Sao Paulo"
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "Geo Info",
      "description": "User's geographic informaiton."
    },
    "LtvInfo": {
      "properties": {
        "revenue": {
          "type": "number",
          "description": "The Lifetime Value revenue of this user."
        },
        "currency": {
          "type": "string",
          "description": "The currency corresponding to the revenue."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "Ltv Info",
      "description": "Lifetime Value information about this user."
    },
    "TrafficSource": {
      "properties": {
        "userAcquiredCampaign": {
          "type": "string",
          "description": "The name of the campaign which acquired the user."
        },
        "userAcquiredSource": {
          "type": "string",
          "description": "The name of the network which acquired the user."
        },
        "userAcquiredMedium": {
          "type": "string",
          "description": "The name of the medium which acquired the user."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "Traffic Source",
      "description": "Mesage containing marketing campaign information which acquired the user."
    },
    "UserDimensions": {
      "properties": {
        "userId": {
          "type": "string",
          "description": "The user ID set via the setUserId API."
        },
        "firstOpenTimestampMicros": {
          "type": "integer",
          "description": "The time (in microseconds) at which the user first opened the app."
        },
        "userProperties": {
          "additionalProperties": {
            "$ref": "#/definitions/UserPropertyValue",
            "additionalProperties": true
          },
          "type": "object",
          "description": "A repeated record of user properties set with the setUserProperty API. https://firebase.google.com/docs/analytics/android/properties"
        },
        "deviceInfo": {
          "$ref": "#/definitions/DeviceInfo",
          "additionalProperties": true,
          "description": "Device information."
        },
        "geoInfo": {
          "$ref": "#/definitions/GeoInfo",
          "additionalProperties": true,
          "description": "User's geographic information."
        },
        "appInfo": {
          "$ref": "#/definitions/AppInfo",
          "additionalProperties": true,
          "description": "App information."
        },
        "trafficSource": {
          "$ref": "#/definitions/TrafficSource",
          "additionalProperties": true,
          "description": "Information about marketing campaign which acquired the user."
        },
        "bundleInfo": {
          "$ref": "#/definitions/ExportBundleInfo",
          "additionalProperties": true,
          "description": "Information regarding the bundle in which these events were uploaded."
        },
        "ltvInfo": {
          "$ref": "#/definitions/LtvInfo",
          "additionalProperties": true,
          "description": "Lifetime Value information about this user."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "User Dimensions",
      "description": "Message containing information about the user associated with the event."
    },
    "UserPropertyValue": {
      "properties": {
        "value": {
          "$ref": "#/definitions/AnalyticsValue",
          "additionalProperties": true,
          "description": "Last set value of user property."
        },
        "setTimestampUsec": {
          "type": "integer",
          "description": "UTC client time when user property was last set."
        },
        "index": {
          "type": "integer",
          "description": "Index for user property (one-based)."
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "User Property Value",
      "description": "Predefined (eg: LTV) or custom properties (eg: birthday) stored on client side and associated with subsequent HitBundles."
    }
  }
}