Programming Phoenix LiveView:B4.0(page 248) Presence.track_user

I humbly believe there is a bug in the code in page 248:

 Presence.track_user(self(), product, user_token)

self() is going to give each user liveview pid. And it would be different.
I tried the code and when there is one user already viewing a product, the additional user visiting causing the code of Presence.update(pid,…) on presence.ex to do nothing, because the two pids are different. Actually if you log its return is {:error, :nopresence}

I even tried the downloadable code from the PragProg site with the same results.
There is no way, with the provided code, to see that two users are viewing the same product (ie. “Chess”)

I also found something relevant, and a solution (registering the pid) at this link : Global/Shared Presence {:error, :nopresence} - Nathan Willson

Please enlighten me.