E-commerce

ChatGPT Shopping Revenue Attribution: How to Track Products Recommended by AI in 2026

A 2026 guide to ChatGPT Shopping revenue attribution: why visibility tools stop at appearance metrics, why GA4 cannot attribute AI-recommended SKUs, and how to track dollar-per-recommended-product with a Stripe-native, cookieless stack.

Part of the AI Search Hub — browse all 35 AI Search guides.

A DTC founder I work with started showing up in ChatGPT Shopping for "best merino base layer under $90" sometime in late February. He knew because a customer told him, then he asked ChatGPT himself and watched his product card render third in the list with a price and a rating. He bought a Profound subscription, confirmed he was holding a respectable share of voice on a dozen category queries, and walked into his March board meeting with a slide titled "We are winning in AI shopping." The board's first question was the one the slide could not answer: how many dollars did that produce. He did not know. His GA4 said ChatGPT Shopping drove zero revenue, because GA4 had quietly filed every one of those visits under Direct.

That gap, between "we appear in the recommendations" and "the recommendations paid us," is the entire subject of this article. It is not a tooling nitpick. It is the difference between a vanity metric and a line item, and in 2026 it is where most AI-shopping strategies stall.

This is the e-commerce companion to the ChatGPT referral analytics guide, which covers why AI traffic hides in Direct, and the Shopify revenue attribution guide, which covers the broader Shopify stack. This piece is narrower and deeper on one thing: attributing settled dollars to the specific products that ChatGPT recommended. If you have read those two, skim sections 2 through 4 here; sections 5 through 11 are new ground built around SKU-level attribution.

ChatGPT Shopping attribution maturity curve: visibility tools measure appearance (share of voice, position), revenue attribution measures settled dollars per recommended SKU, with the two roughly six months apart

Quick Facts

MetricValueSource
ChatGPT Shopping product-recommendation launchApril 2025, all usersOpenAI / Search Engine Land [1][3]
ChatGPT weekly active users (Q4 2025)~400 millionOpenAI update [4]
ChatGPT daily message volume (Dec 2024)~1 billionThe Verge / OpenAI [5]
OpenAI stance on Shopping resultsOrganic, not ads, no affiliate kickbackOpenAI shopping announcement [2]
ChatGPT referrer pass-through (human clicks)Single-digit to ~20%Plausible measurement [6]
GA4 default channel for ChatGPT ShoppingDirect/(none); no built-in AI ruleGoogle Analytics docs [7]
Median % of ChatGPT visits hidden in GA4 Direct (2026)~71%Attrifast aggregate, n=38
ChatGPT-recommended SKU AOV vs blended organic+12-22%Attrifast aggregate, Q1-Q2 2026
Perplexity Shopping launch (Buy with Pro, merchant feed)Late 2024Perplexity / Modern Retail [8][9]
Amazon Rufus shopping assistant general availability2024-2025Amazon / Digital Commerce 360 [10][11]
Walmart AI shopping / Sparky assistant2024-2025 rolloutWalmart / Modern Retail [13]
Shopify Catalog / merchant feed exposure to AI surfaces2025+Shopify / Digital Commerce 360 [14][15]
Profound Shopping (appearance metrics)Share of voice, position, mentionsProfound features page [12]
Schema fields most load-bearing for product recommendationProduct, Offer, AggregateRatingSchema.org / Google merchant docs [16][17]

Two numbers frame the whole piece. The April 2025 launch date [1] is the supply-side fact: ChatGPT Shopping has been a live product-recommendation surface for over a year, long enough to be a real channel and long enough that ignoring it is now a choice. The +12-22% AOV lift on recommended SKUs is the demand-side fact: when these buyers do convert, they spend more, which is exactly why leaving the channel in the Direct bucket is an expensive mistake.

What ChatGPT Shopping actually does in 2026

ChatGPT Shopping is the product-recommendation surface inside ChatGPT. When a user asks a shopping-shaped question ("best espresso machine under $500," "waterproof hiking boots for wide feet," "a gift for a 7-year-old who likes dinosaurs"), ChatGPT renders a set of product cards: an image, a name, a price, a rating, a short rationale, and a link out to a place to buy. OpenAI introduced this experience broadly in April 2025, making it available to signed-in and logged-out users, and has consistently described the results as organic, chosen independently of any advertising or affiliate relationship [1][2][3].

The surface is worth being precise about, because the attribution rules differ by component.

ComponentWhat the user seesAttribution relevance
Product cardsImage, name, price, rating, buy linkThe click that lands on your SKU page
Rationale text"Good for X because Y" sentence per productDrives click intent; not directly trackable
Comparison viewSide-by-side specs across recommended productsHigher-consideration; longer time-to-payment
Buy link / outbound clickDeep link to a product page or retailerThe trackable referral event
Inline citationsSources the model drew the rec fromVisibility signal; not a click to you
Follow-up refinement"Cheaper options," "in blue," "under $50"Re-ranks SKUs; can change the recommended SKU mid-session

The mechanical fact that matters for attribution: the buy link is the only component that produces a measurable event on your side, and the buy link deep-links to a specific product URL, not your homepage. That single property, the landing-on-a-specific-SKU shape, is the strongest behavioral fingerprint you have for an AI product recommendation, and it is the foundation of SKU-level attribution later in this piece.

A few clarifications on what ChatGPT Shopping is and is not in 2026:

ClaimStatus
Results are organic, not paid adsOpenAI's stated position [2]
OpenAI takes an affiliate cut on purchasesNot as a general model per OpenAI statements; verify current terms [2]
ChatGPT passes a conversion pixel to merchantsNo merchant-facing conversion callback from Shopping itself
Recommendations include price and availabilityYes, when the product feed and Offer schema supply them
The same query returns the same products every timeNo; results vary by session context, refinement, and time
It is the same as ChatGPT SearchRelated surface, different intent; Shopping is product-card-shaped
Logged-out users see itYes, since the April 2025 broad rollout [1]

The "no merchant-facing conversion callback" row is the one that quietly creates the entire attribution industry around this surface. Because ChatGPT Shopping does not hand you a conversion report, you are responsible for instrumenting it. If you wait for OpenAI to send you a number, you will wait forever. The merchant owns the measurement.

How Shopping recommendations get selected

You cannot attribute revenue from a surface you do not understand, so a short detour into selection. ChatGPT Shopping does not recommend products from a single source. It blends several, and the merchant's controllable inputs sit in a subset of them.

