Very good question, and there's an important reason why.
But before that, note you can view this data in the Raw Events section, which was specifically designed for debugging, viewing logs of conversions, clicks etc. So first, try there and see if you can get what you need.
Now, there are some items we don't provide in general reporting, like:
- Hit ID
- Visitor ID (a.k.a session ID)
- IP address
- Node ID/name
- External Click IDs
The main reasons is because of their uniqueness.
These are parameters which will either return a lot of rows of data, in most cases a unique value per visitor or even per node they touch in the case of hit ID.
The end result is possible reports that return tens of thousands of rows, which are impractical to display in the UI, and also place a large burden on the database.
Analytics databases like aggregating a lot of data into a small number of rows. Not taking a large amount of data and barely aggregating, just returning a huge number of unique results.
Impracticality aside, these database queries are very resource intensive and can take a long time. As a SaaS product we have to be mindful that many customers are sharing the database. So if we let users run extremely intensive queries, what do you imagine will happen? A few users will inundate the system (especially via API) with overzealous queries and degrade performance for everyone. This must be avoided.
The Raw Events section however does allow you to retrieve this unique data, but with restrictions that avoid the above problems.
- You must select a funnel and optionally a traffic source, which limits the query size
- The Raw Events API only returns the most recent 1000 rows of data. If more data is returned, the query stops. So long, intensive queries are avoided.
- The data returned is paginated, so that the frontend smoothly displays the data
If you have any scenarios where you need the above data in the reporting section, let us know. We're interested to hear of use cases where you believe the attribute is needed.