Fullstory
CarGo Campaign Performance
Marketing Analytics — 2026-04-04 → 2026-04-17
Fullstory
Campaign → ProductPage Report

UTM campaigns are
holding up better than the site.

ProductPage traffic dropped 38% in the last two weeks, but UTM-tagged campaigns only lost 26%. Paid channels are gaining share — the decline is coming from non-campaign traffic. This report ranks every active UTM campaign by its ability to put users in front of a car.

ProductPage views −38% UTM landings −26% UTM users · 7.3× revenue rate vip_launch_2025 · 27.6% pay Newsletter > Google end-to-end
Current 2w
12,237
ProductPage views
(Apr 4 → Apr 17)
Δ vs Prior 2w
−38%
Overall ProductPage
traffic decline
Campaign Traffic
−26%
UTM landings
Δ vs prior 2w
UTM Share of PDP
13.0%
Up from 10.9%
prior 2w
Revenue Lift
7.3×
UTM vs non-UTM
revenue conversion

Campaigns gained share while the funnel shrank.

Between Apr 4 and Apr 17, CarGo's ProductPage served 12,237 views — a 38% drop from the prior two weeks. Over the same window, UTM-tagged landings fell only 26%. Net effect: campaigns now account for 13.0% of ProductPage reach, up from 10.9%, meaning paid and owned channels held up better than organic/direct traffic.

Not all campaigns held up equally. vip_launch_2025 converts 37.9% of its traffic onto ProductPage — the best rate of any active campaign. summer_sale_2024 is second at 29.1%. Four campaigns (holiday_promo_2025, affiliate_2025, seasonal, electric_rental) convert below 20% and are candidates for creative or landing-page review.

On the channel side, email beats CPC for PDP reach: newsletter has a 30.0% PDP-reach rate against google's 25.1%, even though google drives more absolute volume. Email medium outperforms CPC (29.1% vs 24.1%).

The story extends all the way through revenue. UTM-tagged users complete the funnel at 7.3× the rate of non-UTM traffic (14.6% vs 2.0% landing-to-revenue). Campaigns account for only 8.6% of total traffic but 62% of all Revenue Events. vip_launch_2025 lands 27.6% of its users at Revenue; newsletter source converts end-to-end at 19.8% vs google's 14.4%.

Two-Week Comparison

ProductPage traffic and UTM-tagged landings, Apr 4–17 (current 2w, green) against Mar 21–Apr 3 (prior 2w, purple). The last bar in each current-window series is Apr 17, a partial day — totals are reported both raw and excluding the partial day.

Headline: Both ProductPage traffic and UTM-tagged traffic fell, but UTM held up better. Organic/direct traffic is driving the overall decline — campaigns are a smaller share of a shrinking pie, but a larger share of what remains.
ProductPage Views
−38%
12,237
vs 19,719 prior 2w
All UTM Landings
−26%
6,434
vs 8,742 prior 2w
UTM → ProductPage
−26%
1,594
vs 2,154 prior 2w
UTM Share of PDP
+2.1pp
13.0%
up from 10.9%
UTM → PDP Rate
+0.0pp
24.8%
24.6% prior 2w
ProductPage — daily views, last 28 days
Prior 2w Current 2w Partial day
Mar 21
Apr 4
Apr 17
Prior 2w
19,719
1,409 / day
Current 2w
12,237
874 / day · ex. partial: 928 / day
Delta
−37.9%
−34.1% on daily-avg basis
UTM-tagged landings — daily count, last 28 days
Prior 2w Current 2w Partial day
Mar 21
Apr 4
Apr 17
Prior 2w
8,742
624 / day
Current 2w
6,434
460 / day
Delta
−26.4%
Campaigns lost less ground
What this means: The bigger the gap between ProductPage decline (−38%) and UTM landings decline (−26%), the more evidence that organic and direct channels are where traffic is leaking. Either SEO/PR-driven traffic is softening, repeat visitors are slowing down, or referral traffic has shifted. Campaigns are not the problem — but they also aren't growing absolute volume right now.
Campaign Leaderboard

