department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
283 stars 204 forks source link

Analytics Implementation or QA Support for Accredited Representation Management - Find a Representative #70420

Closed oddball-lindsay closed 6 months ago

oddball-lindsay commented 11 months ago

Google Analytics Implementation

Description

Required

Acceptance criteria

Additional information

Please refer to Platform Collaboration Cycle or the Analytics Request Touchpoint on Platform website for more information about the Collaboration Cycle.

johnny-jesensky-adhoc commented 9 months ago

This work will be carried over to the following sprint. This ticket has been carried over a few times, and would benefit from some more targeted AC, and a solid Definition of Done on this.

@jwoodman5 - I will work with the team on making the needed edits, and will plan to finalize this in the near future.

FYI @jestutt

oddball-lindsay commented 9 months ago

Some context that may be helpful around this history of this ticket: I opened this when we were planning to launch our MVP of Find a Representative, however the team decided to "no go" after discovering that the representative contact information returned in the product's search results is not always accurate (and helpful to users).

From there, our team has been working on a v2.0 that includes features to help address the inaccuracies with contact info. This includes a banner above search results to inform users that not all info is up to date, and an option for users to report any contact information they find inaccurate. We plan to monitor these reports and pass them along to the Office of General Counsel, who manages the database of rep contact information.

We are aiming for Staging Review in a few weeks and hope to do a staged rollout in early March.

@johnny-jesensky-adhoc please let me know if I can help with anything in this particular ticket! And if this "no go" scenario were to happen again, would it be better to close out the ticket and submit a new one closer to the new release date?

johnny-jesensky-adhoc commented 9 months ago

Hi @oddball-lindsay - thank you for all of this context. I just took over as PM for the Analytics Team, so that background is hugely helpful.

I think for now, we can keep this ticket open, and just keep it in our backlog until it's ready to be picked up. We can always edit the details if needed, or if the V2.0 is different from the original ask.

Feel free to provide updates as a comment on this ticket. Thanks!

oddball-lindsay commented 8 months ago

Hi @johnny-jesensky-adhoc we had our Staging Review yesterday and all went well, so we are on track for release! Our Go/No Go is on 3/5 and if we decide to "Go", we will enter a staged rollout from 3/5 - 3/18 (Staged Rollout Schedule if you're interested).

oddball-lindsay commented 8 months ago

@johnny-jesensky-adhoc we have an outstanding bug that is launch-blocking, so we will hold off on "Go" until this is resolved. After resolution, staged rollout will begin and I can then predict the 100% live which will be ~2 weeks from the begin of staged rollout.

I'll circle back when we begin staged rollout so yall can predict when we'll hit 100% of users and determine from there the timing of analytics implementation :)

jestutt commented 8 months ago

@oddball-lindsay Here are the dataLayer push events that the FEs need to add to the FAR search. I'll confirm them and the GTM/GA side once they are in place. Please let me know or have them reach out if they have any questions.

DataLayer Push Events

far-search fires when a new search is initiated. A new search is when either required fields are changed -- 'Type of accredited representative' and 'Address, city, state, or postal code' -- and hits search.

'event': 'far-search'
'search-query': 'xxxxxxx', //full query input from the user -- i.e. 'Address, city, state, or postal code (*Required)'
'search-filters-list': {}, //key value pairs of search filter parameters like 'Type of accredied representative', 'Search area', 'Name of accredited representative'
'search-selection': 'Find VA Accredited Rep', 

far-search-results fires when the results of a new search loads for the first time. Should fire once for each search.

'event': 'far-search-results'
'search-query': 'xxxxxxx', //full query input from the user -- i.e. 'Address, city, state, or postal code (*Required)' 
'search-filters-list': {}, //key value pairs of search filter parameters like 'Type of accredied representative', 'Search area', 'Name of accredited representative' 
'search-selection': 'Find VA Accredited Rep', 
'search-results-total-count': 99, //populate with the total number of search results
'search-results-total-pages': 10, //populate with total number of result pages

far-search-results-click fires when a user clicks on any link in a result.

