---
title: Google Analytics API Integration on Truto
slug: googleanalytics
category: Analytics
canonical: "https://truto.one/integrations/detail/googleanalytics/"
---

# Google Analytics API Integration on Truto



**Category:** Analytics  
**Status:** Generally available

## Unified APIs

### Unified User Directory API

- **Users** — The User object represents a User.

## MCP-ready AI tools

Truto exposes 64 tools for Google Analytics that AI agents can call directly.

- **list_all_googleanalytics_accounts** — Use this endpoint to retrieve a list of all Google Analytics accounts to which the authenticated user has access.
- **list_all_googleanalytics_account_user** — Use this endpoint to retrieve all user links (permissions) for a specific Google Analytics account.


- **list_all_googleanalytics_accounts_alpha** — Get all accounts accessible by the caller in Google Analytics. Returns accounts array with account details excluding soft-deleted accounts by default.
- **list_all_googleanalytics_account_access_bindings_alpha** — This method retrieves information about a specific access binding on a Google Analytics account. An access binding defines the access level (permissions/roles) a user or group has on an account.
- **list_all_googleanalytics_account_summaries** — Get summaries of all accounts accessible by the caller in Google Analytics. Returns account summaries including account name, account resource name, display name, and child property summaries with property resource name, display name, property type, and parent resource name.
- **list_all_googleanalytics_accounts_beta** — Get all accounts accessible by the caller in Google Analytics. Returns accounts excluding soft-deleted ones by default. Response includes accounts array with account details.
- **get_single_googleanalytics_accounts_beta_by_id** — Get information about a specific account in Google Analytics. Requires id. Returns the Account resource with details about the account.
- **update_a_googleanalytics_accounts_beta_by_id** — Update fields of a specific account in Google Analytics using id and updateMask. Returns the updated account resource with its name field.
- **delete_a_googleanalytics_accounts_beta_by_id** — Delete (soft-delete) an account by id in Google Analytics. Marks the account as trashed and returns an empty response. Note: soft-deleted accounts can only be restored via the Trash Can UI and will be permanently purged after expiration.
- **googleanalytics_accounts_beta_data_sharing_settings** — Get data sharing settings for an account in Google Analytics. Requires id. Returns fields including sharingWithGoogleSupportEnabled, sharingWithGoogleAssignedSalesEnabled, sharingWithGoogleProductsEnabled, and sharingWithOthersEnabled indicating data sharing preferences.
- **googleanalytics_accounts_beta_provision** — Create an account ticket in Google Analytics by providing account details and redirectUri. Returns accountTicketId for Terms of Service link.
- **googleanalytics_accounts_beta_access_report** — Run a customized data access report for the specified entity in Google Analytics. Requires entity parameter. Returns records of user data access including dimensions and metrics for up to 2 years.
- **googleanalytics_accounts_beta_search_change_history** — Search change history events for an account in Google Analytics using account. Returns change event id, change time, actor type, user email, filtered changes flag, and list of changes.
- **list_all_googleanalytics_properties** — List child Properties filtered by filter in Google Analytics. Returns properties accessible to the caller excluding soft-deleted ones by default. Response includes properties array with property details.
- **get_single_googleanalytics_property_by_id** — Get a single Google Analytics property by id. Returns the property resource with details such as property name and settings.
- **create_a_googleanalytics_property** — Create a Google Analytics property with specified location and attributes. Returns the created property including its resource name, display name, and industry category.
- **update_a_googleanalytics_property_by_id** — Update a property by id in Google Analytics. Requires updateMask specifying fields to update. Returns the updated property resource.
- **delete_a_googleanalytics_property_by_id** — Delete a Property by id in Google Analytics. Marks the Property as soft-deleted (trashed) and returns it. Note: Properties cannot be restored via API and will be permanently purged if not restored before expiration.
- **list_all_googleanalytics_custom_dimensions** — List CustomDimensions on a property in Google Analytics. Requires parent property in the format properties/{property_id}. Returns customDimensions array with details of each custom dimension.
- **get_single_googleanalytics_custom_dimension_by_id** — Get a single CustomDimension by id and property_id in Google Analytics. Returns the CustomDimension resource with its configuration details.
- **create_a_googleanalytics_custom_dimension** — Create a CustomDimension for the property specified by parent in Google Analytics. Returns the created CustomDimension resource.
- **update_a_googleanalytics_custom_dimension_by_id** — Update a CustomDimension on a property in Google Analytics. Requires property and id. Returns the updated CustomDimension resource including its resource name and configuration fields.
- **googleanalytics_custom_dimensions_archive** — Archive a CustomDimension identified by id on a property identified by property_id in Google Analytics. The response is an empty JSON object.
- **list_all_googleanalytics_custom_metrics** — List CustomMetrics for a property in Google Analytics. Requires parent property identifier. Returns an array of CustomMetric objects representing the custom metrics defined for the property.
- **get_single_googleanalytics_custom_metric_by_id** — Get a single CustomMetric by property_id and id in Google Analytics. Returns the CustomMetric resource with its configuration details.
- **create_a_googleanalytics_custom_metric** — Create a CustomMetric for the property specified by parent in Google Analytics. Returns the created CustomMetric resource including name, parameterName, displayName, description, measurementUnit, scope, and restrictedMetricType fields.
- **update_a_googleanalytics_custom_metric_by_id** — Update a CustomMetric on a property in Google Analytics. Requires customMetric name as properties/{property}/customMetrics/{customMetric} and updateMask specifying fields to update. Returns the updated CustomMetric resource.
- **googleanalytics_custom_metrics_archive** — Archive a CustomMetric by property_id and id in Google Analytics. Returns an empty response body on success.
- **list_all_googleanalytics_data_streams** — List DataStreams for a property using parent. Returns dataStreams array with DataStream objects and nextPageToken for pagination in Google Analytics.
- **get_single_googleanalytics_data_stream_by_id** — Get a single DataStream by property_id and id in Google Analytics. Returns the DataStream resource with details such as name, type, and configuration.
- **create_a_googleanalytics_data_stream** — Create a DataStream for the property specified by parent. Returns the created DataStream resource including name, type, displayName, createTime, updateTime, and stream-specific data.
- **update_a_googleanalytics_data_stream_by_id** — Update a DataStream on a property in Google Analytics. Requires property_id and id. Returns the updated DataStream resource including name, type, displayName, createTime, updateTime, and stream-specific data such as webStreamData, androidAppStreamData, or iosAppStreamData.
- **delete_a_googleanalytics_data_stream_by_id** — Delete a DataStream by property_id and id in Google Analytics. Returns an empty response body on success.
- **list_all_googleanalytics_measurement_protocol_secrets** — List MeasurementProtocolSecrets for the parent stream specified by property and data_stream in Google Analytics. Returns measurementProtocolSecrets array containing secret details.
- **get_single_googleanalytics_measurement_protocol_secret_by_id** — Get a single MeasurementProtocolSecret by property, data_stream, and id in Google Analytics. Returns the MeasurementProtocolSecret resource with its details.
- **create_a_googleanalytics_measurement_protocol_secret** — Create a measurement protocol secret for the specified property and data_stream in Google Analytics. Returns the created secret's name, displayName, and secretValue.
- **update_a_googleanalytics_measurement_protocol_secret_by_id** — Update a measurement protocol secret identified by id under the specified property and data_stream in Google Analytics. Returns the updated secret resource.
- **delete_a_googleanalytics_measurement_protocol_secret_by_id** — Delete a MeasurementProtocolSecret by property, data_stream, and id in Google Analytics. Returns an empty response on success.
- **list_all_googleanalytics_firebase_links** — List FirebaseLinks for a property in Google Analytics. Requires property_id. Returns firebaseLinks array with at most one FirebaseLink object.
- **create_a_googleanalytics_firebase_link** — Create a FirebaseLink for the property specified by parent in Google Analytics. Returns the created FirebaseLink including name, project resource name, and creation time.
- **delete_a_googleanalytics_firebase_link_by_id** — Delete a FirebaseLink for a property in Google Analytics. Requires property_id and id. Returns an empty JSON object on success.
- **list_all_googleanalytics_google_ads_links** — List GoogleAdsLinks for a property using parent. Returns googleAdsLinks array with details of each link.
- **create_a_googleanalytics_google_ads_link** — Create a GoogleAdsLink for the property specified by parent. Returns the created GoogleAdsLink resource.
- **update_a_googleanalytics_google_ads_link_by_id** — Update a GoogleAdsLink on a property in Google Analytics using id and property_id. Returns the updated GoogleAdsLink including fields name, customerId, canManageClients, adsPersonalizationEnabled, createTime, updateTime, and creatorEmailAddress.
- **delete_a_googleanalytics_google_ads_link_by_id** — Delete a GoogleAdsLink by property_id and id in Google Analytics. Returns an empty response on success.
- **list_all_googleanalytics_key_events** — Get a list of Key Events for the specified parent property in Google Analytics. Returns keyEvents array with details of each event. Requires parent property resource name.
- **get_single_googleanalytics_key_event_by_id** — Get a single Key Event by property and id in Google Analytics. Returns the Key Event resource with details about the event.
- **create_a_googleanalytics_key_event** — Create a Key Event in Google Analytics property specified by parent. Returns the created Key Event resource including name, eventName, createTime, deletable, custom, countingMethod, and defaultValue fields.
- **update_a_googleanalytics_key_event_by_id** — Update a Key Event by property and id in Google Analytics. Requires updateMask specifying fields to update. Returns the updated Key Event including name, eventName, createTime, deletable, custom, countingMethod, and defaultValue.
- **delete_a_googleanalytics_key_event_by_id** — Delete a Key Event by property and id in Google Analytics. Returns an empty response on success.
- **googleanalytics_pivot_reports_batch_run** — Run multiple pivot reports for the same Google Analytics property using property. Returns pivotReports array with each report's data including dimensions, metrics, and pivots.
- **googleanalytics_pivot_reports_run** — Run a customized pivot report for a Google Analytics property using property. Returns pivot report data including dimensions, metrics, and pivots as specified in the request.
- **googleanalytics_reports_batch_run** — Run multiple reports for the same Google Analytics property using batchRunReports in Google Analytics. Requires property. Returns reports array with each report containing requested dimensions, metrics, and date ranges.
- **googleanalytics_reports_run** — Run a customized report of Google Analytics event data for property using specified dimensions, metrics, and dateRanges. Returns rows with dimension values and metric values.
- **googleanalytics_compatibility_check** — Check compatibility of dimensions and metrics for a Google Analytics property using property. Returns dimensionCompatibilities and metricCompatibilities indicating if each dimension and metric can be added to a Core report.
- **list_all_googleanalytics_metadata** — Get metadata for dimensions, metrics, and comparisons for a Google Analytics property using id. Returns resource name, dimension descriptions, metric descriptions, and comparison descriptions.
- **googleanalytics_realtime_report_run** — Run a realtime report for the Google Analytics property specified by property. Returns dimensionHeaders describing dimension columns, metricHeaders describing metric columns, and rows of dimension value combinations and metric values.
- **list_all_googleanalytics_audience_exports** — List all audience exports for a property in Google Analytics. Requires parent property in format properties/{property}. Returns audienceExports array with details of each audience export.
- **get_single_googleanalytics_audience_export_by_id** — Get configuration metadata about a specific audience export in Google Analytics. Requires property and id. Returns fields describing the audience export configuration.
- **create_a_googleanalytics_audience_export** — Create an audience export for the property specified by parent in Google Analytics. Returns the audience export's resource name and initiates an asynchronous request to form the export.
- **googleanalytics_audience_exports_query** — Get users in an audience export for property and id in Google Analytics. Returns audienceRows with user dimension values, audienceExport configuration, and total rowCount.
- **googleanalytics_user_deletion_request_upsert** — Insert or update a user deletion request in Google Analytics. Returns the user deletion request resource including id (type and userId), propertyId, webPropertyId, and deletionRequestTime indicating when the request was received.
- **get_single_googleanalytics_data_retention_setting_by_id** — Get the singleton data retention settings for a property in Google Analytics. Requires property id. Returns dataRetentionSettings including retention duration and reset conditions.
- **update_a_googleanalytics_data_retention_setting_by_id** — Get data retention settings for a property in Google Analytics. Requires property. Returns eventDataRetention (event-level data retention duration), userDataRetention (user-level data retention duration), and resetUserDataOnNewActivity (boolean to reset retention on new user activity).

