CONNECTIONS / PostgreSQL / PostgreSQL to Google OCI
Your PostgreSQL tables, wired to Google Ads offline conversion import.
Signals reads your PostgreSQL tables through a read-only database user scoped to the PostgreSQL tables you name, then reconciles closed-won revenue to the Google Ads click through GCLID so Google Ads sees offline conversions without an export.
- ● postgresql → google.oci :: live
- > read closed_deals rows=30,490
- hash sha256(email,phone) consent=filtered
- route google deliver
- ✓ delivered · 25,917 matched
WHAT THIS ENABLES
PostgreSQL to Google Offline Conversions
Google Offline Conversions for PostgreSQL: Signals reconciles closed-won revenue to the Google Ads click through GCLID straight from your PostgreSQL tables, hashed and consent-screened each time the read runs.
- Signals reconciles closed-won revenue to the Google Ads click through GCLID, reading your PostgreSQL tables each time the read runs.
- A clean line from click to closed revenue, with no export step out of your PostgreSQL tables.
The click, the conversion, and the credit.
The conversion happens off Google, away from any pixel. Here is how PostgreSQL closes the loop.
Built for the teams that own the number.
Engineering teams running PostgreSQL who need Smart Bidding trained on booked revenue instead of a mid-funnel proxy out of PostgreSQL tables.
From kickoff to verified events.
-
Connect
A read-only database user scoped to the PostgreSQL tables you name, mapped to Google Ads' Offline Conversion Import (Google Ads API) and tuned for GCLID coverage.
-
Map
Columns from your PostgreSQL tables align to Google Ads' Offline Conversion Import (Google Ads API) in the visual mapper, hashed as the read runs and checked for GCLID coverage.
-
Deliver
Each time the read runs, Signals reads your PostgreSQL tables and reconciles closed-won revenue to the Google Ads click through GCLID, reads only the records changed since the last run, with GCLID coverage watched in the debugger.
What changes when the CSV goes away.
| Capability | Manual CSV upload | Datahash |
|---|---|---|
| Reporting | Offline sales sit in a separate export, reconciled by hand. | Revenue counted in the same OCI reporting as web conversions. |
| Deduplication | A re-uploaded file risks counting the same conversion twice. | Deduped delivery, so a resent record never counts as a second conversion. |
| Match visibility | Match quality is a guess until the numbers look off. | Match rate reported per upload, tied to the source event set that produced it. |
| Effort and latency | An analyst exports and uploads on a manual cadence. | Server-side and automatic the moment PostgreSQL records the event. |
What OCI actually receives.
- ● signals :: event payload
- > POST /offline_conversion_import source=postgresql.closed_deals
- gclid "Cj0KCQjw…" · conversion_action "closed_won"
- conversion_date_time "2026-07-19T16:16:23"
- conversion_value 28722 · currency_code SAR
- ✓ accepted · batch=hourly
Adjacent moves on the same stack.
from PostgreSQL
PostgreSQL to Google Store Sales
Google Store Sales for PostgreSQL: Signals matches in-person transactions to Google…
Learn morefrom PostgreSQL
PostgreSQL to Meta Offline CAPI
Meta Offline CAPI for PostgreSQL: Signals credits dealer, branch, and phone sales to the…
Learn moresame use case
ActiveCampaign to Google OCI
ActiveCampaign to Google Offline Conversions: Signals reads your ActiveCampaign contacts…
Learn moregeneric
Google Offline Conversion Import
Datahash automates GCLID-based OCI uploads to Google Ads so click-based offline conversions…
Learn moreAsked on almost every call.
How often does the PostgreSQL Google OCI sync run?
Delivery tracks PostgreSQL, run by engineering teams running PostgreSQL: a near-real-time or scheduled sync of your PostgreSQL tables feeds Google Ads on that cadence. Each run reads only the records changed since the last run, so a clean line from click to closed revenue holds up on GCLID coverage. The live debugger confirms every delivery inline.
What match rate should a PostgreSQL-sourced Google OCI batch expect?
Coverage of hashed identifiers across your PostgreSQL tables decides it, and engineering teams running PostgreSQL own that inside PostgreSQL. A live email or phone matches into Google Ads; neither, and it will not. First-run feedback flags GCLID coverage, which engineering teams running PostgreSQL then raise inside your PostgreSQL tables.
NEXT STEP