Page MenuHomePhabricator

[SPIKE] How can we persist and/or transmit funnel state between boundaries?
Closed, ResolvedPublic13 Estimated Story Points

Description

Background/Goal

in T345439: [SPIKE] Prototype API for Submitting Core Interaction Events, we asked

  1. How long can a funnel last? Does this vary by platform?

In the context of the web platform (served by the JS and PHP client libraries), a funnel MAY last beyond the boundary of a pageview, e.g. a funnel that starts when the performer clicks "Edit", continues when they click "Show preview", and ends when they click "Publish changes." Further, a funnel MAY last beyond the boundary of the tab/window closing.

In the context of the iOS and Android platforms, the equivalent boundary would be the application being backgrounded or closed.

In all cases, the state of the funnel SHOULD be persisted and/or transmitted as necessary.

Acceptance Criteria

  • There is a list of boundaries, broken down by platform
  • We decide the level of support that we can offer in persisting and/or transmitting state across each boundary << see T346316#9491331

Required

Notes

Questions

Event Timeline

@VirginiaPoundstone: I've been bold and moved this out of the current sprint. I'll follow up with @Milimetric and @xcollazo about getting time to discuss this.

@VirginiaPoundstone @phuedx emboldened by our aggressive goals, I'm thinking this spike should be pulled into the next sprint. Presumably whatever comes out of necessary discussions will inform this spike and the path forward on persisting funnel state per platform.

Initial stab at compiling info/research - hopefully it addresses the ACs and provides some additional context for thinking about how we want to build funnels
https://docs.google.com/document/d/15kqxGuzbgtZQhDv2DEBDjOyKu4nzOX6R40s_Q1XzljY/edit

Once it's reviewed/hashed about, I'll post to this ticket about resolutions/decisions/next steps

@Sfaci @SGupta-WMF Would you take a look at the doc @cjming prepared? If you have any thoughts feel free to add comments!

Done! It's a great job! I don't have any thought about it. It was more a learning than something I could contribute to. It gave me a good perspective about the topic

Added some final notes to the doc after Sam's last round of comments.

In a nutshell:
Depending on the use case, we can use either cookies or web storage to track funnel states in the web context.
In the mobile apps context, we have the ability to persist data using callbacks during activity lifecycles to track funnel states with some caveats as noted in the doc.

I'm not sure what next steps are but if/when we have the opportunity to work with a product team on developing a funnel instrument, this research will come in handy to help inform the approach.