| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 6 天前 | ||
| 10 天前 | ||
| 10 天前 | ||
| 10 天前 |
@corsair-dev/googleanalytics
GA4 Admin API, Data API, and Measurement Protocol.
Authentication
OAuth 2 (oauth_2).
- In the Google Cloud Console, enable Google Analytics Admin API and Google Analytics Data API.
- Create a Web application OAuth client. Add the Corsair callback as a redirect URI.
- Give Corsair the client ID and secret. The flow requests:
https://www.googleapis.com/auth/analyticsfor Data API reportshttps://www.googleapis.com/auth/analytics.editfor Admin API reads and writes. The bareanalyticsscope is not enough for Admin calls.
Corsair refreshes the access token and retries once on 401.
measurementProtocol.sendEvents and validateEvents take an api_secret
from Admin, Data Streams, Measurement Protocol API secrets, plus either
measurementId (web) or firebaseAppId (app).
Endpoints
| Domain | Operations |
|---|---|
accounts |
get, list, listV1Beta, listSummaries, getDataSharingSettings, provisionAccountTicket |
properties |
get, list, listFiltered, update, createRollup, getAttributionSettings, getDataRetentionSettings, getGoogleSignalsSettings, getPropertyQuotasSnapshot |
dataStreams |
list, listMeasurementProtocolSecrets, listEventCreateRules, listSKAdNetworkConversionValueSchemas |
customDimensions |
create, get, list, archive |
customMetrics |
create, list |
keyEvents |
get, list |
conversionEvents |
list |
audiences |
get, list |
audienceExports |
create, get, list, query |
audienceLists |
create, get, list, query |
recurringAudienceLists |
create, get, list |
calculatedMetrics |
list |
channelGroups |
list |
expandedDataSets |
create, list |
links |
listGoogleAds, listBigQuery, listFirebase, listAdSense, listDV360Advertiser, listDV360Proposals, listSearchAds360 |
reports |
run, runRealtime, runPivot, runFunnel, batchRun, batchRunPivot, checkCompatibility, getMetadata |
reportTasks |
create, get, query, list |
reportingData |
listAnnotations, listSubpropertyEventFilters, listSubpropertySyncConfigs |
measurementProtocol |
sendEvents, validateEvents |
Provider quirks
dataStreams.listMeasurementProtocolSecretsreturnssecretValue. It is a write so readonly agent mode cannot dump stream secrets.properties.list(v1alpha, deprecated) needs afilterlikeparent:accounts/{account}orfirebase_project:projects/{project}.- Admin API
name/parentvalues are full resource names, e.g.properties/123orproperties/123/customDimensions/456. A bare numeric ID 404s. Reports (property) andproperties.updatealso accept123. - Measurement Protocol needs exactly one of
measurementIdorfirebaseAppId. validateEventshits the debug collect path and does not record hits.- Data API quotas are per property.
batchRun*burns them fast; checkproperties.getPropertyQuotasSnapshot.