Documentation
Plugins
Sources
Google Analytics
Configuration

Google Analytics Source Plugin Configuration Reference

Example

This example syncs from Google Analytics to a Postgres destination. The (top level) source spec section is described in the Source Spec Reference.

kind: source
# Common source-plugin configuration
spec:
  name: googleanalytics
  path: cloudquery/googleanalytics
  version: "v3.0.12"
  tables: ["*"]
  destinations: ["postgresql"]

  # Google Analytics specific configuration
  spec:
    property_id: "<YOUR_PROPERTY_ID_HERE>"
    oauth:
      access_token: "<YOUR_OAUTH_ACCESS_TOKEN>"
    reports:
    - name: example
      dimensions:
      - date
      - language
      - country
      - city
      - browser
      - operatingSystem
      - year
      - month
      - hour
      metrics:
      - name: totalUsers
      - name: new_users
        expression: newUsers
      - name: new_users2
        expression: "newUsers + totalUsers"
        invisible: true
      keep_empty_rows: true

Google Analytics Spec

This is the (nested) spec used by the Google Analytics source plugin:

  • property_id (string) (required):

    A Google Analytics GA4 property (opens in a new tab) identifier whose events are tracked. To learn more, see where to find your Property ID (opens in a new tab).

    Supported formats:

    • A plain property ID (example: 1234)

    • Prefixed with properties/ (example: properties/1234)

  • reports ([]report) (required):

    Reports to be fetched from Google Analytics.

  • start_date (string) (optional) (default: date 7 days prior to the sync start):

    A date in YYYY-MM-DD format (example: 2023-05-15). If not specified, the start date will be the one that is 7 days prior to the sync start date.

  • oauth (OAuth spec) (optional) (default: empty)

    OAuth spec for authorization in Google Analytics.

  • concurrency (integer) (optional) (default: 10000):

    The best effort maximum number of Go routines to use. Lower this number to reduce memory usage.

  • preview backend_options (object) (default: not used)

    Allowed properties are table_name and connection. Use this configuration to enable incremental syncs for supported tables. See more here. Example

    kind: source
    spec:
      name: googleanalytics
      path: cloudquery/googleanalytics
      version: "v3.0.12"
      destinations: ["postgresql"]
      spec:
        backend_options:
          table_name: "test_state_table"
          connection: "@@plugins.postgresql.connection"

Google Analytics OAuth spec

OAuth spec to authenticate with Google Analytics. Google Analytics Data API v1 (opens in a new tab) requires OAuth authorization for https://www.googleapis.com/auth/analytics.readonly scope to run reports.

  • access_token (string) (optional) (default: "")

    An access token that you generated authorizing for https://www.googleapis.com/auth/analytics.readonly scope (e.g., by using OAuth 2.0 Playground (opens in a new tab)).

  • client_id (string) (optional) (default: "")

    OAuth 2.0 Client ID. Required if access_token is empty.

  • client_secret (string) (optional) (default: "")

    OAuth 2.0 Client secret. Required if access_token is empty.

Google Analytics Report spec

Report specification will be transformed into a Google Analytics Data API v1 report (opens in a new tab). The option structure follows:

  • name (string) (required):

    Name of the report. It will be translated into a table name as ga_ prefix followed by report name in snake case.

  • dimensions ([]string) (optional) (default: empty)

    A list of Google Analytics Data API v1 dimensions (opens in a new tab). At most 9 dimensions can be specified per report.

  • metrics ([]metric) (required)

    A list of Google Analytics Data API v1 metrics (opens in a new tab). Expressions are supported, too.

  • keep_empty_rows (boolean) (optional) (default: false)

    Whether empty rows should be captured, too.

Google Analytics metric spec

Metric spec that is based on Google Analytics Data API v1 Metric (opens in a new tab) parameter.

  • name (string) (required)

    A name or alias (if expression is specified) of the requested metric.

  • expression (string) (optional) (default: "")

    A mathematical expression for derived metrics.

  • invisible (boolean) (optional) (default: false)

    Indicates if a metric is invisible in the report response. This allows creating more complex requests, while also not saving the intermediate results.