BACK TO BLOG
USE CASESNovember 11, 20269 min read

OptinMonster With Causality Engine: Read the View-Through Revenue

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-11-11

The short answer: if the revenue column in OptinMonster looks too generous next to WooCommerce, read the rule before the number. OptinMonster, the popup and lead capture builder, credits a campaign with an order when the buyer converted in it (click-through) and also when the buyer only saw it and did nothing (view-through), and it records the campaign in a cookie that expires after a year (Revenue Attribution guide). A popup is not a traffic source, so GA4 never files it as a channel. What GA4 does hold is every channel that brought those buyers to the site, and Causality Engine, which estimates what each channel caused from GA4's Attribution paths export, gives its first finding free at app.causalityengine.ai/start.

Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.

Three checks for the next renewal review:

  1. Split the column in two. For example, $41,180 of attributed revenue with $31,320 of it view-through means 31,320 ÷ 41,180 = 76.1% came from shoppers who closed or ignored the popup. The campaign analytics export carries total, click-through and view-through revenue as separate columns (Revenue Attribution guide).
  2. Look at the GA4 events you may already send. On Pro and above, a connected campaign pushes optinmonster_impression, optinmonster_conversion and optinmonster_interaction to a GA4 property (Google Analytics guide).
  3. Pick the right key event at export time. GA4's attribution paths report aggregates all key events by default (Google's report help), so a signup marked as a key event sits beside purchases until you select purchase alone.

The popup and the read, side by side

QuestionOptinMonsterCausality Engine
What it isPopups, floating bars and inline forms with display rules (entry)A causal read of one GA4 export (entry)
What it calls a resultRevenue per campaign, click-through plus view-through, a sale's value divided between every campaign it is attributed to (Revenue Attribution guide)Each channel's caused share next to a last-click rebuild (how it works)
How long a claim lastsThe campaign cookie expires after a year (Revenue Attribution guide)The window is whatever the export covers, 12 months or more
What reaches GA4Three custom events with campaign name, ID and interaction as parameters, no revenue (GA4 revenue guide)Nothing; it reads, it does not tag
GA4 channelNone of its own: the visit keeps the source that brought it (default channel group)Every channel in the export
Connection between themNoneNone (integrations)
What checking costsIncluded on Pro and aboveFree first finding; €99 for a full read, excluding VAT (pricing, checked on 11 November 2026)

How OptinMonster books a sale to a campaign

Revenue Attribution is a switch under My Account, Advanced Settings, on a Pro or higher subscription. It needs the OptinMonster embed code on the thank-you page. The WordPress plugin handles WooCommerce and Easy Digital Downloads without extra code; other platforms pass type, value and currency through a JavaScript or cURL call (Revenue Attribution guide).

The guide's own definitions carry the weight:

  • Click-through: the shopper took action within the campaign, for example converted.
  • View-through: the shopper viewed the campaign and did not act before buying.
  • Several campaigns, one order: the value is divided between all of them, so a fraction per campaign is expected.
  • WooCommerce: only cleared payments count, cash on delivery included once marked complete.
  • The screens: the Campaigns screen shows a rolling 30-day period; the Analytics screen breaks each day into the two types.

The guide states no window shorter than the cookie, and on Shopify's newer checkout the feature does not work at all.

The guide also says OptinMonster's native figures "will be more accurate than Google Analytics." They are more complete for OptinMonster's question, which campaign was in front of a buyer. They answer nothing about whether the buyer needed it.

What OptinMonster sends to GA4, and what it cannot send

A popup sends no traffic, so there is nothing to tag. The Google Analytics guide has you create three event-scoped custom dimensions first (OM Campaign Name, OM Campaign ID, OM Campaign Interaction, mapped to om_campaign_name, om_campaign_id and om_campaign_interaction), then click Connect in the campaign's Analytics view and pick a GA4 property. A default property can be set per site under Sites. The key event guide allows up to 48 hours for GA4 to process the first data.

