Google Analytics as MarkdownUse a clean Markdown version of this page with an agent or local tooling.
Google Analytics guides
Connect GA4 and start reading traffic and conversion data.
Connect with Google OAuth
Use a key with analytics:write. Start authorization, send the user to the returned URL, let Signal's public callback finish the exchange, then list accounts and properties and select a property.
Start Google authorizationcURL
curl --request POST \
--url 'https://api.signal.ceyo.ai/v1/projects/{project_id}/analytics/connect' \
--header "Authorization: Bearer ${SIGNAL_API_KEY}"Required package settingThe scope's package must enable
advanced.google_analytics_enabled.Use an external token source
Create a workspace token source when your platform manages Google access tokens. Attach it to a project or location with your external resource ID and GA4 property ID, then trigger a sync.
Attach an external token sourcecURL
curl --request PUT \
--url 'https://api.signal.ceyo.ai/v1/projects/{project_id}/analytics/external_source' \
--header "Authorization: Bearer ${SIGNAL_API_KEY}" \
--header 'Content-Type: application/json' \
--data '{"token_source_id":"{token_source_id}","external_resource_id":"customer-123","property_id":"properties/123456"}'Fetch analytics data
Use analytics:read to fetch the overview, referrals, conversions, conversion events, or landing pages. The same endpoints work for locations by inserting /locations/{location_id} before /analytics.
Fetch a 30-day overviewcURL
curl --request GET \
--url 'https://api.signal.ceyo.ai/v1/projects/{project_id}/analytics?days=30' \
--header "Authorization: Bearer ${SIGNAL_API_KEY}"Sync is asynchronousA sync request returns
202. Poll the connection until syncing_since is null and last_synced_at changes.