Jump to a popular page, or start typing.

    CONNECTIONS / PostgreSQL / PostgreSQL to Google Customer Match

    Your PostgreSQL tables, wired to Google Customer Match.

    Signals reads your PostgreSQL tables through a read-only database user scoped to the PostgreSQL tables you name, then projects your segments into Google Ads as Customer Match lists so Google Ads sees match-ready audiences without an export.

    postgresql -> google-customer-match :: live

    1. ● postgresql → google.match :: live
    2. > read segments rows=48,126
    3. hash sha256(email,phone) consent=filtered
    4. route google deliver
    5. ✓ delivered · 35,132 matched

    WHAT THIS ENABLES

    PostgreSQL to Google Customer Match

    Google Customer Match for PostgreSQL: Signals projects your segments into Google Ads as Customer Match lists straight from your PostgreSQL tables, hashed and consent-screened each time the read runs.

    • Signals projects your segments into Google Ads as Customer Match lists, reading your PostgreSQL tables each time the read runs.
    • Lists that self-maintain across syncs, with no export step out of your PostgreSQL tables.

    WHAT FLOWS WHERE

    PostgreSQL to Customer Match, mapped.

    Signals reads the customer segments from your PostgreSQL tables each time the read runs, hashes and screens each record, and posts the match-ready audiences to Google Ads' Customer Match API, keeping the serving-size threshold in view.

    Signals reads the customer segments from your PostgreSQL tables each time the read runs, hashes and screens each record, and posts the match-ready audiences to Google Ads' Customer Match API, keeping the serving-size threshold in view.

    WHO THIS IS FOR

    Built for the teams that own the number.

    Growth teams feeding Google audiences from governed first-party data, working out of PostgreSQL tables, views, and materialized views.

    Engineering teams running PostgreSQL who need Customer Match lists that add joiners and drop lapsed members each sync out of PostgreSQL tables.

    HOW DATAHASH SETS IT UP

    From kickoff to verified events.

    1. Connect

      A read-only database user scoped to the PostgreSQL tables you name, mapped to Google Ads' Customer Match API and tuned for the serving-size threshold.

    2. Map

      Columns from your PostgreSQL tables align to Google Ads' Customer Match API in the visual mapper, hashed as the read runs and checked for the serving-size threshold.

    3. Deliver

      Each time the read runs, Signals reads your PostgreSQL tables and projects your segments into Google Ads as Customer Match lists, reads only the records changed since the last run, with the serving-size threshold watched in the debugger.

    WHAT YOU GET

    What ships with this use case.

    Customer Match lists that add joiners and drop lapsed members each sync from your PostgreSQL tables, delivered each time the read runs.

    Lists that self-maintain across syncs out of your PostgreSQL tables, delivered each time the read runs without read load on the database climbing.

    Match feedback on the serving-size threshold from Google Ads' Customer Match API each run, tied back to your PostgreSQL tables.

    ON THE WIRE

    What Customer Match actually receives.

    signals :: postgresql.google-customer-match :: wire

    1. ● signals :: audience upload
    2. > POST /user_list_operations source=postgresql.segments
    3. operation ADD · user_list "segment_93382"
    4. hashed_email sha256 "b02cf1…" · hashed_phone sha256 "3ad990…"
    5. members_uploaded 48,126 · members_matched 35,132
    6. ✓ accepted match=73%
    FAQ

    Asked on almost every call.

    How often does the PostgreSQL Google Customer Match 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 lists that self-maintain across syncs holds up on the serving-size threshold. The live debugger confirms every delivery inline.

    What match rate should a PostgreSQL-sourced Google Customer Match 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 the serving-size threshold, which engineering teams running PostgreSQL then raise inside your PostgreSQL tables.

    NEXT STEP

    PostgreSQL to Google Customer Match, in production this week.