department-of-veterans-affairs / caseflow

Caseflow is a web application that enables the tracking and processing of appealed claims at the Board of Veterans' Appeals.
Other
54 stars 18 forks source link

Google Analytics user segmentation #15298

Closed lund5000 closed 1 year ago

lund5000 commented 4 years ago

User story

As a Caseflow product manager, I want to segment our users in Google Analytics so I can better understand how they use Caseflow.

Acceptance criteria

Out of scope

Background/context

Without more information on our users, the data reported in Google Analytics doesn't provide us with much insight. On Hearings, for example, I'd like to start getting a better understanding around questions like:

Being able to segment our users would be an important first step towards this understanding.

Technical notes

We only get 20 custom dimensions to work with in Google Analytics, so we should make sure we plan carefully.

The User-ID feature of Google Analytics seems more aimed towards sites with different unauthenticated and authenticated user experiences. You can create a view that only includes users with a User-ID, but it can't be used to create user segments nor can it be used as a dimension in custom reports. It could still be useful in getting more accurate Users counts in our reports, but doesn't add much more value than that for us.

Yoom cautioned that relying on uncached data in the User model to populate these dimensions could slow down Caseflow.

Resources/other links

Open questions

yoomlam commented 4 years ago

Notes:

Custom dimension: db_user_id

yoomlam commented 4 years ago

Regarding GA's built-in User-ID capability.

The Reporting section of this page states:

Although the session data is available via the Core Reporting API, the userId field is not available as a dimension in reports and can not be exported from Analytics.

And the Limits sections states:

The following limits are currently in place for the User ID feature:

  • Cross Device reports enabled by the User-ID feature have a maximum date range of 90 days.
  • The User-ID value can not be queried as a dimension in reports in either the web interface or the APIs.

This feature is currently disabled and requires us to "agree to the User-ID Policy before you can enable the feature", one of which is:

 You will give your end users proper notice about the implementations and features of Google Analytics you use (e.g. notice about what data you will collect via Google Analytics, and whether this data can be connected to other data you have about the end user). You will either get consent from your end users, or provide them with the opportunity to opt-out from the implementations and features you use.

@lund5000 Do you think you'll want to enable this feature? I'm unclear as to the added benefits compared to the db_user_id custom dimension I created (mentioned in the previous comment)?

lund5000 commented 4 years ago

@yoomlam Cross-posting here from Slack: since we're already sending userId I think we should enable the User-ID feature to get the minor advantage of cleaner Users counts in our reports.

yoomlam commented 4 years ago

@lund5000 #15315 was just deployed, and I'm able to create a custom report showing pages visited by user. Let me know what you'd like to do next. I imagine you'll want to filter or group by user roles. If I provide a list of user IDs and their user groups in a spreadsheet, do you think you can combine it with GA's data to answer your questions? If not, we'll have to create another custom dimension that includes the user's user groups.

lund5000 commented 4 years ago

@yoomlam If you can provide that I can take a look and likely build out those user segments. Thanks!

pranaygp commented 4 years ago

Hey. I don't mean to take away from the work you've put into setting up Google Analytics for this, but reading the original issue description and user story, I think https://windsor.io could solve your problem really well. Since you already track userId, you should quite easily be able to populate Windsor with your users' records