Jump to a popular page, or start typing.

    CONNECTIONS / Snowflake / Snowflake to Google OCI

    Snowflake's reconciled GCLID table, uploaded to Google as OCI.

    A GCLID is only useful if something keeps it attached to the deal it started. Signals reads the table your warehouse team already reconciles click IDs against closed revenue in, and uploads the matching conversion the moment that row lands.

    snowflake -> google-oci :: live

    1. ● snowflake → google.oci :: live
    2. > sync table GCLID_RECONCILED rows=15,840
    3. hash sha256(email,phone) gclid=carried
    4. route google.oci upload batch=nightly
    5. ✓ delivered · click conversion recorded

    WHAT THIS ENABLES

    Snowflake to Google Offline Conversion Import

    Snowflake to Google Offline Conversion Import reads a warehouse table where GCLID capture has already been reconciled against closed revenue, then uploads the click-based conversion to Google Ads so Smart Bidding sees deals that closed away from the browser.

    • Closed revenue in Snowflake attributed back to the exact click that opened the deal.
    • Smart Bidding trained on outcomes your warehouse already reconciles, not a spreadsheet export.
    • A scheduled upload standing in for whatever manual OCI process existed before it.
    WHAT FLOWS WHERE

    The click, the conversion, and the credit.

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

    Google credits the campaign that sourced the conversion conversion happens off-platform Ad click on Google Scheduled table sync recorded in Snowflake S Signals hash · dedupe Offline Conversion Impo… delivered · credited
    WHO THIS IS FOR

    Built for the teams that own the number.

    Google Ads advertisers whose reconciliation between clicks and closed deals already happens in Snowflake.

    Data teams tired of exporting a reconciled table to format an OCI upload by hand.

    HOW DATAHASH SETS IT UP

    From kickoff to verified events.

    1. Connect

      A read-only Snowflake role scoped to the table holding the reconciled GCLID and revenue columns.

    2. Map

      The GCLID column and the field marking a closed deal agreed in the visual mapper.

    3. Deliver

      Google Ads API upload on the reconciliation table's own refresh schedule, with an accepted count returned for every batch.

    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 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 Snowflake records the event.
    ON THE WIRE

    What OCI actually receives.

    signals :: snowflake.google-oci :: wire

    1. ● signals :: event payload
    2. > POST /offline_conversion_import source=snowflake.GCLID_RECONCILED
    3. gclid "Cj0KCQjw…" · conversion_action "closed_won"
    4. conversion_date_time "2026-07-06T11:20:00"
    5. conversion_value 31200 · currency_code AED
    6. ✓ accepted · batch=nightly
    FAQ

    Asked on almost every call.

    Is a Snowflake row missing a GCLID recoverable for OCI?

    Not through OCI itself, since that upload keys strictly off the click ID and has no fallback identifier to lean on. Because the join between clicks and revenue lives in your own warehouse job, the fix is tightening whatever step populates GCLID before the read runs, and pairing OCI with Enhanced Conversions for Leads on the same table catches the rows that still arrive without one.

    How long after the reconciliation job runs does the conversion appear in Google Ads?

    Uploads run on whatever schedule the reconciled table refreshes, commonly nightly, and Google generally processes an OCI batch within a few hours of receiving it. A row written to Snowflake tonight is usually visible in Google Ads reporting by the next business day.

    Does Datahash run the reconciliation logic that joins GCLID to closed revenue?

    No. That join is assumed to already exist as a table or dbt model in your warehouse, and Signals reads its output rather than building the reconciliation itself. If no such table exists yet, we help scope what it needs to contain before the read role is granted.

    NEXT STEP

    Snowflake to Google OCI, in production this week.