Every active UTM campaign, ranked by how many of its landers reached ProductPage. Reach volume is the 30-day ProductPage-visitor count; reach rate is that volume divided by total landings for the campaign over the same window.

Methodology: "Reach" counts users who landed with ?utm_campaign=X and visited the ProductPage anywhere in their session. Totals span a 30-day window because 2-week cells are too sparse for smaller campaigns. Rates are stable week-over-week; the trends in Section 01 apply uniformly.
Campaign Total Landings (30d) Reached PDP (30d) Reach Rate Share of PDP
vip_launch_2025 2,401 909 37.9% ▲ 22.1%
summer_sale_2024 2,158 629 29.1% ▲ 15.3%
back_to_school_2025 401 92 22.9% 2.2%
spring_collection_2025 456 103 22.6% 2.5%
display_2025 1,520 338 22.2% 8.2%
flash_sale_2025 452 99 21.9% 2.4%
cargo_rental_2025 4,677 1,020 21.8% 24.8%
content_2025 1,532 322 21.0% 7.8%
weekend_special_2025 464 93 20.0% 2.3%
electric_rental 440 88 20.0% 2.1%
seasonal 247 48 19.4% ▼ 1.2%
affiliate_2025 1,528 296 19.4% ▼ 7.2%
holiday_promo_2025 414 79 19.1% ▼ 1.9%
All campaigns 16,690 4,116 24.7% 100%
Read the table two ways. Reach rate measures creative/targeting quality — high means the people clicking your ads actually intend to rent. Share of PDP measures total contribution — high means the campaign is moving the needle on absolute traffic. A campaign can be a star on one and not the other (see cargo_rental_2025 — largest share, only mediocre rate).
Full Funnel — Landing → Revenue

The Campaign Leaderboard stops at ProductPage. This section follows the same users all the way through checkout to the Revenue Event, and compares UTM-tagged users against the rest of the site.

The payoff. UTM-tagged users fire a Revenue Event at 14.6% of their landing rate — versus 2.0% for non-UTM users. That's a 7.3× lift. Campaigns are 8.6% of traffic but 62% of Revenue Events (1,933 of 3,117 in 30 days).

UTM-tagged users

7.3× revenue rate
Users who landed with any utm_campaign in the last 30d
13,272
100%
3,159
23.8%
2,060
15.5%
1,933
14.6%
LandingUTM entry
PDPReached product
CheckoutReached cart
Revenue14.6% landing→rev

All users (non-UTM baseline)

Reference
Every user with any session activity in the last 30d (154,141 total)
154,141
100%
12,749
8.3%
3,544
2.3%
3,117
2.0%
EntryAny user
PDPHuge drop
CheckoutCart reached
Revenue2.0% site-wide
Where UTM users pull ahead. UTM-tagged users get to ProductPage at 2.9× the rate of baseline (23.8% vs 8.3%). That gap widens through the funnel: 6.7× better Checkout reach (15.5% vs 2.3%), 7.3× better landing-to-revenue (14.6% vs 2.0%). The narrowest gap is the last step — once anyone reaches Checkout, the complete rate is roughly comparable (93.8% UTM vs 87.9% baseline). The message: qualified top-of-funnel traffic is the whole game; the checkout flow itself is not the bottleneck.

Revenue by campaign — top 3

Campaign Unique Users (30d) Reached PDP Revenue Users Landing → Revenue Share of UTM Revenue
vip_launch_2025 2,340 909 646 27.6% ▲ 33.4%
summer_sale_2024 1,992 629 387 19.4% 20.0%
cargo_rental_2025 3,934 1,020 425 10.8% ▼ 22.0%
Top 3 combined 8,266 2,558 1,458 17.6% 75.4%
Per-campaign segments built via URL substring match on utm_campaign=<value>. "Share of UTM Revenue" is % of the 1,933 UTM-driven Revenue Events attributable to each top campaign.

