I'm been experimenting with a freemium model which consists of two channels:
1) a free trial (free channel)
2) paid, premium, version
These two channels are essentially the same codebase,
#1 can upgrade to #2 using ifChannelStore.DoUpgrade() and this all works fine.
Now add in the wrinkle that I'd like to offer a free upgrade to some users (you can imagine all the uses cases here). I've been using the test users facility and it works like this:
1. user click upgrade
2. two choices:
2a: purchase upgrade -> ifChannelStore.DoOrder,DoUprade,
2b: earn free upgrade ->ifChannelStore.GetPartialUserData('email'), I add email to testers list, I send user an email explaining that they are free to upgrade
I'm finding that 2b. is cumbersome. There are manual steps involved which slows it down, but I think the main issue is that even as a test user the channel store still shows them what appears to be a full charge. Only later, if they follow through, will they discover an invoice for $0.00 because they are on the testers list.
I attempt to explain all this in the email I send, but I'm afraid it's not enough, so I've been contemplating a different upgrade scenarios that I just do myself using flags on my backend database. This solution has several drawbacks:
1. I have to do the work
🙂 2. tends to be tied to a device, not a roku user which is a discouraged practice
3. impossible to change the actual channel (branding, posters, etc.)
My purpose in writing this is to start a discussion about best practices for this situation (I'm sure my channel, Rokagram, is not unique in this regard), and to ask about the possibility of two tweaks from the Roku side:
1. an API to manage the testers list
2. a flag on each tester "nocharge" which results in them seeing a $0.00 price when they upgrade.
I believe the second one is most important.
--andy (channel: Rokagram)