Data & Analytics

Connect Google Ads to Stripe: Two Documented Ways to Count Paid Sales as Conversions

How to connect Google Ads to Stripe: GA4 purchase events imported as conversions, or GCLID offline imports via Stripe metadata. Steps and limits.

Vexlynk
Vexlynk Team · November 3, 2026 · 8 min read
Leer en español

If you want to connect Google Ads to Stripe, you probably have a simple question that’s oddly hard to answer: which of the clicks you paid for turned into money? Google Ads knows who clicked. Stripe knows who paid. Neither one knows what the other saw. This post walks through the two ways Google and Stripe document, as of November 2026, for getting paid sales back into Google Ads as conversions, what each one asks of you, and how to keep traffic and revenue side by side even before any of that is wired.

Is there a direct way to connect Google Ads to Stripe?

Not as a switch you turn on. In the Google Ads and Stripe documentation we checked, there’s no built-in link that sends Stripe payments into Google Ads. What both sides do document are the pieces you assemble yourself:

  • Route A: through Google Analytics 4. Send a GA4 purchase event when Stripe confirms a payment, then import that event into Google Ads as a conversion.
  • Route B: offline conversion import. Save the Google Click ID (GCLID) from the ad click, carry it through checkout in Stripe metadata, and upload paid conversions to Google Ads.

Route A is easier if you already run GA4. Route B gives you more control, for example when the real sale happens days after the click, or outside your website.

Route A: Stripe purchases into GA4, then GA4 into Google Ads

This route has two halves.

Step 1: get Stripe purchases into GA4

Stripe Checkout doesn’t send sales to GA4 by itself. You fire a purchase event from your success page or, more reliably, from your server when Stripe’s checkout.session.completed webhook arrives. We wrote that part up in detail in how to connect Stripe to Google Analytics 4, including the referral exclusion for the Stripe checkout domain and how to avoid counting a sale twice. Do that first; nothing below works without it.

Step 2: turn the GA4 event into a Google Ads conversion

Google’s help article “Create Google Ads conversions based on Google Analytics key events” lists two prerequisites:

  • Link Google Analytics and Google Ads.
  • Enable auto-tagging in your Google Ads account.

Then you open conversion management, click New conversion, select the Google Ads account, select the events or key events you want as conversions (here, your purchase event), review and save. Google notes you need at least Marketer access to import key events as conversions.

The upside: your GA4 purchase event, with its value and currency, now counts as a conversion in Google Ads. The weak spot is the same as on the GA4 side: if the purchase event never fires, Google Ads never hears about it.

Route B: offline conversion import with the GCLID and Stripe metadata

Google describes offline conversion import as a way to “measure what happens in the offline world after your ad results in a click or call to your business.” For a Stripe business, “offline” simply means “outside the ad click”: the payment happens later, on Stripe.

Google’s article Set up offline conversions using Google Click ID (GCLID) lays out the flow. Here it is, with the Stripe pieces added:

  • Turn on auto-tagging. Google gives a unique GCLID for every click that comes to your website from an ad. Google also notes the GCLID is case sensitive.
  • Create an offline conversion action. In Google Ads, go to the Goals summary, create the conversion action and connect a data source. Google says your setup won’t be active until a data source is connected.
  • Capture the GCLID on your site. Google’s instructions add a hidden GCLID field to forms and a script that stores the GCLID in a cookie or local storage, placed on every page, not only landing pages.
  • Carry it through Stripe. When you create the Checkout Session, add the GCLID as metadata. Stripe describes metadata as key-value pairs you attach to objects “for your own use and reference.” Stripe also says metadata doesn’t copy to related objects automatically; if you want it on the PaymentIntent or the subscription, set it with payment_intent_data.metadata or subscription_data.metadata when you create the session.
  • Listen for the payment. Stripe sends a checkout.session.completed event that includes the session’s metadata to your webhook endpoint. Your handler now has the GCLID, the amount and the time.
  • Upload the conversion. Send the GCLID, the conversion name, the conversion time and the value to Google Ads, through a data source connected in Google’s Data Manager or through the Google Ads API.