Revenue by source — newsletter vs google

Source Unique Users (30d) Reached PDP Revenue Users Landing → Revenue Lift vs site avg (2.0%)
newsletter 4,137 1,375 820 19.8% ▲ 9.9×
google 4,873 1,367 702 14.4% 7.2×
Newsletter delivers 17% more Revenue Events than Google despite 15% fewer users. Email is the highest-leverage acquisition channel in the current portfolio.

💰 What this unlocks

📈

Campaign ROI is clearer than it looks

The per-campaign revenue rates (27.6% / 19.4% / 10.8% for the top 3) are real end-to-end conversion rates, not proxy metrics. This is the number to use for media-mix and budget decisions.

🎯

vip_launch_2025 — 2.6× cargo_rental_2025 on revenue

Both drive comparable absolute revenue (646 vs 425 users), but vip_launch_2025 does it on 40% fewer sessions. Scaling vip_launch spend (or cloning its approach) has much higher marginal ROI than scaling cargo_rental.

📧

Newsletter is a 9.9× revenue multiplier

Against the site-wide 2.0% revenue rate, newsletter delivers 19.8% — a 9.9× lift. This is the single highest-leverage channel the marketing team controls. A 20% cadence increase likely outperforms a 20% CPC budget increase.

⚠ What the funnel hides

🔁

Revenue > Checkout?

1,933 UTM-tagged users fired Revenue Event; only 2,060 reached a URL with "checkout" in the path. That's 93.8% — very tight, likely because Revenue Event fires server-side or from a confirmation page outside the checkout URL pattern. Sanity-check the event definition before using landing-to-revenue as a primary KPI.

📊

Attribution model is last-UTM-in-URL

A user who landed with utm_campaign=X and later revisited with utm_campaign=Y counts toward both segments. This overstates combined totals by a small amount. For precise attribution, model in a warehouse using first-touch or multi-touch.

🗓️

Revenue Event may include test/demo firings

CarGo is a demo environment. The 2.0% site-wide revenue rate is high for a live rental product — some of the volume likely comes from internal demos, scripted bots, or QA. Real-world rates would differ; the relative ratios between campaigns should still hold.

Source & Medium Performance

Campaign-level results, zoomed out. Top referrer sources and mediums driving qualified ProductPage traffic. Same methodology as Section 02 — 30-day window, PDP-reach filter applied via segment.

Top utm_source (by PDP reach)
Source Landings PDP Reach Rate
newsletter 4,588 1,375 30.0%
google 5,456 1,367 25.1%
bing 1,379 282 20.4%
facebook 500 99 19.8%
cargo_email 440 88 20.0%
instagram 484 86 17.8%
youtube_tutorial 315 71 22.5%
guest_post 332 70 21.1%
blog 291 63 21.6%
infographic 306 60 19.6%
utm_medium (by PDP reach)
Medium Landings PDP Reach Rate
cpc 6,835 1,649 24.1%
email 5,028 1,463 29.1%
display 1,520 338 22.2%
content 1,532 322 21.0%
referral 1,375 266 19.3%
social 1,219 243 19.9%
paid 247 48 19.4%
affiliate 153 30 19.6%
All 17,909 4,359 24.3%
Email punches above its weight. Newsletter drives 84% as many landings as Google but more absolute PDP reach (1,375 vs 1,367). The email medium converts at 29.1% vs CPC's 24.1%. In a cycle where paid volume is harder to come by, every newsletter send is worth disproportionate attention.
Winners & Laggards

Where to lean in and where to cut. The table in Section 02 is dense — this section tells the story.

🏆 Winners — double down

vip_launch_2025 — 37.9% reach rate

Best ratio in the portfolio. 909 of 2,401 landers reach ProductPage. Creative and targeting are clearly aligned — the people clicking through show rental intent. Extending this campaign or lifting its budget is a high-confidence bet.