'event': 'far-search-results-click'
'search-query': 'xxxxxxx', //full query input from the user -- i.e. 'Address, city, state, or postal code (*Required)' 
'search-filters-list': {}, //key value pairs of search filter parameters like 'Type of accredied representative', 'Search area', 'Name of accredited representative' 
'search-selection': 'Find VA Accredited Rep', 
'search-results-id': 'xxxxx', //populate with the individual result id
'search-results-total-count': 99, //populate with the total number of search results
'search-results-total-pages': 10, //populate with total number of result pages
'search-result-position': 99, //populate with the current pagination number
'search-result-page': 10, //populate with the current pagination number

far-search-results-change fires when a user only changes one of the non-required filter fields -- 'Search area' and 'Name of accredited representative' -- and hits search or changes the sort field -- 'Sort by' -- and hits apply.

'event': 'far-search-results-change'
'search-query': 'xxxxxxx', //full query input from the user -- i.e. 'Address, city, state, or postal code (*Required)' 
'search-filters-list': {}, //key value pairs of search filter parameters like 'Type of accredied representative', 'Search area', 'Name of accredited representative' 
'search-selection': 'Find VA Accredited Rep', 
'search-results-change-action-type': 'sort', //dynamically populate with 'sort' or 'filter'
'search-results-change-action-label': 'newest', //'oldest' //populate according to the text label of user selection indicating the more specific action
'search-results-total-count': 99, //populate with the total number of search results
'search-results-total-pages': 10, //populate with total number of result pages
'search-results-page': 1, //populate with the current pagination number

far-search-results-outdated fires when a user clicks on a result's 'Report outdated inforamtion' button.

'event': 'far-search-results-outdated'
'search-query': 'xxxxxxx', //full query input from the user -- i.e. 'Address, city, state, or postal code (*Required)' 
'search-filters-list': {}, //key value pairs of search filter parameters like 'Type of accredied representative', 'Search area', 'Name of accredited representative' 
'search-selection': 'Find VA Accredited Rep', 
'search-results-id': 'xxxxx', //populate with the individual result id
'search-results-total-count': 99, //populate with the total number of search results
'search-results-total-pages': 10, //populate with total number of result pages
'search-result-position': 99, //populate with the current pagination number
'search-result-page': 10, //populate with the current pagination number

Not that the search-results-id referred to in the far-search-results-click and far-search-results-outdated events is based on the id I can see in the HTML (screenshot below):

Screenshot 2024-03-05 at 1.19.48 PM.png

Additional Items

Screenshot 2024-03-06 at 11.33.50 AM.png
oddball-lindsay commented 7 months ago

@jestutt PR ^ for that datalayer work (cc @cosu419)

oddball-lindsay commented 7 months ago

@jestutt I think all the work you need has been completed with the merged PRs above. Do you or @johnny-jesensky-adhoc have an estimate of when this request will be completed, with setup on the GTM/GA side?

I'm planning to start discussing the Domo Dashboard needs after this is complete. (https://github.com/department-of-veterans-affairs/va.gov-team/issues/70424)

jestutt commented 7 months ago

@oddball-lindsay I'm trying to get it into this sprint but it might it might go into the beginning of the next. We're likely going to need custom dimensions for some of the search fields -- same method as tracking on other searches -- which makes this a little more complicated than setting up for other events. Will let you know when we start working on them.

jestutt commented 6 months ago

@oddball-lindsay I've been working on the GTM implementation and have noticed a few issues with the events.

I should have the GTM implementation completed today, I just won't be able to check the change events tracking at this time.

oddball-lindsay commented 6 months ago

Thanks for flagging these @jestutt! We are mid-sprint at the moment, but can pick up these changes in our next sprint which is 5/14-5/27. I'll be sure to circle back when the updates are made :).

jestutt commented 6 months ago

@oddball-lindsay I've put together the UA and GA4 events in GTM but haven't been able to confirm them at the moment since it looks like your team is currently working on them. Rather than wait, I've gone ahead and published the GTM tags and we can refine and confirm once the devs have completed their update.

@johnny-jesensky-adhoc We can move this to a refinement/confirmation ticket in the next sprint and @Blivaditis will be able to assist from here.

johnny-jesensky-adhoc commented 6 months ago

Great -- @oddball-lindsay, as Jamie alluded to, and to better track the work for our team on this -- I'm going to close this ticket out. We can look to create a separate task for additional refinement needed on this, once your team is done with their work on these events, and has more bandwidth.

FYI @Blivaditis , @jestutt