## How it works

1. **Link your customer's Google Analytics account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Google Analytics.** The Proxy API is a 1-to-1 mapping of the Google Analytics API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed GA4 traffic and conversion reports directly in your product** — SaaS platforms can query their customers' GA4 properties to display sessions, page views, conversions, and attribution data natively inside their own UI — eliminating the need for users to context-switch to Google Analytics.
- **Automate GA4 property and data stream provisioning for new customers** — Website builders, e-commerce platforms, and agency tools can programmatically create GA4 accounts, properties, and data streams when a user signs up, delivering zero-touch analytics setup without requiring manual GA configuration.
- **Configure conversion events and custom dimensions on behalf of users** — SaaS products can automatically define key events and custom dimensions in a customer's GA4 property, ensuring that business-critical actions tracked by the SaaS platform are properly registered as official KPIs in Google Analytics.
- **Extract behavioral audience segments for activation in your platform** — Marketing automation tools and CDPs can create and query GA4 audience exports to pull user segments like cart abandoners or high-intent visitors, then trigger campaigns or workflows based on those cohorts.
- **Build cross-platform analytics dashboards with normalized GA4 data** — Reporting and BI tools can pull GA4 metrics alongside data from other integrations, presenting a unified view of marketing performance, attribution, and ROI without requiring customers to manually export data.