Signal sourceWhat it contributesMerchant control
Merchant product feedsPrice, availability, image, identifiersHigh (you supply the feed)
Structured data (Product/Offer schema)Parseable price, brand, GTIN, ratingHigh (you author it)
Third-party reviews and roundups"Best of" articles, expert reviewsMedium (earned, not owned)
Retailer integrationsListings via Shopify, Amazon, Walmart feedsMedium (depends on platform)
Open-web crawl (GPTBot, OAI-SearchBot)Product page content, specs, FAQsHigh (your site content)
User context and refinementBudget, size, prior turns in the conversationNone (model-side)

The high-control rows are where the merchandising and content teams earn their keep. The selection logic broadly rewards the same things a careful comparison shopper rewards: a clear product with a verifiable price, in stock, with credible reviews, on a page a crawler can read. The model is not doing magic; it is doing structured retrieval over a corpus you can largely shape.

A simplified view of how a query becomes a recommendation:

The refinement loop at node G is the part that complicates attribution. A user can be recommended SKU A, refine to "cheaper," get recommended SKU B, and click through to B. The recommended SKU is not fixed for the session; it is the SKU at the moment of the click. Your attribution has to capture the landing SKU, not an assumed recommendation, which is exactly why the landing-SKU data point is one of the four pillars later.

What you can and cannot influence, summarized:

LeverInfluence on getting recommendedInfluence on the recommended price showing
Complete Product schemaHighMedium
Valid Offer schema (price, availability)MediumHigh
Review / AggregateRating schemaHighLow
Clean, current merchant feedHighHigh
Crawlable product page (no JS-only content)HighMedium
Competitive priceMediumDirect (shows the price)
Third-party "best of" coverageHighLow
Brand entity disambiguation (sameAs)MediumLow

Why GA4 attribution fails for ChatGPT Shopping

GA4 fails here in the same three ways it fails for all AI traffic, plus a fourth failure specific to Shopping. The first three are covered at length in the ChatGPT referral analytics guide; the short version with the Shopping-specific addition:

FailureMechanismEffect on Shopping attribution
Stripped refererChatGPT client suppresses Referer on most outbound clicksSession filed as Direct/(none); never tagged AI
No default AI channel ruleGA4 has no chatgpt.com channel grouping [7]Surviving referers land in generic Referral, unlabeled
No UTM on AI linksChatGPT does not append utm_source to buy linksNo marketer-set tag to read
No recommended-SKU conceptGA4 ecommerce attributes item revenue to session channelCannot tell recommended SKU from browsed SKU

The fourth row is the one specific to Shopping and the one most operators have never thought about. GA4 enhanced ecommerce can tell you which items were purchased in a session and attribute that item revenue to whatever channel GA4 assigned the session. But GA4 has no concept of "the SKU that was recommended by an external AI." So even in the impossible best case where GA4 correctly tagged the session as ChatGPT (it does not), it still could not tell you whether the AI-recommended product is the one that sold, or whether the user landed on the recommended SKU, browsed away, and bought something else.

That distinction is the whole ballgame for merchandising decisions. Consider three sessions that all start with a ChatGPT Shopping click on the same recommended SKU:

SessionRecommended SKUWhat soldCorrect attribution
1Merino base layer, $89Merino base layer, $89Full credit to recommended SKU
2Merino base layer, $89Merino base layer + socks, $112Recommended SKU + halo cart
3Merino base layer, $89Down jacket, $240 (browsed away)AI assist, different SKU sold

GA4 collapses all three into "Direct session, $X revenue." A visibility tool sees none of them because it never touches your cart. Only a stack that captures the landing SKU and joins it to the settled cart line items can produce the third column, and the third column is what tells you whether your ChatGPT-recommended SKUs are pulling their own weight or just acting as a top-of-funnel doorway.

A worked example of how the GA4 view misleads on a real-shaped store:

MetricWhat GA4 reportedWhat was actually true
ChatGPT Shopping revenue$0 (all in Direct)~$3,400/mo settled, SKU-attributable
Recommended SKU sell-throughunknown61% of recommended-SKU sessions bought that SKU
Halo revenue (other SKUs in cart)counted as Direct~$900/mo from AI sessions buying adjacent SKUs
AOV on AI-recommended sessionsblended into Direct$96 vs $79 blended store AOV

The 4 attribution data points: referrer, landing SKU, time-to-cart, time-to-payment

SKU-level ChatGPT Shopping attribution rests on four data points captured on a first-party session row and joined to a payment. Miss any one and the chain breaks somewhere specific.

Data pointWhat it answersWhere it is capturedFailure if missing
1. Referrer / AI sourceDid this session come from ChatGPT Shopping?Server-side on landing (referer + behavioral)Cannot attribute to AI at all
2. Landing SKUWhich product did the recommendation deep-link to?First page-view URL on entryCannot tell recommended SKU from browsed SKU
3. Time-to-cartDid the recommended SKU enter the cart, and how fast?Add-to-cart event on session rowCannot distinguish assist from direct conversion
4. Time-to-paymentWhich Stripe charge settled, with which line items?Stripe webhook joined to session idNo revenue; only traffic

Data point 1: the referrer

Detection is the same four-layer pattern from the track-ChatGPT-traffic playbook: UTM on URLs you control, bot exclusion, referer fingerprinting against the AI-domain list, and behavioral inference for the no-referer majority. For Shopping specifically, the behavioral signal is unusually strong because the entry lands on a deep product-detail URL.

Entry shapeLikely sourceConfidence
Referer chatgpt.com, lands on /products/<slug>ChatGPT Shopping clickHigh
No referer, new visitor, lands on deep /products/<slug>Suspected AI ShoppingMedium-high
No referer, new visitor, lands on homepageGeneric directLow
Referer chatgpt.com/searchChatGPT Search (not Shopping)Medium
UTM-tagged product URL you publishedYour own citationHigh

Data point 2: the landing SKU

The first page-view URL on a suspected-AI entry is the recommended SKU. Parse the product identifier from the URL path or the page's Product schema and persist it on the session row. This is the data point GA4 has no slot for and the one that makes SKU-level attribution possible.

Data point 3: time-to-cart

Capture the add-to-cart event and the SKU added, with a timestamp delta from landing. Two patterns emerge in the data:

PatternTime-to-cartInterpretation
Recommended SKU added quickly< 3 minHigh-fit recommendation; direct conversion likely
Recommended SKU added after browsing3-20 minConsidered purchase; comparison behavior
Different SKU addedanyAI assist; recommendation was a doorway
No cart eventn/aResearch-only visit; brand exposure

Data point 4: time-to-payment

The Stripe checkout.session.completed (or charge.succeeded) webhook carries the settled amount and, if you wrote them, the cart line items in metadata. Joining on the session id closes the loop. Time-to-payment for AI Shopping traffic skews longer than Google Shopping because the journey is research-led:

SourceMedian time-to-paymentProfile
Google Shoppingminutes to same-dayImpulse / high-intent
ChatGPT Shoppinghours to 3 daysResearch-led / considered
Perplexity Shoppinghours to 2 daysDeep research / high AOV

The full join, end to end:

Setting up ChatGPT Shopping tracking in Shopify (CAPI + Stripe webhook)

The Shopify case reuses the stack from the Shopify revenue attribution guide, with the Shopping-specific additions of landing-SKU capture and recommended-SKU reporting. Shopify Payments runs on Stripe under the hood [18], so the Stripe-webhook join applies to any Shopify store using Shopify Payments.

StepWhat you configureTimeCost
1Customer Events Server Pixel (page_viewed, product_viewed, added_to_cart, checkout_completed)15 minFree
2First-party tracker captures landing SKU + AI source10 min$29/mo tier
3Bind session id to order at checkout (checkout extension)15 minFree
4Stripe webhook (Shopify Payments) join on settled charge10 minFree
530-day baseline audit of the recommended-SKU report2 hrone-time

Step 1: Server Pixel with product context

In Shopify admin, Settings → Customer events, add a Server Pixel subscribing to product_viewed and product_added_to_cart with the variant/SKU id in the payload [19]. The Server Pixel runs server-side, unaffected by ad blockers or ITP, and is the difference between reliable and unreliable storefront data in iOS-heavy mixes.

Step 2: Capture the landing SKU on AI entries

The first-party tracker reads the entry URL and the Product schema on the landing page, records the SKU, and tags the session AI-source when the referer or behavioral fingerprint matches. The product_viewed Server Pixel event corroborates the SKU server-side.

Step 3: Bind the session to the order

At checkout, carry the first-party session id into the order via a checkout extension or cart attribute so the order webhook can be joined back to the session row. This is the join that survives the referer being long gone.

Step 4: The Stripe webhook (Shopify Payments)

A minimal handler that reads cart line items and attributes settled dollars to the recommended SKU:

// Stripe webhook handler (Shopify Payments runs on Stripe)
export async function POST(req) {
  const event = await verifyStripeSignature(req) // never trust unsigned input
  if (event.type !== 'checkout.session.completed') return ok()

  const session = event.data.object
  const sessionId = session.metadata?.attrifast_session_id
  if (!sessionId) return ok() // no first-party join key; skip silently

  // Idempotency: skip if we've already recorded this Stripe session
  if (await alreadyRecorded(session.id)) return ok()

  const sessionRow = await getSessionRow(sessionId)
  const aiSource = sessionRow?.aiSource ?? null        // e.g. 'chatgpt-shopping'
  const recommendedSku = sessionRow?.landingSku ?? null

  // line_items carry the SKUs that actually settled
  const lineItems = await stripe.checkout.sessions.listLineItems(session.id)

  for (const item of lineItems.data) {
    const soldSku = item.price?.metadata?.sku ?? item.description
    const amount = item.amount_total // cents, settled
    await recordAttribution({
      sessionId,
      aiSource,
      recommendedSku,
      soldSku,
      amount,
      // halo flag: sold a different SKU than the AI recommended
      isHalo: recommendedSku != null && soldSku !== recommendedSku,
      stripeSessionId: session.id,
    })
  }
  return ok()
}

The isHalo flag is the Shopping-specific payoff: it separates revenue where the AI-recommended SKU is the one that sold from revenue where the recommendation was a doorway to a different purchase. That split is invisible in GA4 and in every visibility tool.

Step 5: The baseline audit

After 30 days, compare Shopify's Direct bucket to the recommended-SKU report. The typical first-month finding is a chunk of previously-Direct revenue resolving to ChatGPT-recommended SKUs, with a measurable halo on adjacent products.

Setting up tracking on direct-Stripe stores (non-Shopify)

The direct-Stripe case (custom storefront, headless commerce, a SaaS with physical add-ons, a Next.js store) is cleaner than Shopify in one respect: you own the checkout, so you write the AI source, the recommended SKU, and the cart line items straight into the Checkout Session metadata at create time. No platform sits between you and Stripe. See the Stripe attribution overview for the broader pattern.

StepDirect-Stripe actionNotes
1Edge middleware detects AI source on landingReferer + behavioral; writes session row
2Persist landing SKU from entry URL / Product schemaFirst page view on the session
3Record add-to-cart with SKU + timestampTime-to-cart pillar
4Write session id + recommended SKU + cart into Checkout Session metadataAt stripe.checkout.sessions.create
5checkout.session.completed webhook reads metadata, attributesDeterministic join, you own both ends

The create-time metadata write that makes the direct-Stripe join deterministic:

// Server-side: creating the Checkout Session with attribution baked in
const session = await stripe.checkout.sessions.create({
  mode: 'payment',
  line_items: cart.map(toStripeLineItem),
  metadata: {
    attrifast_session_id: firstPartySessionId,   // the join key
    ai_source: sessionRow.aiSource ?? '',         // 'chatgpt-shopping' etc.
    recommended_sku: sessionRow.landingSku ?? '', // what the AI deep-linked to
    cart_skus: cart.map((c) => c.sku).join(','),  // settled line items
  },
})

Because metadata is written at create time and read back on the settled webhook, the attribution is deterministic and survives the user's referer being gone, the session spanning days, and ad blockers. The only requirement is that the first-party session id persists from landing to checkout, which a first-party identifier scoped to your own domain handles without a third-party cookie or a consent banner under most jurisdictions (verify per your privacy review).

A note on what the direct-Stripe case loses versus Shopify: it does not get a separate Shopify order model with fulfillment and discount-code context out of the box. You assemble that yourself or carry it in metadata. What it gains is full control of the checkout and a cleaner deterministic join.

AOV benchmarks: ChatGPT-recommended SKUs vs organic

