The honest result so far
Final update: the test is over — this site switched back to Google AdSense on August 21, 2026, after 19 days on Journey (live August 3). The published numbers explain the decision. My last clean seven AdSense days produced $8.11 in GA4-linked ad revenue, about $1.16 per full day. Journey’s ad server showed $1.76 across its first 12 finalized reporting dates — a simple $0.15 per reported date, roughly 87% lower — and the gap never closed enough to justify continuing. Traffic held throughout, and the Journey session/pageview import needed for an honest RPM was never fixed while the test ran. Every dated row below stays up as the record; a closing reconciliation row will be added only if the final Journey dates change the totals materially.
Bookmark this completed case study
The live experiment ended on August 21, 2026, when Google AdSense was restored site-wide. Every dated row, table, and screenshot stays up unchanged as the record of what actually happened. If the last Journey reporting dates finalize with materially different totals, I will add one closing reconciliation row using the same methodology—no earlier rows will be rewritten.
What I am sharing—and what I am protecting
The AdSense number is GA4-linked advertising revenue, not a finalized AdSense payment statement. Journey revenue comes from Journey’s ad server. I am publishing aggregate gross revenue, sessions, pageviews, dates, implementation lessons, and tightly cropped source screenshots. The crops exclude account and property IDs, names, emails, payment details, page-level revenue, AdSense clicks, CTR, CPC, and ad-unit data. This is a practical operating comparison, not an accounting reconciliation.
AdSense versus Journey: the numbers I can defend
I chose the last seven complete AdSense days because they sit immediately before the final cutover and avoid a known gap in an older 30-day GA4 collection window. The amount is rounded to cents, and the daily figure is simply the total divided by seven.
Journey’s range uses every finalized revenue date currently visible, August 3 through August 14. The August 3 launch date may be a partial ad-serving day because the exact cutover time and reporting-day boundary are not reconciled. The simple per-date average is therefore directional, not a clean full-day or controlled comparison; raw totals alone are even less comparable.
The first three reported Journey dates added up to about $0.11. The latest three finalized dates added up to about $0.97. That is a welcome upward movement, but three stronger dates inside this short sample are not enough to claim a stable RPM, a successful migration, or a predictable monthly income.
Gross-revenue comparison
| System and window | Dates in range | Gross revenue shown | Simple per-date average | Evidence source |
|---|---|---|---|---|
| AdSense · Jul 27–Aug 2 | 7 full days | $8.11 | About $1.16 | GA4-linked ad revenue |
| Journey · Aug 3–14 | 12 finalized dates | $1.76 | About $0.15 | Journey ad server; launch date may be partial |
| Directional early difference | Non-equivalent windows | Do not compare totals alone | About 87% lower | Calculated from per-date averages |
Privacy-safe screenshots from the source dashboards
These are real, unedited interface crops captured on August 16, 2026. Only the aggregate metric, reporting window, and public site name remain visible; personal, account, property, and payment identifiers are outside each crop.
Traffic did not fall when AdSense was removed
A revenue drop can be mistaken for a traffic drop if the two are not measured independently. GA4 recorded 14,793 sessions and 22,053 pageviews during the 12 complete post-cutover days from August 4 through August 15. The pageview total was rechecked through the GA4 Data API immediately before publication; late processing added two views to the earlier working snapshot.
On a per-day basis, sessions were about 4% higher and pageviews about 19% higher than in the clean AdSense week. The windows are not a controlled experiment—weekday mix, search demand, countries, devices, and page mix can change—but they are enough to reject the simple explanation that “earnings fell because visitors disappeared.”
GA4’s AdSense publisher-ad events stopped after the cutover, as expected. GA4 remains useful as the independent traffic control; Journey’s own ad server is the source for Journey revenue.
The evidence method in “Trace a suspicious GA4 spike” shows why one analytics view should not be trusted without checking the edge and origin evidence around it.
Independent GA4 traffic control
| Window | Sessions | Pageviews | Sessions/day | Pageviews/day |
|---|---|---|---|---|
| Last clean AdSense week · Jul 27–Aug 2 | 8,273 | 10,789 | About 1,182 | About 1,541 |
| Post-cutover control · Aug 4–15 | 14,793 | 22,053 | About 1,233 | About 1,838 |
| Directional daily change | Not comparable (different window lengths) | Not comparable (different window lengths) | About +4% | About +19% |
What actually happened during the switch
August 3 was the final production cutover. AdSense programmatic code was removed and Journey became the active network. Running both was not a sensible fallback because Journey’s own launch checklist calls for removing the previous programmatic network.
This is a custom PHP site with ten blog languages and hundreds of legacy localized bridge routes. Checking the homepage and one English post was not enough. A later inventory audit found a duplicate Journey wrapper on hundreds of those bridge routes. The duplicate was removed, and the complete bridge inventory was rechecked until every route exposed exactly one wrapper.
The public root ads.txt path, sitewide script, cache state, and connected GA4 property were also verified. Ads and revenue appeared. The remaining failure is narrower: Journey still does not import sessions and pageviews into the fields it needs for RPM.
That experience changed my advice. On a large templated site, “the tag is on the homepage” is not a launch test. You need an inventory of every renderer: homepage, article, category, language wrapper, embed, legacy bridge, and any special layout that can inject the head twice.
Cutover and diagnosis timeline
| Date | What changed | What the evidence said |
|---|---|---|
| Aug 3 | Final Journey launch; AdSense programmatic code off | Journey ads and revenue began appearing |
| Aug 3–5 | First three reported revenue dates; launch date may be partial | $0.11 total; too early for a verdict |
| Aug 6 | Full localized bridge-route audit and duplicate-wrapper repair | Every audited bridge route ended with one wrapper |
| Aug 12–14 | Latest three finalized dates in this snapshot | $0.97 total; direction improved |
| Aug 16 | Article data freeze | 13 calendar days elapsed; 12 finalized Journey dates; portal traffic fields still show zero, so RPM is not usable |
| Aug 21 | Test ended; Google AdSense restored site-wide | Per-date gap unclosed; traffic/RPM import still broken; independent traffic healthy |

