Skip to Content
DestinationsAnalyticsGoogle Analytics Hub

Google Analytics Hub

Share governed datasets across organizations using Google Analytics Hub (part of BigQuery). Zeotap publishes your warehouse data as listings in Analytics Hub data exchanges, enabling secure, controlled data sharing without data movement.

Prerequisites

  • A Google Cloud project with the Analytics Hub API enabled
  • A BigQuery dataset in the same project and region you want to share
  • An existing Analytics Hub data exchange (or permissions to create one)
  • One of the following authentication methods:
    • A Google account with BigQuery Admin and Analytics Hub Admin roles
    • A GCP service account with roles/analyticshub.admin and roles/bigquery.dataEditor

Authentication

Google Analytics Hub supports two authentication methods.

  1. In Zeotap, navigate to Destinations and click Add Destination
  2. Select Google Analytics Hub
  3. Choose Google OAuth 2.0 as the authentication method
  4. Click Connect to initiate the OAuth flow
  5. Sign in with your Google account and grant access to BigQuery and Analytics Hub
  6. Once authorized, you will be redirected back to Zeotap

Service Account

  1. In the Google Cloud Console, navigate to IAM & Admin > Service Accounts
  2. Create a new service account or select an existing one
  3. Grant the service account the following roles:
    • roles/analyticshub.admin — Manage data exchanges and listings
    • roles/bigquery.dataEditor — Access the BigQuery dataset to share
  4. Create a JSON key for the service account
  5. In Zeotap, paste the full JSON key file contents into the Service Account Key JSON field

Configuration

FieldTypeRequiredDescription
GCP Project IDTextYesThe Google Cloud project that contains the data exchange
LocationSelectYesThe Google Cloud region where the data exchange is hosted (e.g., us, eu, us-central1)
Data Exchange IDTextYesThe ID of the Analytics Hub data exchange to publish listings to
BigQuery Dataset IDTextYesThe BigQuery dataset to share through the data exchange listing

Target Settings

FieldTypeRequiredDescription
Listing IDTextYesThe ID for the listing within the data exchange. If the listing already exists, it will be updated; otherwise a new listing is created

Supported Operations

Sync Modes

ModeSupportedDescription
InsertYesCreates a new listing in the data exchange if it does not already exist
MirrorYesCreates or fully replaces the listing configuration to match the current settings
Upsert
Update

Audience Sync Modes

Google Analytics Hub does not support audience sync modes. It operates as a dataset-level sharing mechanism rather than a record-level sync destination.

Features

FeatureSupported
Field MappingNo
Schema IntrospectionNo

How It Works

Google Analytics Hub is a metadata management service — no data is copied or moved. When Zeotap syncs to Analytics Hub, it:

  1. Validates connectivity — Confirms access to the specified data exchange using your credentials
  2. Checks for an existing listing — Queries the Analytics Hub API to see if a listing with the given ID already exists
  3. Creates or updates the listing — Publishes a listing that references your BigQuery dataset, making it discoverable and subscribable through the data exchange
  4. Subscribers access shared data — Other organizations can subscribe to the listing and receive a linked dataset in their own BigQuery project

Each sync run ensures the listing is present and up to date. The underlying BigQuery dataset remains in your project — subscribers access it through BigQuery’s shared dataset mechanism with no data duplication.

API Details

  • Base URL: https://analyticshub.googleapis.com/v1
  • Authentication: OAuth 2.0 Bearer token or Google service account
  • Request format: JSON
  • Rate limits: Standard Google Cloud API quotas apply (typically 600 requests per minute per project)

Best Practices

  • Use descriptive listing IDs — Listing IDs are visible to subscribers and should clearly identify the shared dataset
  • Match locations — The data exchange and the BigQuery dataset must be in the same Google Cloud region
  • Grant minimal permissions — Use the principle of least privilege when configuring service account roles
  • Monitor subscriber access — Use the Analytics Hub console to track which organizations have subscribed to your listings
  • Keep datasets organized — Create separate data exchanges for different data categories (e.g., marketing data, product analytics)

Troubleshooting

Data exchange not found

Verify that the Data Exchange ID matches an existing exchange in the specified project and location. Data exchange IDs are case-sensitive. Check the Analytics Hub console at BigQuery > Analytics Hub in the Google Cloud Console.

Permission denied errors

Ensure your account or service account has the roles/analyticshub.admin role on the project. If using OAuth, you may need to re-authorize if your permissions were recently changed.

Location mismatch

The data exchange and the BigQuery dataset must be in the same region. A dataset in us-central1 cannot be listed in a data exchange located in eu. Verify both locations match in the configuration.

Listing already exists (insert mode)

When using Insert sync mode, the sync will skip creation if the listing already exists. Switch to Mirror mode if you want to update existing listings.

OAuth token expired

If your sync fails with an authentication error, the OAuth token may have expired. Reconnect the destination in Zeotap to refresh the token. For long-running production syncs, consider using a service account instead.

API quota exceeded

Google Cloud enforces per-project API quotas. If you see rate limit errors, reduce sync frequency or request a quota increase in the Google Cloud Console under APIs & Services > Quotas.

Last updated on