Revenue does not travel with those events. OptinMonster's GA4 revenue guide builds a user segment of people who triggered the conversion event and reads Total revenue and Purchases for that segment in an Exploration. The key event guide shows how to toggle optinmonster_conversion to Mark as key event.

That toggle matters for the export. Leave it on and select only the purchase key event when you download attribution paths; otherwise email signups and orders end up in one column.

Worked example: one month, four claims

For example, with figures invented for this page and no store behind them: a WooCommerce homeware shop books $96,400 in 30 days. OptinMonster's Campaigns screen shows $41,180 across three campaigns, $9,860 click-through and $31,320 view-through. Meta Ads Manager claims $38,700 and Google Ads $29,950.

The claims add up to 41,180 + 38,700 + 29,950 = $109,830, which is 109,830 - 96,400 = $13,430 more than the shop took, before organic search, email or Direct speak. In GA4, the Exploration from OptinMonster's own guide puts $12,400 of purchase revenue on users who converted in a campaign. That is close to the click-through figure, and $41,180 - $12,400 = $28,780 short of the column on the Campaigns screen.

The read sits one level up. It never sees a popup, a campaign or a variant; per its how-it-works page, it splits Direct back to the channels that sent those buyers, sets each channel's caused share beside last-click, grades each with a data-health score from 0 to 100 and names a next step to test in one region. If Paid Social's caused share comes out well under Meta's claim while OptinMonster says its exit popup rescued those carts, neither report settles it. Move nothing until a one-region test or the by-hand holdout below has run.

A by-hand holdout, since OptinMonster documents none

The split test guide compares campaigns against each other: it assigns one at random on each pageview and tells you to pick the highest conversion rate. No variant is "no popup", so the guide gives you a better popup, not a measure of the popup.

The free substitute is a calendar split, by hand:

  1. Pick eight whole weeks and mark four at random as off weeks.
  2. In off weeks, pause the campaign; leave everything else alone.
  3. From WooCommerce, take orders divided by sessions for each week.
  4. Compare the on-week average with the off-week average.

For example, 2.41% on and 2.29% off over 31,500 sessions a week is (0.0241 - 0.0229) × 31,500 = 37.8 extra orders a week. Set that against the view-through column. Weeks differ in season and promotions, so draw the off weeks at random.

That answer is free and stands without any tool. For the channel question behind it, download the Attribution paths CSV with the purchase key event selected and drop it on the start page; the preview is worked out in the browser. Causality Engine, which I founded, sells the full read of that file for €99 once, excluding VAT, refundable within 30 days (pricing, checked on 11 November 2026).

Where the pairing stops

  • Below the channel. The read reports per channel. Which campaign, trigger or headline earned a sale stays an OptinMonster question.
  • Thin history. The how-it-works page asks for 12 months or more of GA4 data and calls a channel under 1% of credit on both methods too small to act on.
  • No purchase event. A shop whose GA4 records signups but no purchase key event has nothing for the read to work on.

Pro renews at $870 a year after a discounted first year on the pricing page (checked on 11 November 2026), and the revenue figure that renewal is argued on counts every order from a shopper who merely saw a campaign in the past year, a default for which the guide offers no switch.

See also

FAQ

Does OptinMonster connect to Causality Engine?

No. Nothing passes between them. Causality Engine takes a CSV you download from GA4, and its integrations page describes reading the channels that file records, which is why OptinMonster appears nowhere in it.

Can I switch view-through revenue off?

No toggle is documented. The Revenue Attribution guide offers a script that excludes a chosen campaign, and it applies only to new visitors or those whose attribution cookie has expired. The export lets you read click-through on its own.

Why is OptinMonster's impression count higher than GA4's?

OptinMonster counts every impression itself, while GA4 can sample on high-traffic sites and processes events later, per the Google Analytics guide.

TAGS
Causality EngineOptinMonsterPopup AttributionGA4Worked Example

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Agentic marketing, built for your team

The agents in this article, built into your workflows and handed over to your team: the first one within two weeks.

With Joris van Huët, interim and fractional CMO in Utrecht. From EUR 5,000 a month, monthly cycles, a 30-day exit.