Why I never published a Journey RPM
Journey documents two reporting pipelines. Ad-server earnings can arrive for the previous day, while GA4-dependent traffic and RPM normally trail. RPM is earnings divided by traffic and multiplied by 1,000; it cannot be calculated honestly when the dashboard has no imported session or pageview denominator.
A one- or two-day traffic delay would be ordinary. Zero imported sessions and pageviews after this many finalized dashboard dates is not an ordinary daily lag. It is an unresolved reporting or integration issue that needs support investigation. It does not mean Journey earned zero—the ad server shows $1.76—and it does not mean GA4 had zero traffic—the independent GA4 report shows 14,793 sessions.
I could divide Journey revenue by independent GA4 sessions and invent a provisional number, but mismatched timezones and reporting definitions would make it look more precise than it is. The reporting path was never fixed before the test ended on August 21, so no honest Journey RPM for this site exists.

What the first 12 finalized dates do—and do not—show
They show that my early Journey earnings are materially below my clean AdSense baseline. The directional per-date gap is about 87%, while independent traffic held up. The possibly partial launch date biases the Journey average downward, so pretending this is a controlled comparison—or already a revenue win—would not be honest.
They also show improvement inside the short Journey window. The latest three finalized dates produced far more revenue than the first three reported dates. Journey says new inventory can need a ramp-up period while advertisers learn it, and factors such as geography, season, domain history, traffic mix, and ads.txt availability matter.
They do not prove that every publisher will lose 87%. This is one multilingual technology site, one date range, one implementation, and an unresolved import problem. It is equally wrong to turn a positive testimonial into a universal promise or to turn my early fault state into a universal condemnation.
My final decision came on August 21: with the per-date gap still far from closing and the traffic/RPM import still broken, I ended the observation and restored AdSense rather than extend the revenue loss to the 30-day gate. Waiting for every predefined gate was the plan; the data made a shorter test the more responsible business call.
My advice before you move from AdSense to Journey
Export your baseline before touching code. Save clean 7-, 14-, and 30-day ranges for gross revenue, sessions, pageviews, geography, device mix, and top content. Keep the original date ranges so a later comparison cannot quietly move the goalposts.
Plan for two kinds of delay. Journey documents a Net 65 payment schedule, so revenue is not immediate cash. It also documents reporting lag. Keep enough operating cash to survive both a weak ramp-up and the payment timetable.
Audit every template, not just representative pages. Remove the old programmatic code, confirm exactly one Journey script, check the homepage and real posts, then enumerate locale wrappers and unusual routes. Clear only the affected application, server, and CDN caches and verify again from the public response.
The reversible-change pattern in “Plan a shared-hosting rollback” applies here too: prepare a tested recovery path before traffic or revenue is at risk.
Verify the boring dependencies. The root ads.txt file must be live and current. The intended GA4 property must be connected. Date and timezone boundaries must be understood. Keep independent analytics because the ad dashboard and traffic system answer different questions.
Define your review gates in advance. I am using 21, 30, 60, and 90 full post-launch days. Decide what would trigger support escalation, what would justify waiting, and what sustained revenue gap would make you reassess the contract. Do not decide from one unusually good or bad day.
If you are modeling a page or asset transfer on a known connection, Model transfer time can translate size and speed into time. It does not test page speed, ad delivery, earnings, or RPM; use browser performance tools for those questions.
- Export 7-, 14-, and 30-day revenue and traffic baselines.
- Record the timezone and the last complete date in every system.
- Budget for ramp-up risk and Net 65 payment timing.
- Remove the previous programmatic network from every renderer.
- Verify exactly one Journey script on representative and unusual routes.
- Check the public root ads.txt response and keep it current.
- Keep independent GA4 monitoring and verify the intended property.
- Test desktop, mobile, article, category, language, and legacy templates.
- Set 21-, 30-, 60-, and 90-day review gates before launch.
- Escalate persistent missing sessions/pageviews beyond the normal lag window.