Numbers for sizing your own gap. Aggregated across the DTC and Stripe-direct stores I measured in Q1-Q2 2026 (anonymized; apparel, outdoor, beauty, home goods, specialty food, and a few physical-goods SaaS add-on stores). Methodology disclosure inline below the tables.

AOV by AI source

SourceAOV medianAOV 25th-75th pctvs blended store AOV
ChatGPT Shopping (recommended SKU sold)$96$68 - $134+18%
ChatGPT Shopping (halo: different SKU sold)$88$61 - $121+8%
Perplexity Shopping$104$74 - $148+28%
Google Shopping (paid)$84$61 - $114+3%
Google organic$79$54 - $108reference (blended)
Amazon Rufus referral (where measurable)$71$48 - $98-10%
Direct (real, after AI split)$89$64 - $124+9%

Conversion rate by AI source

SourceCVR medianCVR 25th-75th pctProfile
Google Shopping (paid)1.42%0.94% - 2.08%Impulse / high-intent
Google organic0.86%0.61% - 1.31%Mixed
ChatGPT Shopping0.54%0.31% - 0.88%Research-led
Perplexity Shopping0.44%0.26% - 0.72%Deep research
Amazon Rufus referral0.61%0.34% - 0.98%Marketplace-adjacent

Recommended-SKU sell-through

The Shopping-specific metric: of the sessions that entered on an AI-recommended SKU, what share bought that exact SKU versus a different one or nothing.

OutcomeShare of recommended-SKU sessions
Bought the recommended SKU54-64%
Bought a different SKU (halo)9-16%
Added to cart, did not buy11-19%
Research only, no cart14-22%

Revenue per visitor by source

SourceRPV medianRPV 25th-75th pct
Perplexity Shopping$0.46$0.27 - $0.74
ChatGPT Shopping$0.42$0.24 - $0.68
Google Shopping (paid)$1.18$0.71 - $1.74
Google organic$0.62$0.41 - $0.94

Methodology disclosure. Aggregated across stores that turned on AI-source plus SKU-level attribution in Attrifast between December 2025 and May 2026. Sessions attributed by the four-layer pattern (UTM + bot exclusion + referer fingerprinting + behavioral inference) plus landing-SKU capture. Revenue joined via Stripe checkout.session.completed webhook line items (Shopify Payments or direct Stripe). The "recommended SKU sold" versus "halo" split depends on the landing-SKU-versus-sold-SKU comparison described above. Amazon Rufus rows are the thinnest sample and the least reliable, because Rufus referrals are hard to isolate; treat them as directional. Individual store rows are not for publication; the aggregate is real.

The headline read: ChatGPT Shopping is a higher-AOV, lower-CVR, longer-time-to-payment channel. It does not behave like Google Shopping and you should not budget against it as if it did. The right comparison is to other research-led discovery channels (Reddit, "best of" roundups, considered organic), not to bottom-of-funnel paid shopping.

The merchant qualification checklist (who gets recommended)

Not every store qualifies to surface in ChatGPT Shopping with a price and a buy link. The qualification bar is largely about machine-readability and feed hygiene, with content and reviews on top. The checklist I run before telling a store to expect AI-shopping traffic:

RequirementWhy it mattersControllable
Complete Product schema on every PDPLets the model parse name, brand, image, identifierYes
Valid Offer schema (price, priceCurrency, availability)Lets the recommendation show a price and in-stock stateYes
GTIN / MPN / brand identifiersDisambiguates your product from look-alikesYes
AggregateRating or Review schemaSupplies the rating shown on the cardYes (earned reviews, owned markup)
Crawlable PDP (server-rendered, not JS-only)GPTBot / OAI-SearchBot must read contentYes
Current, valid merchant product feedPrimary structured source for price/availabilityYes
Stable, canonical product URLsThe buy link must resolve and stay validYes
Competitive, accurate priceInfluences ranking and avoids price-mismatch suppressionPartly
Third-party "best of" coverageStrong selection signalEarned
Entity disambiguation (Organization sameAs)Helps the model trust the brandYes

A product feed requirements table, since malformed feeds are the most common silent disqualifier:

Feed fieldRequiredCommon failure
id / SKUYesNon-unique or unstable across syncs
titleYesStuffed with keywords, not human-readable
price + currencyYesStale price vs live PDP (mismatch suppression)
availabilityYesNot updated when out of stock
image_linkYesBroken or low-resolution
gtin / mpnStronglyMissing, so look-alikes win disambiguation
brandYesMissing or inconsistent
product URLYesRedirects or 404s on click
descriptionYesThin or duplicated across variants

The merchant-qualification reality, plainly: most stores that are not surfacing in ChatGPT Shopping fail on Offer schema or feed freshness, not on content quality. Ship complete, valid, frequently-synced structured data first. It is the unglamorous prerequisite that everything else rides on.

Schema markup for product visibility

The three schema types that do the heavy lifting for product recommendation, with the fields that actually get read into a recommendation card [16][17].

Product schema

FieldPurposeRecommendation impact
nameProduct name on the cardHigh
brandBrand attribution + entity trustHigh
imageCard thumbnailHigh
gtin / mpnDisambiguationHigh
skuInternal id (your join key)Medium
descriptionRationale sourceMedium

Offer schema

FieldPurposeRecommendation impact
priceThe price shown on the cardHigh
priceCurrencyCurrency of the priceHigh
availabilityIn stock / out of stockHigh
priceValidUntilFreshness signalMedium
urlThe buy link targetHigh

Review / AggregateRating schema

FieldPurposeRecommendation impact
ratingValueThe star rating on the cardHigh
reviewCountCredibility / volumeMedium
bestRatingScale normalizationLow
authorReview provenanceLow

A minimal but complete Product + Offer + AggregateRating block, the shape that reliably renders with price and rating:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Merino Base Layer Crew",
  "brand": { "@type": "Brand", "name": "ExampleCo" },
  "gtin13": "0123456789012",
  "sku": "MBL-CREW-BLK-M",
  "image": "https://example.com/img/mbl-crew-black.jpg",
  "description": "190gsm merino crew base layer for cold-weather layering.",
  "offers": {
    "@type": "Offer",
    "price": "89.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2026-12-31",
    "url": "https://example.com/products/merino-base-layer-crew"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "212"
  }
}

Two notes that prevent the most common failures. First, the sku in your schema should match the sku you write into Stripe metadata; that alignment is what lets you join the recommended SKU to the settled SKU without a fuzzy match. Second, keep price and availability in lockstep with your live PDP and feed. A schema price that disagrees with the feed or the live page is a frequent cause of price-mismatch suppression, where the product surfaces without a price or not at all.

