Google Analytics Real Time Reporting Attributing Source/Medium to direct/(none)

Real-Time reporting in Google Analytics allows you to monitor activity on your website or app as it happens. The reports are in real-time and great for testing your analytics setup if (like me) you're not great with debugging tools such as Charles.

Recently I've been having difficulty testing attribution in the reports and have spent hours trying to solve why conversions and events have be showing up incorrectly as direct/(none) in the real time data.

If you're reading this then you've done the smart thing and Googled it!

After wasting hours of my life going around in circles trying to solve the issue,  I realised that Google Analytics was in fact the problem...

Quote Google:

Due to a change in the way Universal Analytics sends and stores campaign information for Real-Time reporting, it is possible that, during a single session, a user stops being recognized as coming from a specific campaign and is instead counted as a direct referral. As a result, you’ll see traffic and conversions incorrectly attributed to a Source of (direct). You’ll only see this in Real-Time reports; in standard reports, traffic and conversions will be attributed correctly.

An upcoming version of Real-Time reporting will not have this issue. In the mean time, however, you should be aware and interpret referral counts in Real-Time reporting appropriately. To mitigate this issue, you can either force the sending of campaign information on every hit within a session, or use standard reports (instead of Real-Time) when analyzing or reporting referral counts.”
— http://www.trackify.co.nz/blog/2017/3/9/google-analytics-real-time-reporting-attributing-sourcemedium-to-directnone

Hopefully you've read this before pulling your hair out trying to solve a problem that doesn't exist!