Should you switch from AdSense to Journey?
Journey’s current public minimum is at least 1,000 premium sessions in 30 days, alongside connected GA4, original and frequently updated brand-safe content, engagement, and human traffic. The old “around 10,000 sessions” launch-era figure is stale. Meeting the minimum still does not guarantee approval.
I would not make the decision from a promised universal RPM. The current US search results themselves illustrate the problem: broad earnings ranges are repeated from forums and individual case studies even though niche, country mix, consent, season, inventory, and implementation differ.
Use the framework below. A clean launch with complete reporting can justify a patient test. A launch with persistent missing traffic or very low ad coverage needs investigation, not motivational reassurance. And if cash flow cannot tolerate a ramp and Net 65, waiting can be the more responsible business decision.
A practical decision framework
| Your situation | Sensible next step | Do not do this |
|---|---|---|
| Clean baseline, cash buffer, and complete route inventory | Run a time-boxed Journey test with written gates | Assume a testimonial guarantees your RPM |
| Ads earn, but the portal still shows zero imported traffic | Keep independent GA4, verify setup, and escalate with dates | Treat a zero placeholder as proof of zero visitors or zero earnings |
| Revenue is weak for only a few days | Wait for the planned gate while checking implementation | Swap networks every day and destroy the comparison |
| No buffer for Net 65 or a weak ramp | Delay the switch or reduce business exposure first | Treat dashboard revenue as immediate cash |
| Old scripts or duplicate wrappers remain | Fix the implementation before judging the network | Compare a broken launch with a mature baseline |
Dated update log
This section is the reason to bookmark the article. Evidence was added at dated gates rather than rewritten after every daily fluctuation. The stable question was whether Journey would close the early gap before the cost of waiting outgrew the evidence — the log below records that it did not.
Case-study updates
| Update date | Elapsed/reporting status | What changed | Next gate |
|---|---|---|---|
| Aug 16, 2026 | Day 14; 12 finalized revenue dates | AdSense baseline $8.11/7 full days. Journey $1.76/12 finalized dates, including a possibly partial launch date. Independent traffic held; Journey traffic/RPM import unresolved. | 21 full post-launch days |
| Aug 23, 2026 | Test ended on day 19 (Aug 21); AdSense restored site-wide | Journey removed and Google AdSense re-enabled on August 21 after the per-date revenue gap failed to close and the traffic/RPM import stayed broken. Independent GA4 traffic stayed healthy through both switches. | Optional closing reconciliation row if final Journey dates change the totals |
Related KBT operating guides
What I am testing next
Official sources and evidence boundaries
The site-specific totals above come from sanitized KBT GA4 and Journey reports. Product requirements, timing, and metric boundaries are supported by the current official pages below. No third-party earnings range is used as a benchmark.
- Journey Minimum Requirements
- Journey: remove an existing ad network
- Journey script on non-WordPress sites
- Journey ads.txt guidance
- Journey: what RPM to expect right away
- Mediavine: GA4 reporting and dashboard timing
- Journey: troubleshoot missing GA4 data
- Journey payment FAQs
- Google: connect AdSense to GA4
- Google: Analytics earnings versus AdSense payments
- Google Analytics Data API metric schema
Frequently asked questions
- How much did this site earn with AdSense before switching?
The last clean seven-day window, July 27 through August 2, showed $8.11 in GA4-linked AdSense ad revenue, or about $1.16 per day. It is not presented as a finalized AdSense payment statement.
- How much did Journey earn?
Journey’s ad server showed $1.76 across 12 finalized revenue dates from August 3 through August 14, about $0.15 per reported date, before the test ended on August 21. August 3 is the launch date and may be partial, so the average and 87% gap are directional.
- How long did the site run on Journey?
The final cutover to Journey was August 3, 2026, and Google AdSense was restored on August 21, 2026 — 19 calendar days. The published dashboard snapshot covers the first 12 finalized revenue dates through August 14; the launch date may be a partial ad-serving day.
- Did traffic drop after switching to Journey?
No traffic collapse appeared in GA4. The 12-day post-cutover control averaged about 1,233 sessions and 1,838 pageviews per day, slightly above the clean AdSense week.
- What is the Journey RPM for this site?
No honest Journey RPM was ever available: Journey’s portal still showed zero imported sessions and pageviews when the test ended on August 21. Earnings existed in the ad-server report, while independent GA4 confirmed traffic. The missing denominator was an unresolved reporting or integration issue, not evidence that the site had no visitors.
- Is Journey always worse than AdSense?
This case study cannot support that claim. It documents one site’s early result during an unresolved reporting issue. Geography, niche, season, consent, inventory, traffic mix, and implementation can all change performance.
- Should I remove AdSense before Journey launches?
Follow the active Journey onboarding instructions. Journey’s current removal guide says existing programmatic ad code should be removed and representative templates and caches should be checked. Do not invent a simultaneous fallback that conflicts with your agreement.
- What should I save before switching ad networks?
Save clean 7-, 14-, and 30-day gross-revenue and traffic exports, the exact dates and timezones, geography and device context, a route/template inventory, a public ads.txt check, and screenshots or exports stored privately.
- Is this case study still running?
No. The test ended on August 21, 2026, when Google AdSense was restored site-wide, and this page is now the completed record. One closing reconciliation row may still be added if the final Journey reporting dates finalize with materially different totals.
My position now: Journey did not beat AdSense on this site inside a 19-day test — the per-date revenue gap stayed near 87% and the traffic/RPM import was never fixed — so I restored Google AdSense on August 21, 2026. The full dated evidence stays published above so you can judge the trade-offs for your own site instead of trusting a one-line verdict.

Reader discussion
Comments
Share what worked, what did not, or what you would test next. Every comment is reviewed before it appears.
Loading approved comments…
Leave a comment
No account or sign-in is required. Links and HTML are not accepted.