---
title: "Google Analytics Select Property"
method: PUT
path: "/integrations/google-analytics/property"
tags: ["google_analytics"]
---

# Google Analytics Select Property

`PUT /integrations/google-analytics/property`

Persist which property this tenant reports on.

The chosen property is re-read from Google rather than taken on trust: the
request says what the operator picked, not what is true. That check is also
what catches a property the grant cannot reach — and a measurement ID pasted
where a property ID belongs — before it is stored and discovered later as an
opaque failure inside a tool call.

## Request body

- GoogleAnalyticsPropertySelection — The operator's choice. Re-verified server-side — a request is a choice, not a fact.
  - `property_id` string, required

## Response `200`

Successful Response

- GoogleAnalyticsProperty — One GA4 property this grant can reach. Deliberately has no ``selectable`` / ``unselectable_reason``. Google Ads needs those because a manager account is listed but cannot be reported on; every property ``accountSummaries`` returns is one the grant can read, so modelling a case that cannot occur would be excess.
  - `property_id` string, required
  - `display_name` string, required
  - `account_display_name` string, nullable
  - `currency_code` string, nullable
  - `time_zone` string, nullable

## Other responses

- `400` — Property cannot be selected
- `401` — Grant no longer valid
- `409` — Not connected, or Google refused the request
- `422` — Validation Error
- `502` — Google Analytics unreachable
- `503` — Google Analytics not configured

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getanana/cleon-api/revisions/c0f54348e251/schema)