The timing rules Google sets

  • Wait before the first upload. Google says to wait 4–6 hours after creating a new conversion action before uploading conversions to it.
  • 90 days. Google’s guidelines say conversions uploaded more than 90 days after the associated last click won’t be imported. For enhanced conversions for leads, the limit is 63 days.
  • About 3 hours. Google says imported conversion statistics take about 3 hours to appear in your account.
  • No double counting. Google says the same conversion won’t be imported more than once: same GCLID, conversion name, date and time.

Google also says that when Data Manager reads from Google Sheets (and several file sources), it imports conversions from the last 90 days on every run. That makes a small sheet of “GCLID, time, value” rows, filled from your Stripe webhook, a workable middle ground if you’d rather not call the API.

An example, to make it concrete

Example only: someone clicks your ad for a design course on a Monday. Your site stores the GCLID. On Thursday they come back and pay through Stripe Checkout. Your server created the session with metadata[gclid], so the checkout.session.completed event carries it. Your handler writes one row with the GCLID, Thursday’s timestamp and the course price. Google Ads now attributes that sale to Monday’s click.

Which route should you pick?

  • You already send purchase events to GA4: Route A. It’s the least new code.
  • Sales close days later, by invoice or after a call: Route B. The GCLID survives the gap if you store it.
  • You have no developer and no webhook: neither yet. Start by putting traffic and revenue side by side so you can see the pattern, then decide whether attribution is worth the build.

Seeing ad-driven traffic next to Stripe revenue in Vexlynk

To be clear up front: Vexlynk doesn’t connect to Google Ads. There is no Google Ads source today; ad-platform cards are on our roadmap. What Vexlynk does have is the two ends of the question on one board.

  • A Google Analytics card for your GA4 property: traffic, acquisition channels and geography. You connect it with Google’s own consent screen and pick the property.
  • A Stripe card with your own account’s revenue, subscriptions and recent payments, read-only, connected with an API key that’s stored encrypted.

With both on the board, the AI agent can answer questions that span them, for example: “Traffic on the Google Analytics card went up this week. Did Stripe revenue move with it?” It answers from the cards on your board and tells you when something depends on data you haven’t connected. It won’t claim a click caused a sale; that’s what Route A or B is for. For a GA4 setup that stays readable, see a simple Google Analytics dashboard. If you run ads on more than one platform, how to see Meta, Google and Amazon ads in one view covers that side, and Stripe + YouTube applies the same thinking to videos. The full list of what you can connect is on the sources page.

When this isn’t the right fit

  • You need bidding to optimize on Stripe revenue. That needs conversions inside Google Ads. Build Route A or B; a board won’t feed Google’s bidding.
  • You need spend, cost per click or campaign data on a card. Vexlynk has no Google Ads source today, so those numbers stay in Google Ads.
  • You want per-click attribution. Use the GCLID route. Comparing two cards shows patterns, not which click paid.

Put traffic and revenue on one board

Wire the conversion tracking your ads need, and keep the bigger picture where you can see it. Try Vexlynk in your browser or get the desktop app at vexlynk.app/experience. Setup for Google Analytics and Stripe is in the docs under Connecting Sources, and you can see plans any time.

Frequently asked questions

Does Stripe have a Google Ads integration?

We didn’t find one in Stripe’s or Google’s documentation as of November 2026. The documented paths are GA4 purchase events imported into Google Ads, or offline conversion import using the GCLID.

Where do I store the GCLID in Stripe?

In metadata on the Checkout Session, and on the PaymentIntent or subscription if you need it there too. Stripe allows 50 keys per object, with keys up to 40 characters and values up to 500. Stripe warns never to store sensitive information such as card or bank details in metadata.

How long do I have to upload a Stripe sale to Google Ads?

Google says conversions uploaded more than 90 days after the last click won’t be imported, so upload regularly rather than once a quarter.

Can Vexlynk show my Google Ads campaigns?

Not today. Ad-platform cards are on our roadmap. You can place Google Analytics and Stripe cards side by side and ask the agent about both.

Vexlynk

Vexlynk Team

More from Vlynk