mozilla / self-repair-server

This project is now EOL, replaced by Normandy Recipe Server.
6 stars 11 forks source link

iOS promotion test #173

Closed ghost closed 8 years ago

ghost commented 8 years ago

Population:

gregglind commented 8 years ago

Maybe just doing locale=en-GB is safer? Geo is... dicey

gregglind commented 8 years ago

@rayborn,

Lots of news.

  1. I think that simple messages can phone home.
  2. If so, we need to only do so sometimes or we will MELT input.
  3. I am going to augment the common/heartbeat/ui.js to expose this for the 'real deploy'
  4. This probably means you should copy from the full heartbeat recipe, and only phonehome sometimes (say 0.01%)?
  5. Ps, I hate that we resolve sampling at the client (in general!). I will ask @willkg about filtering at input, but I think it's on us.
gregglind commented 8 years ago

@rayborn, simpler solution.

if you just want to 'ping home', I think the right thing to do is in your run (after elibility), crib these sorts of lines (from https://github.com/mozilla/self-repair-server/blob/master/src/recipes/heartbeat-by-user-first-impression/index.js#L177-L189 and nearby)

  // make and setup flow
  let flow = new Flow(local);  // create and update
  flow.began();
  maybePhonehome(flow);

If you do this for some small (known) % of users, right before you pop the message, then you have the denominator for your study :)

New algorithm:

  1. decide to show (shouldRun)
  2. wait () some random amount of time (if desired, I wouldn't actually bother, complicates things to no real benefit).
  3. GO! (run) a. phoneHome() (for a small % of users! to get denominator, from input) b. pop the message c. user will click (use GA at the site for numerator)

You actually don't need

gregglind commented 8 years ago

"You don't actuaally need".... what? I Don't know!

Another strategy is to get the aliveness from telemetry each day.

gregglind commented 8 years ago

(So to make this a simple as possible)

- config
  - sample and rest days.  also exports marketing messages array?
  - index
    - lstore: marketing messages
    - shouldRun() :  
      - checks the lstore (marketing) for restdays
      - checks for 'already seen this particular message' ?   # gross?
    - run()
      - NO phone home (use telemetry instead)
      - pop the message
       - record 'seen' in lstore

I think this is the fastest path to landing and launch.

gregglind commented 8 years ago

closed in favor of #180