BACK TO BLOG
USE CASESNovember 11, 20268 min read

ActiveCampaign With Causality Engine: Check Campaign 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 ActiveCampaign's campaign reports keeps growing while the store's order total stays flat, read the rule before you read the number. ActiveCampaign, the automation and email platform (entry), credits a campaign when a contact opens it or clicks a link and then buys within seven days, and its ecommerce reporting article says that period cannot be adjusted. So you cannot tune the claim; you can only check it. For a connected store that records purchases in GA4, the check is a path with no email, then the GA4 Attribution paths export on the start page of Causality Engine, which reports what each channel caused beside last click (entry). Its first finding is free.

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

What decides whether the Revenue column holds:

  1. Openers against clickers. For example, a campaign reaches 20,000 contacts, 7,000 open it and 600 click. ActiveCampaign can credit a purchase by any of the 7,000; GA4 can only see the 600 arrive. That is 7,000 / 600 = 11.7 openers for every visit GA4 records.
  2. The store connection you already have. Revenue appears only with a Deep Data integration for Shopify, WooCommerce, BigCommerce or Square, or a third-party one, per the same article.
  3. One toggle. Check whether Google Analytics Tracking is on under Settings, Advanced. Without it, or the same toggle on a single campaign, your emails reach GA4 untagged.

Side by side: the Revenue column and the read

FactDetail and source
What ActiveCampaign isEmail, automation, scoring and a CRM add-on: see the ActiveCampaign entry
What it reports as its resultRevenue per campaign and per automation, without shipping or taxes (ecommerce reporting)
By which ruleAn open or a click, then a purchase inside a fixed 7-day conversion period; the most recent engaged campaign takes it (same article)
How it tags linksA Google Analytics toggle, account-wide or per campaign: source ActiveCampaign or Newsletter, medium email (Google Analytics article)
GA4 channelEmail, because the medium is email (Google's channel rules)
What Causality Engine readsThe GA4 Attribution paths export as a CSV, nothing else (how it works)
Integration between themNone (integrations page)
What checking costsA free first finding, then €99 for one read, excluding VAT (pricing, checked on 11 November 2026)

How the Revenue column is filled

The ecommerce reporting article lists the conditions. The buyer must be a contact the campaign was sent to. The purchase must happen in a connected store. The contact must have opened or clicked; a campaign that was received and ignored earns nothing. And only the last campaign a contact engaged with inside the period is credited.

The article illustrates that last rule itself. A contact ignores Email A for five days, opens Email B in the meantime, then opens Email A and buys. Email B gets the revenue.

On timing the article gives two wordings. One sentence puts the purchase within seven days after the campaign's end date; a later bullet says the 7-day conversion period begins when the campaign is sent to a list. Either way the length is fixed, and an open counts the same as a click.

A second, separate measure exists. The Conversion Attribution report is last-touch across UTM touchpoints from site tracking, with a window you choose: 7 days by default, up to 365. It need not agree with the Revenue column.

Turning on Google Analytics for campaigns

The Google Analytics article offers two routes. An admin switches Google Analytics Tracking on under Settings, Advanced, and every campaign created afterwards is tagged by default. Or you flip the Google Analytics toggle on one campaign's Campaign Summary page.

The values are set for you:

  • utm_source: "ActiveCampaign" with branding on, "Newsletter" with branding off.
  • utm_medium: "email".
  • utm_campaign: the campaign name, which Customize lets you change.
  • utm_content: the subject line.

GA4 files a visit under Email when source or medium matches email (channel rules), so the default medium is enough, whichever source your branding produces.

The article's warnings: the account-wide setting does not reach campaigns that already exist, a duplicated campaign inherits the original's choice, and clicks will not equal sessions. A contact who clicks twice in one visit is two clicks and one session.

Worked example: three claims on one quarter

For example, as an illustration with invented figures: a store books 3,120 orders in a quarter. The Revenue column across campaigns and automations accounts for 742 of them. Meta's reporting claims 1,214 and Google Ads 1,388. GA4's last click assigns Email 301.

742 + 1,214 + 1,388 = 3,344 claims, and 3,344 / 3,120 = 1.07 claims per order before organic search or direct is counted. Email by ActiveCampaign's rule is 742 / 3,120 = 23.8% of orders; by GA4's last click it is 301 / 3,120 = 9.6%. The 441 orders between them belong to buyers who opened and did not click through, or clicked and came back another way.

Both figures are correct under their own rule. Neither says what would have sold without the emails.

That is the question a causal read is built for. As the how-it-works page puts it, the read separates what each channel caused from what it only touched, rebuilds last-click from the same file, and gives every channel a data-health score from 0 to 100 with a next step. Where it and the Revenue column disagree, change nothing yet. Test on a held-out path first.

Hold out a path before you pay for anything

ActiveCampaign's Split action does the dividing. Under Split paths you send contacts down 2 to 10 paths, evenly or by a percentage you set, and no winner is declared. An even split alternates: contact 1 to Path A, contact 2 to Path B. Once on a path, a contact stays on it. The article presents this for testing variants. A path with no email on it is a holdout: a by-hand use of a documented action.

For example, 1,800 contacts enter a post-purchase automation on a 75/25 split: 1,350 are emailed, 450 are not. If the store's order export shows 162 orders from the first group and 45 from the second, that is 12 per 100 against 10 per 100. The emails caused roughly 1,350 x 2 / 100 = 27 orders. It costs nothing extra, and for a single automation it settles the matter.

Where the pairing has nothing to offer

The two tools are not connected, and neither needs the other's login: Causality Engine's integrations page describes a product that reads the channels in a GA4 export, with no connector.

So it follows GA4's limits. If your sale closes in a pipeline and not at a checkout, there is no purchase key event to pick on the start page, and ActiveCampaign's scoring and deal reports are the right instruments. The export should span 12 months or more, and a channel under 1% of credit on both methods is called too small to act on (how it works). The read knows email as one channel; which automation earns its keep is a job for the Split action.

ActiveCampaign wrote the 7-day period into the product and counts an open inside it, and the buyer is given no way to narrow either. Its pricing page lists Ecommerce reporting from Plus upward, though the help article is tagged for all four plans (both checked on 11 November 2026). So the figure that makes an upgrade look paid for comes from a rule only the seller can set.

The paid path, in order

Start with the part that costs nothing. Causality Engine, which I founded, shows a first finding on the start page from your Attribution paths CSV, worked out in the browser. If the split test leaves a gap you cannot explain, and the finding shows Direct holding sales that other channels sent, the full read is €99 once, refundable within 30 days, per the pricing page (checked on 11 November 2026).

See also

FAQ

Can the 7-day conversion period be changed?

No. The ecommerce reporting article says the timeframe cannot be adjusted. The window you can change belongs to the separate Conversion Attribution report.

Do ActiveCampaign and Causality Engine exchange data?

They do not. You download one CSV from GA4 and give it to the read; ActiveCampaign's part is the email-tagged visits GA4 recorded, per the integrations page.

Which utm_source does ActiveCampaign send?

"ActiveCampaign" when branding is on and "Newsletter" when it is off, with utm_medium set to "email" in both cases (Google Analytics article).

TAGS
Causality EngineActiveCampaignEmail 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.