By default, the Mixpanel cookies works across domains and subdomains.
However, if your site is hosted on a domain like Heroku (or similar - see a complete list of affected domains) with a URL like XYZ.herokuapp.com, cross-subdomain cookies are not allowed for security reasons. With Mixpanel default settings on these sites, users' distinct_ids will be reset to a new $distinct_id on each page load. This will cause issues with Mixpanel reports, namely broken Retention reports and Funnels.
To resolve the issue on sites that don't allow cross-subdomain cookies:
Change the cross_subdomain_cookie config setting in your mixpanel.init function to false, which will allow your subdomain's cookie to be stored and keep the Mixpanel distinct_id consistent across the sub-domain:
Or, use a CNAME to change from yourdomain.herokuapp.com to yourdomain.com.