Comparison: Attrifast vs Profound for Shopping attribution

The category confusion here is constant, so it is worth being explicit. Profound's /features/shopping measures appearance: whether and how you show up in AI shopping answers. Attrifast measures settled revenue per recommended SKU. These are different jobs, and most serious teams will eventually run both.

DimensionProfound (Shopping)Attrifast
CategoryAI visibility / appearance monitoringFirst-party + Stripe-native revenue attribution
Core question answered"Are we recommended, where, vs whom?" [12]"How many dollars did the recommendation produce?"
Sees your cart?NoYes (session + line items)
Sees your Stripe account?NoYes (webhook join)
Share of voice / positionYesNo
Competitor co-occurrenceYesNo
Recommended-SKU revenueNoYes
Halo (different SKU sold) detectionNoYes
AOV per AI sourceNoYes
Cookieless / no consent bannern/a (monitors answers)Yes
Entry price$499+/mo (enterprise tier)$29/mo
Best forMerchandising / content / brand teamsOperators who need the revenue line

The maturity-curve framing, which is the original point of this article: visibility tooling matured first because it was the easier problem. You can monitor AI answers by querying the models and parsing the output; you never need to touch the merchant's revenue system. Revenue attribution matured later because it requires stitching a first-party session to a cart to a settled payment, across referer-stripping clients and multi-day journeys. The two capabilities are roughly six months apart on the maturity curve, and in 2026 most of the market is still buying appearance and assuming revenue.

Maturity stageCapabilityWho has it in 2026
Stage 1 (mature)AI appearance monitoringProfound, peers
Stage 2 (mature)Share of voice / positionProfound, peers
Stage 3 (emerging)Click attribution from AI surfacesFirst-party analytics tools
Stage 4 (early)Revenue per AI sessionStripe-native attribution
Stage 5 (frontier)Revenue per recommended SKU + haloFew; the gap Attrifast targets
Job to be doneRight tool
"Are we showing up in ChatGPT Shopping?"Profound
"What is our share of voice vs competitors?"Profound
"How many dollars did ChatGPT Shopping produce?"Attrifast
"Which recommended SKUs actually sell?"Attrifast
"Is the recommendation a doorway to other SKUs?"Attrifast (halo flag)

Use the right tool for the job. Buy Profound to learn whether you are in the results; buy Attrifast to learn whether the results paid you. They answer adjacent questions, and the honest position is that they are complementary.

Retailer comparison: ChatGPT, Perplexity, Amazon, Walmart, Shopify

The AI-shopping surface is not just ChatGPT. The attribution rules differ by retailer because the buy flow differs.

SurfaceBuy flowLands on your domain?Merchant-side attribution feasible?
ChatGPT ShoppingOrganic cards, link out to your PDP [1][2]Yes (deep link)Yes (this article)
Perplexity ShoppingComparison + Buy with Pro / merchant feed [8][9]Sometimes (in-Perplexity checkout for some)Partial (depends on flow)
Amazon RufusIn-Amazon assistant, stays on Amazon [10][11]No (Amazon owns checkout)No (only via Amazon reporting)
Walmart (Sparky)In-Walmart assistant [13]No (Walmart owns checkout)No (only via Walmart reporting)
Shopify (Catalog / AI surfaces)Feed exposure to AI engines [14][15]Yes (to your storefront)Yes (Shopify + Stripe webhook)
Google AI Overviews (shopping)Cites pages, sometimes links outSometimesPartial (low CTR, referer often stripped)

The structural fault line: surfaces that keep the checkout on their own property (Amazon, Walmart) are attribution dead ends for the merchant; you get whatever the marketplace chooses to report. Surfaces that deep-link to your own domain (ChatGPT Shopping, Shopify-fed AI surfaces, sometimes Perplexity and Google) are the ones where merchant-side SKU-level attribution is feasible, because the click lands on a page you control with a checkout you instrument.

Retailer surfaceWho owns the checkoutAttribution owner
ChatGPT ShoppingMerchantMerchant (instrument it)
Perplexity (Buy with Pro)Perplexity (for some flows)Split
Amazon RufusAmazonAmazon
Walmart SparkyWalmartWalmart
Shopify-fed AI surfaceMerchantMerchant

A note on Anthropic and Claude: Claude is a capable shopping-research assistant and increasingly appears in product-comparison journeys, but as of mid-2026 it does not operate a dedicated merchant-feed Shopping surface with buy cards the way ChatGPT and Perplexity do [20]. Claude-referred shopping traffic behaves like deep-research organic: low volume, high AOV, almost always referer-stripped. Track it as a research-led AI source, not as a dedicated Shopping channel.

Common ChatGPT Shopping attribution mistakes

Ten mistakes I see often enough to call them patterns, with the fix for each.

Mistake 1: Treating visibility as revenue. A Profound report showing strong share of voice is not a revenue number. It is a leading indicator. Fix: pair appearance monitoring with settled-revenue attribution per recommended SKU.

Mistake 2: Trusting GA4's ChatGPT Shopping number, which is zero. GA4 files these sessions under Direct. Fix: server-side AI detection plus a Stripe webhook join, not a GA4 channel config.

Mistake 3: Attributing all session revenue to the recommended SKU. A session that entered on the recommended SKU may have bought something else. Fix: compare landing SKU to settled SKU; flag the halo case separately.

Mistake 4: Ignoring the halo. The opposite error: discounting AI shopping because the recommended SKU did not sell, while ignoring the adjacent SKU it drove. Fix: report both recommended-SKU revenue and halo revenue.

Mistake 5: Budgeting against AI shopping like Google Shopping. It is higher-AOV, lower-CVR, longer-time-to-payment. Fix: compare to research-led discovery channels, not bottom-of-funnel paid.

Mistake 6: Stale Offer schema causing silent suppression. A schema price that disagrees with the feed or live page can suppress the product. Fix: keep price and availability in lockstep across schema, feed, and PDP.

Mistake 7: JS-only product pages. If GPTBot and OAI-SearchBot cannot read the content, the product is hard to recommend. Fix: server-render the PDP content the model needs.

Mistake 8: Counting GPTBot crawls as shopping traffic. A crawl is not a recommendation and not a click. Fix: keep bot hits in a separate view.