## What you can build

- **Embedded website traffic dashboard** — Use the GA4 Data API to run reports and display real-time and historical traffic, source/medium breakdowns, and conversion metrics directly inside your product's UI.
- **One-click GA4 property setup for new sites** — Automatically provision a GA4 account, property, and web data stream when a user creates a new website or store, and inject the tracking snippet without any manual steps.
- **Automated key event and custom dimension configuration** — Programmatically create key events and custom dimensions in a customer's GA4 property to ensure your platform's actions are tracked as conversions and enriched with custom metadata.
- **Audience export pipeline for retargeting workflows** — Trigger audience exports from GA4, query the resulting user lists, and feed those segments into your email, SMS, or ad campaign automation engine.
- **GA4 account and property management console** — Let users browse, update, and manage their GA4 accounts, properties, data streams, and linked services (Firebase, Google Ads) from within your application.
- **Real-time activity feed powered by GA4** — Query the GA4 realtime reporting endpoint to show a live view of active users, top pages, and event counts as they happen on your customer's site.

## FAQs

### What authentication method does the Google Analytics integration use?

Truto handles OAuth 2.0 authentication with Google on your behalf. Your end users authorize access to their GA4 accounts through a standard OAuth consent flow, and Truto manages token refresh and storage automatically.

### Can I run custom reports with arbitrary metric and dimension combinations?

Yes. The integration supports running reports and pivot reports via the GA4 Data API, including batch runs. You can also use the compatibility check endpoint to verify that specific metric/dimension combinations are valid before querying, and the metadata endpoint to discover all available fields.

### Does the integration support both reading and writing to GA4?

Yes. You can read data via reporting endpoints (standard reports, realtime reports, audience exports) and manage GA4 configuration by creating, updating, and deleting properties, data streams, custom dimensions, custom metrics, key events, measurement protocol secrets, and linked services.

### How does Truto handle pagination for GA4 list endpoints?

Truto automatically handles pagination across all list endpoints — accounts, properties, data streams, custom dimensions, and more — so you receive complete result sets without managing page tokens yourself.

### Can I provision entirely new GA4 accounts programmatically?

Yes. The integration includes the account provisioning endpoint, which allows you to create new GA4 accounts. You can then chain this with property creation and data stream creation to fully automate analytics setup for your users.

### Is there a Unified API available for Google Analytics?

Google Analytics is mapped to Truto's Unified User Directory API for user-related operations. For analytics-specific workflows like reporting, property management, and event configuration, you use the Google Analytics-specific proxy endpoints which give you full access to the GA4 Admin and Data APIs.
