Marketing Attribution

I have a slight misunderstanding with the Marketing Attribution CoolTshirts project.
In task number 6, where we count how many last touches on the purchase page is each campaign responsible for, the solution provided by both the hint and the walkthrough puts the required WHERE clause to the first subquery counting last touches, code looking like this:

with last_touch as (
select user_id, max(timestamp) as ‘ts’
from page_visits
where page_name = ‘4 - purchase’
group by 1
),
lt_utm as (
select lt.user_id, lt.ts, pv.utm_campaign, pv.utm_source
from last_touch lt
join page_visits pv
on lt.user_id = pv.user_id
and lt.ts = pv.timestamp
)
select utm_campaign, utm_source, count(*)
from lt_utm
group by 1, 2
order by 3 desc
;

My solution was a little bit more cumbersome and apparently has a flaw, which I can’t figure out. I add the page_name column to the join subquery and the neccessary WHERE clause to the end of the query, code looks like this:

with last_touch as (
select user_id, max(timestamp) as ‘ts’
from page_visits
group by 1
),
lt_utm as (
select lt.user_id, lt.ts, pv.utm_campaign, pv.utm_source, pv.page_name
from last_touch lt
join page_visits pv
on lt.user_id = pv.user_id
and lt.ts = pv.timestamp
)
select utm_campaign, utm_source, count(*)
from lt_utm
where page_name = ‘4 - purchase’
group by 1, 2
order by 3 desc
;

Result is nearly the same, difference is only one user in each of the top three campaigns missing in my solution. I understand that the provided solution is the correct one, but I don’t understand why.

Can anyone explain, where does my solution lose these three users?
Thanks.