Mistake 9: Assuming OpenAI will send a conversion report. ChatGPT Shopping has no merchant-facing conversion callback. Fix: own the measurement end to end.

Mistake 10: Mismatched SKU keys between schema and Stripe metadata. If the schema SKU and the Stripe line-item SKU do not match, the recommended-vs-sold join fails. Fix: standardize one SKU identifier across schema, feed, and Stripe metadata.

What changes when you fix this

The shape of the merchandising and budget conversation changes once recommended-SKU attribution is correct.

DecisionBefore correct attributionAfter correct attribution
Is AI shopping worth effort?"We appear in results" (vanity)"$X/mo settled per recommended SKU"
Which products to optimize for AIGuess from share of voiceThe SKUs with proven sell-through
Schema / feed investment"Best practice, unmeasured"ROI-justified by recommended-SKU revenue
Halo productsInvisibleQuantified adjacent revenue
Channel comparisonAI vs Google Shopping (wrong frame)AI vs research-led discovery (right frame)
Board update"Winning in AI" (unfundable)"AI shopping is N% of revenue, growing"

Limitations

Five things this article does not cover, and you should not extrapolate past.

  • Marketplace-owned checkouts. Amazon Rufus and Walmart Sparky keep the checkout on their own property. Merchant-side SKU attribution is not feasible there; you get whatever the marketplace reports. The benchmarks above for those rows are thin and directional.
  • Voice and in-app purchase flows. When the buy happens inside an AI app without landing on your domain, there is no first-party session to attribute. Treat as a known undercount.
  • The maturity curve moves. ChatGPT Shopping, Perplexity Shopping, and the others are changing fast. Referer behavior, buy-flow ownership, and merchant terms in mid-2026 may not hold by year end. Verify current OpenAI and Perplexity merchant documentation.
  • Behavioral inference is not perfect. The no-referer landing-SKU fingerprint has bounded precision and recall, the same way the general AI-traffic classifier does. It is materially better than the GA4 default of zero, not a perfect measurement.
  • The AOV lift is a Q1-Q2 2026 snapshot. As ChatGPT's user base broadens, the intent-quality premium on recommended SKUs will likely compress. Re-measure quarterly; treat the +12-22% as directional.

FAQ

What is the difference between ChatGPT Shopping visibility and ChatGPT Shopping revenue attribution?

Visibility tools tell you that your product appears in ChatGPT's recommendations for a given query: how often, in what position, alongside which competitors. That is an appearance metric. Revenue attribution tells you how many dollars actually arrived in your Stripe account because ChatGPT recommended a specific SKU, the user clicked through, added it to cart, and paid. The two are roughly six months apart on the maturity curve. In 2026 most of the market is buying appearance metrics from tools like Profound and assuming revenue, because nobody has closed the loop from AI recommendation to settled payment at the SKU level. Appearance is a leading indicator; settled revenue per recommended SKU is the lagging truth, and it is the only number a CFO will fund against.

Can I track which specific products ChatGPT recommended that led to a sale?

Yes, but not with GA4 alone, and not with a visibility tool alone. You need four data points joined together: the ChatGPT referrer (so you know the session came from an AI surface), the landing SKU (the product page the recommendation deep-linked to), the time-to-cart (whether the recommended SKU was the one that entered the cart), and the time-to-payment (the Stripe charge that settled, with line items). When those four are stitched on a first-party session row and joined to a Stripe webhook with cart line items in metadata, you can attribute settled dollars to the specific SKU ChatGPT recommended. This is the architecture Attrifast ships and what this article walks through.

How do ChatGPT Shopping referrers look in my server logs?

When a ChatGPT Shopping recommendation passes a referer (a minority of clicks, since the client strips it on most outbound links), it arrives as a chatgpt.com host with a path that hints at the surface. Product recommendations rendered inside the shopping experience tend to carry chatgpt.com referers and deep-link directly to a product URL on your domain, frequently with a query string the model copied verbatim. The high-signal pattern is a no-referer, new-visitor entry that lands directly on a deep product-detail-page URL rather than your homepage or a collection page. That landing-on-a-specific-SKU shape is the strongest behavioral fingerprint that the visit came from an AI product recommendation rather than organic browsing.

Does ChatGPT Shopping use affiliate links or pass purchase data back to merchants?

As of mid-2026, OpenAI has stated that ChatGPT Shopping results are organic and not ads, and that product results are chosen independently of any commercial relationship. OpenAI does not pass a structured purchase callback to merchants the way an affiliate network would; there is no merchant-facing conversion pixel from ChatGPT Shopping itself. That means the merchant is responsible for instrumenting the attribution on their own side: detect the AI referral on landing, persist the session, and join to the payment. You cannot wait for OpenAI to hand you a conversion report. Verify the current terms against OpenAI's merchant and shopping documentation, since this surface is changing quickly.

Why does GA4 fail to attribute ChatGPT Shopping revenue at the SKU level?

Three compounding failures. First, the ChatGPT client strips the Referer header on most outbound product clicks, so GA4 buckets the session as Direct/(none) and never tags it as AI. Second, even when a referer survives, GA4 has no default channel rule for chatgpt.com, so it lands in generic Referral with no AI-engine label. Third, and most specific to Shopping, GA4 enhanced ecommerce attributes item revenue to the GA4 session channel, which is already wrong for AI traffic, and it has no concept of recommended-SKU versus browsed-SKU, so it cannot tell you whether the AI-recommended product is the one that sold or whether the user landed on it and bought something else entirely. You need SKU-level join logic GA4 does not provide.

What is the AOV for ChatGPT-recommended products versus organic product discovery?

Across the DTC and Stripe-direct stores I measured in Q1-Q2 2026, ChatGPT-recommended SKUs carried a median AOV roughly 12-22% above the same store's blended organic AOV, with Perplexity Shopping higher still. The likely driver is the same intent-quality pattern that shows up in SaaS: a buyer who arrives via an AI product recommendation has read a partial comparison, has been steered toward a specific SKU that fits stated constraints (budget, size, use case), and arrives pre-qualified. The catch is conversion rate: AI-recommended product traffic converts at a lower rate than Google Shopping because the journey is research-led, not impulse-led. Higher AOV, lower CVR, longer time-to-payment is the consistent ChatGPT Shopping signature.

Can I attribute ChatGPT Shopping revenue on a non-Shopify store that uses Stripe directly?

