Jump to a popular page, or start typing.

    CONNECTIONS / MySQL / MySQL to Google Store Sales

    From MySQL tables to Google Store Sales matching.

    Signals reads your MySQL tables through a read-only database user scoped to the MySQL tables you name, then matches in-person transactions to Google accounts as store-sales conversions so Google Ads sees offline conversions without an export.

    mysql -> google-store-sales :: live

    1. ● mysql → google.sales :: live
    2. > read closed_deals rows=35,578
    3. hash sha256(email,phone) consent=filtered
    4. route google deliver
    5. ✓ delivered · 29,174 matched

    WHAT THIS ENABLES

    MySQL to Google Store Sales

    MySQL to Google Store Sales: Signals reads your MySQL tables and matches in-person transactions to Google accounts as store-sales conversions, hashed and consent-checked each time the read runs.

    • Signals matches in-person transactions to Google accounts as store-sales conversions, reading your MySQL tables each time the read runs.
    • Store visits reconciled to campaign spend, with no export step out of your MySQL tables.
    WHAT FLOWS WHERE

    The click, the conversion, and the credit.

    The conversion happens off Google, away from any pixel. Here is how MySQL closes the loop.

    Google credits the campaign that sourced the conversion conversion happens off-platform Ad click on Google Scheduled read sync recorded in MySQL S Signals hash · dedupe Store Sales Direct API delivered · credited
    WHO THIS IS FOR

    Built for the teams that own the number.

    Omnichannel retailers reconciling point-of-sale against Google spend, working out of MySQL tables and views.

    Application teams on MySQL who need counter and showroom revenue inside the same ROAS view as online orders out of MySQL tables.

    HOW DATAHASH SETS IT UP

    From kickoff to verified events.

    1. Connect

      A read-only database user scoped to the MySQL tables you name, mapped to Google Ads' Store Sales Direct API and tuned for the store-sales match rate.

    2. Map

      Columns from your MySQL tables align to Google Ads' Store Sales Direct API in the visual mapper, hashed as the read runs and checked for the store-sales match rate.

    3. Deliver

      Each time the read runs, Signals reads your MySQL tables and matches in-person transactions to Google accounts as store-sales conversions, reads only the records changed since the last run, with the store-sales match rate watched in the debugger.

    WHAT YOU GET

    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 Store Sales 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 MySQL records the event.
    ON THE WIRE

    What Store Sales actually receives.

    signals :: mysql.google-store-sales :: wire

    1. ● signals :: store sales upload
    2. > POST /offline_user_data_jobs source=mysql.closed_deals
    3. transaction_time 2026-07-20T16:12:20 · transaction_amount_micros 43992000000
    4. currency_code AED
    5. hashed_email sha256 "6d2e91…" · hashed_last_name sha256 "cc410a…"
    6. ✓ accepted match=82%
    FAQ

    Asked on almost every call.

    How often does the MySQL Google Store Sales sync run?

    Delivery tracks MySQL, run by application teams on MySQL: a near-real-time or scheduled sync of your MySQL tables feeds Google Ads on that cadence. Each run reads only the records changed since the last run, so store visits reconciled to campaign spend holds up on the store-sales match rate. The live debugger confirms every delivery inline.

    What match rate should a MySQL-sourced Google Store Sales batch expect?

    Coverage of hashed identifiers across your MySQL tables decides it, and application teams on MySQL own that inside MySQL. A live email or phone matches into Google Ads; neither, and it will not. First-run feedback flags the store-sales match rate, which application teams on MySQL then raise inside your MySQL tables.

    NEXT STEP

    MySQL to Google Store Sales, in production this week.