☀️

summer_sale_2024 — 29.1% reach rate

Still running into 2026 and still outperforming most newer campaigns. Likely strong seasonal audience fit. Consider spinning a summer_sale_2026 variant with the same creative DNA.

📧

Newsletter > Google for PDP reach

Newsletter delivers 1,375 PDP visits vs Google's 1,367, on 16% fewer landings. Email medium hits 29.1% overall vs 24.1% for CPC. Email list is a high-leverage channel right now.

🚙

cargo_rental_2025 — largest contributor

Only a 21.8% reach rate, but sheer volume (4,677 landings) makes it the single biggest source of campaign-driven PDP traffic (24.8% of all UTM-driven PDP visits). Keep it running at current spend; investigate whether rate can be lifted without volume loss.

⚠ Laggards — review or cut

🎁

holiday_promo_2025 — 19.1% reach rate

Lowest rate of any active campaign. 414 landings, only 79 reach PDP. Off-season (we're in April) — likely a stale campaign still funded. Candidate to pause or refresh for a summer angle.

🤝

affiliate_2025 — 19.4% reach rate

1,528 landings produce only 296 PDP visits. Meaningful volume but poor conversion — affiliates may be sending low-intent traffic. Audit top affiliate sources; consider cap-per-affiliate or renegotiate payout structure.

📅

seasonal — 19.4% reach rate

Small campaign (247 landings) and the worst rate tie. Unclear what "seasonal" maps to in 2026-04. Either clarify targeting or sunset.

electric_rental — 20.0% reach rate

Niche product, small volume (440). Low rate suggests the landing experience isn't matching ad expectations — users arriving from EV-focused ads may not find an obvious EV subset on the search page.

Non-Campaign Friction in the Funnel

Product issues, errors, and UX friction that are holding the funnel back independently of any campaign. A product fix here lifts every campaign's conversion simultaneously — this is the common-denominator ceiling on everything in Sections 02–05.

Why this is in the report. The campaign-level numbers describe how much traffic campaigns deliver and what share converts. They don't explain why any given campaign's ceiling is 37.9% and not 60%. The issues below are the ceiling. Fix them and every conversion rate in this report moves up.

🆕 New regressions — current 2w only

These signals spiked in the current 2-week window vs the prior. Anything with delta_pct > 100% is effectively brand new.

Signal Category Users (2w) Δ vs prior 2w Why it matters
TypeError: n is not a function JS error · main.000620b5.js 48 +345% Brand-new exception in the main bundle. Strongly suggests a recent deploy regression. Line numbers map to a minified function — needs source-map lookup.
Error clicks on [SH] Purchase Complete Terminal checkout button 26 +100% Users reach the final "complete purchase" button and it errors. Direct revenue loss. Zero prior-2w occurrences.
City API: St. Louis Network error · /v2/cars/getAllCarsInOrgInCity 151 +176% City inventory API degraded. Was 3.0% of funnel users prior 2w, now 8.2%. Users in this city dead-ended in search.
City API: Austin Network error · same path 146 +107% Same failure mode. 8.0% of funnel users now affected (up from 3.8%).
City API: Raleigh Network error · same path 120 +94% 6.5% of funnel users now affected.
iOS SwiftUI addToCartButton error clicks Mobile · 3 controller hashes 16 +100% New mobile regression in CarSelectionViewController. Three distinct controller memory-address hashes suggest a re-instantiation pattern — likely a fresh build with broken action binding.
error Insufficient Funds Console · Payment-side 7 +134% Small absolute count but climbing fast. Could indicate payment-processor contract change or a new class of declines.
error Transaction Denied Console · Payment-side 18 +100% Payment rejections doubled. Silent-failure pattern from the prior UX report may still apply — users may not see the error.
Cannot read properties of undefined (reading 'firstname') Uncaught exception 3 new Likely a checkout personalization bug — code assumes a user object that isn't always present. Small count but a pure-crash signature.

⏳ Ongoing friction — stable, still costly

These issues are not new, but they're affecting large user counts and putting a ceiling on the entire funnel. Documented in the prior CarGo UX Report; restated here because they directly cap campaign ROI.

Signal Stage Users (2w) Δ Fix complexity
"Car is not available" error on Add to Cart PDP → Cart 2,346 −5% (flat) Hard · inventory data quality · 88% of funnel entrants
Share button dead clicks (SVG line intercepts) PDP 968 +22% Trivial · single CSS rule (pointer-events: none on svg>line)
Pickup Location dead clicks Home / Search 322 +32% Medium · field appears interactive but isn't; needs focus behavior
Total Price dead clicks (users expect detail) PDP sidebar 341 +28% Medium · add price breakdown modal or tooltip
FAQ Item dead clicks Support / Info 253 +58% Small · FAQ accordion not expanding — JS handler bug
Login modal dead clicks PDP 17 +121% Medium · modal appears but click handlers mis-wired

✅ Improving — what's getting better

Good news worth naming — these indicate that something in the product pipeline is working.

JSON syntax errors
−48%
11
users (down from 21 prior 2w)
Car image rage clicks
−10%
302
users (down from ~334)
The unifying story. UTM-tagged users already fire Revenue Events at a 7.3× multiple of baseline, which means campaigns are the single highest-leverage acquisition channel. But UTM users still hit every product bug on the way through. The compounding effect of the fixes above: every campaign on the leaderboard in Section 02 has an artificially depressed conversion rate — the vip_launch_2025 ceiling is higher than 27.6%, the newsletter source ceiling is higher than 19.8%. Product fixes move every row in those tables simultaneously.
Recommendations

Prioritized by impact on revenue over the next cycle. Product fixes listed separately from marketing moves — different owners, different cadences.

Product fixes — lift the ceiling for every channel

These are engineering/product items, not marketing. Every one of them raises the conversion rate on every row in the Campaign Leaderboard simultaneously. Owners: engineering, product, design.

P1

Investigate the new TypeError: n is not a function regression

+345% in 2 weeks in main.000620b5.js. Brand-new signature. Correlate to deploy history. If it maps to a known release, this is a hotfix candidate; if not, attach a source map and traceback. 48 users per 2w is small but climbing fast.

P1

Fix the Purchase Complete error-click regression

26 users clicked the final terminal checkout button and got an error — zero occurrences in the prior 2w. Terminal-step failures directly cost revenue. Investigate the click-handler or the API call behind it; this one rolls up to the Wall 2 payment issues from the prior UX report and may be related.

P1

Investigate city inventory API degradation (Austin, St. Louis, Raleigh)

Three cities jumped 94–176% in network-error rate this 2w. 417 users across just these three cities hit the error. Known issue from the prior UX report but it got worse — suggests either a new deploy touched this endpoint or an upstream data source changed. Start with server-side logs on /v2/cars/getAllCarsInOrgInCity.

P2

iOS SwiftUI Add to Cart error-click regression

16 users across three distinct controller memory-address hashes. Only 16 users but every one is abandoning on mobile. If a mobile release shipped in the last 2 weeks, that's the regression window. Correlate to App Store/TestFlight deploy timestamps.

P2

Fix the share-button dead-click — trivial, 968 users

SVG <line> inside the share button is intercepting clicks. One CSS rule: button#share-button svg * { pointer-events: none; }. Ships in a 5-minute PR. Affects 28% of ProductPage users.

P3

Monitor payment-side signals — Transaction Denied +100%, Insufficient Funds +134%

Payment-processor anomalies are doubling. Not campaign-related but could reflect a gateway contract change, a fraud rule update, or a new customer segment. Loop in whoever owns the payment integration.

Marketing moves — reallocate toward what's working

Owners: marketing team. Assumes the product fixes above ship in parallel — the upside numbers below compound with those fixes.

P1

Pause or rework the bottom four (holiday, affiliate, seasonal, electric_rental)

All converting below 20% to PDP. Combined budget is likely non-trivial. Auditing these four alone could free budget for vip_launch extension or a summer variant. Start with holiday_promo_2025 — it's temporally off.

P1

Extend vip_launch_2025 or clone its creative brief

27.6% of landers fire Revenue Event — the highest rate in the portfolio and 2.6× cargo_rental_2025's revenue rate despite similar absolute volume. Whatever targeting, copy, and landing experience this campaign uses, document it and apply to a second parallel campaign. Biggest upside lever in the portfolio.

P2

Increase newsletter send cadence or segmentation testing

Email already converts at 29.1% to PDP and 19.8% to Revenue — 9.9× the site baseline. A second weekly send, or a segmentation A/B, is low-effort experimentation with a known-good channel.

P2

Investigate the organic/direct decline separately

ProductPage −38% vs UTM −26% means 12pp of the gap lives outside campaigns. Before judging marketing alone, someone should look at: SEO rankings on core rental keywords, referrer drop-off from partner sites, and repeat-visit behavior (is session frequency dropping, or just new-visitor acquisition?).

P3

Audit cargo_rental_2025 landing experience for rate lift

It's the largest single source of campaign PDP traffic (24.8% of all UTM PDP reach), but its 21.8% PDP rate and 10.8% Revenue rate are both below portfolio average. Even a 5pp rate lift here would add ~235 PDP visits and ~115 revenue conversions/month without any budget change.

P4

Instrument the utm_campaign page variable for accurate per-PDP-visit attribution

Right now the report relies on landing-page URL detection; once the user SPA-navigates to the PDP the UTM leaves the URL. Pushing utm_campaign into the Fullstory page variable on every route (and adding a server-side capture) would unlock per-campaign PDP conversion trends at the day level — which would let us do exact 2w comparisons per campaign, not just per-portfolio.

Methodology & Data Sources

Every metric in this report is computed via the Fullstory MCP on the CarGo demo org. Click through for live data.

Windowing

📅

Current 2w

2026-04-04 → 2026-04-17. Apr 17 is a partial day (report was generated mid-day); totals are reported raw and with the partial day excluded.

📅

Prior 2w

2026-03-21 → 2026-04-03. 14 complete days.

📅

Campaign breakdowns

Campaign/source/medium tables use a 30-day window (Mar 19 → Apr 17) because 2-week cells are too sparse for smaller campaigns. Rates are stable within noise across the two windows.

Definitions

🎯

Landing

A page view whose URL contains the relevant UTM substring (utm_campaign=, etc.).

🏁

PDP Reach

A landing event from a user whose session also included a visit to page_id 2 (ProductPage). Implemented as a Fullstory segment attached to the landing metric.

📊

Reach Rate

PDP-reach landings ÷ total landings for the same campaign/source/medium. Read as: "Of the users who came in with this UTM, what % reached the ProductPage."

Saved Fullstory Objects

🧭

Segment: ProductPage visitors (30d)

↗ P2WW49fGt3C4

📈

Metric: ProductPage daily

↗ 907915089

📈

Metric: UTM landings by campaign (PDP-scoped)

↗ 1495697180

📈

Metric: UTM landings by source (PDP-scoped)

↗ 1747194976

📈

Metric: UTM landings by medium (PDP-scoped)

↗ 175375997

💰

Metric: Revenue Event (unique users)

↗ 491581852 · Event ID KSNijoJTTEpe

🛒

Metric: Unique Checkout visitors

↗ 1674246945

👥

Segment: UTM-tagged users

↗ grROgoOxfAsi

🏷️

Campaign cohorts (per-campaign revenue)

vip_launch_2025: qwpqkP6FLbZE
cargo_rental_2025: ykGRcuQPPUKm
summer_sale_2024: 8kIAWmrDUVSm
newsletter source: xoQDSVtbZ2BE
google source: LkepNzd0GxRX