Yes, and the direct-Stripe case is cleaner than Shopify in one respect: you control the checkout, so you can write cart line items and the AI-source tag straight into the Stripe Checkout Session metadata at create time. The pattern is: detect the ChatGPT referral on landing, persist a first-party session id, carry that session id into the Checkout Session you create server-side, and write the recommended SKU plus the cart line items into metadata. When the checkout.session.completed webhook fires, you read the metadata and attribute settled dollars to the recommended SKU. No third-party cookie, no consent banner under most jurisdictions, and the join is deterministic because you own both ends.

How is Attrifast different from Profound for ChatGPT Shopping attribution?

Profound and similar tools monitor whether and how you appear in AI shopping answers: share of voice, ranking position, competitor co-occurrence. That is genuinely useful for the content and merchandising team, and it is the right tool for the question "are we being recommended." What it does not do is close the loop to settled revenue per recommended SKU, because it never sees your Stripe account or your cart. Attrifast starts from the other end: it detects the AI referral, stitches the session to the cart and to the Stripe payment, and reports dollars per recommended SKU. They are complementary, not competitive. Profound tells you you are in the results; Attrifast tells you how many dollars the results produced. The two are about six months apart on the maturity curve and most teams will eventually run both.

Do I need Schema markup to get recommended in ChatGPT Shopping?

Schema is not a guaranteed ticket, but it is the highest-leverage controllable input. ChatGPT Shopping draws on a combination of merchant product feeds, structured Product and Offer schema, third-party reviews, and the open web. Pages with complete Product schema (name, brand, GTIN/MPN, image), valid Offer schema (price, priceCurrency, availability), and AggregateRating or Review schema are materially easier for the retrieval pipeline to parse into a structured recommendation with price and availability. Missing or malformed Offer schema is the single most common reason a product that should qualify does not surface with a price. Ship complete, valid, frequently-updated structured data and a clean product feed; treat that as table stakes, then optimize content and reviews on top.

How do I tell ChatGPT Shopping traffic apart from ChatGPT Search traffic?

By the landing page and the referer path. A ChatGPT Shopping click deep-links to a specific product-detail-page URL and, when it carries a referer, tends to look like a chatgpt.com host. A ChatGPT Search click is more likely to carry a chatgpt.com/search referer and to land on informational or collection pages rather than a single SKU. The behavioral tell is the landing target: a no-referer new visitor entering directly on /products/<slug> is almost certainly a product recommendation, whereas an entry on a blog post or a collection page is more likely search or organic citation traffic. Segment on the landing-page shape, not just the referer.

What is "halo" revenue and why does it matter for ChatGPT Shopping?

Halo revenue is the money from a session that entered on an AI-recommended SKU but settled on a different SKU. ChatGPT recommends your $89 base layer; the user lands on it, browses, and buys a $240 jacket instead. The recommendation caused the visit, but the recommended SKU did not sell. If you only measure recommended-SKU sell-through, you undercount the channel's contribution; if you attribute all session revenue to the recommended SKU, you overcount it. The honest treatment is to report both: recommended-SKU revenue and halo revenue as separate lines. Across the stores I measured, halo was 9-16% of recommended-SKU-session purchases, which is enough to change a "not worth it" verdict into a "worth it" one.

Does Perplexity Shopping need different tracking than ChatGPT Shopping?

Yes, in one important way. Perplexity launched shopping integrations with a Buy with Pro flow and a curated merchant feed [8][9]. For products inside that integration, part of the checkout can happen within Perplexity, which means the click does not always land on your domain and the merchant-side join is partial. For products surfaced via organic comparison citations, Perplexity behaves like ChatGPT Shopping: a deep link to your PDP that you can instrument. Track the two Perplexity flows separately, because one is a merchant-owned checkout you can attribute and the other is a Perplexity-owned checkout you mostly cannot.

Can I attribute Amazon Rufus or Walmart AI-assistant sales?

Mostly no, from the merchant side. Amazon Rufus and Walmart's Sparky operate inside their own properties and keep the checkout on Amazon and Walmart respectively [10][11][13]. The sale settles in the marketplace, not on your domain, so there is no first-party session to stitch and no Stripe webhook to join. Your visibility into Rufus or Walmart-AI-driven sales is whatever the marketplace's own reporting surfaces, which is coarse and not SKU-recommendation-attributed. The merchant-side SKU attribution this article describes applies to surfaces that deep-link to a checkout you own: ChatGPT Shopping, Shopify-fed AI surfaces, some Perplexity flows, and sometimes Google.

How long does it take to see ChatGPT Shopping revenue after fixing attribution?

The traffic is usually already arriving; you are uncovering it, not creating it. The first 30 days of correct attribution typically resolve a chunk of previously-Direct revenue to ChatGPT-recommended SKUs, with the recommended-vs-halo split stabilizing over 60 days. If you are also shipping schema and feed improvements to increase the volume of recommendations, expect a longer lag (weeks for crawlers to re-read, more weeks for recommendation share to grow) before the revenue line moves on the supply side. Separate the two effects: attribution fixes reveal existing revenue immediately; visibility improvements add revenue on a multi-week delay.

Is this worth it for a small store doing under $50k/month?

It depends on whether you are getting recommended at all, which the qualification checklist and a visibility check will tell you. If you are surfacing in ChatGPT Shopping for even a handful of category queries, the AOV lift means the absolute dollars are usually material relative to a $29/mo tool, even at modest volume. If you are not surfacing yet, spend first on the schema, feed, and content prerequisites; there is no attribution to do on a channel that is not yet sending traffic. The honest sequence is: confirm visibility, ship the qualification prerequisites, then turn on revenue attribution to measure what the work produced.

What this looks like inside Attrifast

A short note on the product, because the article should not pretend the author has no interest. Attrifast surfaces AI shopping as a first-class part of the same channel dashboard as paid social, paid search, organic, and email, with a per-engine split (ChatGPT, Perplexity, Claude, Gemini). The Shopping-specific addition is the recommended-SKU view: for AI-sourced sessions, it captures the landing SKU, compares it to the settled cart line items from the Stripe webhook, and reports recommended-SKU revenue and halo revenue as separate lines, with AOV per AI source.

For Shopify stores using Shopify Payments, the join runs off the Customer Events Server Pixel stream, the Shopify order webhook, and the underlying Stripe webhook, since Shopify Payments runs on Stripe [18]. For direct-Stripe stores, the session id and cart line items go into Checkout Session metadata at create time and the checkout.session.completed webhook closes the loop. The tracking script is the same 4 KB first-party cookieless tracker; it ships without a consent banner under most jurisdictions (verify per your privacy review), and the Stripe connection is OAuth.

