Google Search Console → HookGet
HookGet reads Google Search Console's reporting API on a schedule and turns it into normalised events on the same pipeline as everything else you deliver.
In short
- Reads the Search Analytics API with the same service-account flow as GA4 — add the account as a user on the property, paste the JSON key.
- One event per settled day: clicks, impressions,
ctr_permilleand average position for the whole property. - Search data lags ~2–3 days at the source; days are read once, three days after they close.
- CTR arrives as an integer per-mille rather than a float — integers survive aggregation and eyeballs.
What it produces
| Read from the API | Becomes | Data |
|---|---|---|
| One settled day of the property | seo.performance_reported | clicks, impressions, ctr_permille, avg_position |
Set up
# Search Console -> Settings -> Users and permissions: add the service account email
curl -X POST https://api.hookget.com/v1/sources \
-H "authorization: Bearer $HOOKGET_KEY" \
-d '{"provider":"google-search-console",
"secret":"<the JSON key file, pasted whole>",
"config":{"site_url":"sc-domain:example.com"}}'
Stated plainly
The API aggregates the whole property per day — per-query and per-page breakdowns exist in the API but are high-cardinality by nature, and this connector deliberately does not turn ten thousand queries a day into ten thousand events. If you need query-level data, export it from Search Console; if you need the daily health of your search presence next to your other signals, that is this.
Questions
Which property format do I use?
Exactly what Search Console shows: sc-domain:example.com for a domain
property, or the full URL with trailing slash for a URL-prefix property. The config is
validated at creation, so a mismatch is a readable 400.