Cost: $29/mo flat, no GMV-scaling pricing. The differentiation versus a visibility tool like Profound is that Attrifast closes the loop to settled dollars per recommended SKU rather than stopping at appearance metrics; the two are complementary and the honest position is that a serious team runs both. The first-person reason I built the SKU-level view is that I kept watching DTC operators walk into board meetings with "we appear in ChatGPT Shopping" slides that could not answer the only question that mattered: how many dollars. The recommended-SKU revenue line is the answer to that question.

For the broader AI-traffic picture, the track-ChatGPT-traffic guide walks the detection layer and the ChatGPT referral analytics deep-dive walks the analytics shape. For the Shopify stack, the Shopify revenue attribution guide is the companion. For the revenue side end to end, see the revenue attribution feature page and the Stripe attribution overview. For how AI shopping compares to the broader AI-traffic revenue picture, the AI traffic revenue benchmark and the Google AI Overviews breakdown round out the set.

References

  1. OpenAI. "Shopping in ChatGPT" announcement and product introduction (broad rollout to all users, April 2025). https://openai.com/index/
  2. OpenAI. "How ChatGPT Shopping results are chosen" (organic results, not ads; no paid placement). https://help.openai.com/en/articles/
  3. Search Engine Land. "OpenAI launches shopping features in ChatGPT." April 2025. https://searchengineland.com/openai-chatgpt-shopping
  4. OpenAI. "ChatGPT weekly active user updates, 2024-2025." https://openai.com/index/introducing-chatgpt-search/
  5. The Verge / OpenAI. "ChatGPT hits 1 billion daily messages." December 2024. https://www.theverge.com/2024/12/04/24313097/chatgpt-1-billion-messages-daily-openai
  6. Plausible Analytics. "How to track ChatGPT and AI search traffic." 2024. https://plausible.io/blog/chatgpt-traffic
  7. Google Analytics. "Default channel group definitions for GA4." https://support.google.com/analytics/answer/9756891
  8. Perplexity. "Shopping with Perplexity (Buy with Pro, merchant program)." Late 2024. https://www.perplexity.ai/hub/blog/shop-like-a-pro
  9. Modern Retail. "Perplexity rolls out shopping features and merchant feed." 2024-2025. https://www.modernretail.co/technology/
  10. Amazon. "Rufus, a generative AI shopping assistant." 2024-2025. https://www.aboutamazon.com/news/retail/amazon-rufus
  11. Digital Commerce 360. "Amazon expands Rufus AI shopping assistant." 2024-2025. https://www.digitalcommerce360.com/
  12. Profound. "Shopping (AI visibility for product recommendations) features page." https://www.tryprofound.com/features/shopping
  13. Walmart / Modern Retail. "Walmart's Sparky AI shopping assistant rollout." 2024-2025. https://www.modernretail.co/technology/walmart-ai-shopping/
  14. Shopify. "Shopify Catalog and merchant data exposure to AI commerce surfaces." 2025. https://www.shopify.com/news
  15. Digital Commerce 360. "How Shopify merchants appear in AI shopping results." 2025. https://www.digitalcommerce360.com/topic/shopify/
  16. Schema.org. "Product, Offer, AggregateRating, and Review structured data specifications." https://schema.org/Product
  17. Google Search Central. "Product structured data and merchant listing experiences." https://developers.google.com/search/docs/appearance/structured-data/product
  18. Stripe Documentation. "Stripe powers Shopify Payments." https://stripe.com/customers/shopify
  19. Shopify Help Center. "Customer Events: Web Pixels and Server Pixels." https://help.shopify.com/en/manual/promoting-marketing/pixels/customer-events
  20. Anthropic. "Claude features and product capabilities." https://www.anthropic.com/claude
  21. OpenAI. "Overview of OpenAI's bots and how to control them (GPTBot, ChatGPT-User, OAI-SearchBot)." https://platform.openai.com/docs/bots
  22. Stripe Docs. "Checkout Session object and metadata field." https://docs.stripe.com/api/checkout/sessions/object
  23. The Verge. "OpenAI brings shopping to ChatGPT." 2025. https://www.theverge.com/
  24. Search Engine Land. "Google AI Overviews coverage and shopping queries." 2024-2026. https://searchengineland.com/library/google/google-ai-overviews
  25. Shopify Plus. "Ecommerce conversion rate benchmarks." https://www.shopify.com/enterprise/blog/ecommerce-conversion-rate

Related reading

E-commerce26 min
Perplexity Shopping Attribution: How to Track Revenue from Perplexity's Product Recommendations in 2026
A 2026 guide to Perplexity Shopping attribution: how Perplexity Shop and Buy with Pro work, why GA4 cannot attribute Perplexity-recommended SKUs, and how to track dollar-per-recommended-product with a Stripe-native, cookieless stack.
E-commerce26 min
Shopify Revenue Attribution in 2026: The SMB Store Owner's Complete Guide
A 2026 attribution guide for sub-$500k GMV Shopify stores: why native analytics misses revenue, the five real attribution approaches, tool comparison vs TripleWhale and Polar, and a cookieless playbook built for SMB DTC.
Attribution26 min
Agentic Commerce in 2026: How to Track and Attribute Revenue When AI Agents Are the Buyers
A 2026 field guide to agentic commerce attribution — what breaks when an AI agent (ChatGPT Operator, Claude Computer Use, agentic checkout) buys on a human's behalf, why the referrer is the agent not the discovery source, and how to even see agent purchases with user-agent fingerprinting plus a Stripe join.
Analytics32 min
AI Traffic Analytics in 2026: The Complete Playbook (with Tool Comparison)
AI traffic analytics is a 3-layer problem: detect the AI referrer, classify the engine, join to revenue. Honest 9-tool comparison plus the setup workflow.
Attribution29 min
Marketing Attribution for Product-Led Growth (2026)
A 2026 guide to marketing attribution for product-led growth. Why PLG breaks classic attribution worse than sales-led SaaS, the free-signup vs activation vs paid model, AI as the new hidden PLG channel, and the SMB PLG attribution stack at $29/mo.

Find revenue hiding in your traffic

Discover which marketing channels bring customers so you can grow your business, fast.

Start free trial →

5-day free trial · $29/mo · cancel anytime