Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
EnTerr
Level 9

Ways to grandfather app users?

Say i am reconsidering the "business model" of a Roku app and instead of an upfront payment want to go to the Dark Side by giving users a "free" app in exchange for their soul / terrorize them with ads. Which ads can be removed for a small ransom. All fine and dandy.

But the question is what to do with the existing users, which i don't feel is fair to impose the "New Deal" on. I'd like to grandfather them in the same app, based on the fact they "bought" early into the app. I mulled over it - i know privacy considerations exist and so API won't give me the user-account-# to build external DB - and i figure i can do it if there were a call like this:
roAppInfo.getOrderDate() as roDateTime  'returns timestamp of when the app was added to this user account for the first time
'(regardless on which device, regardless if free or paid)

In other words, the info from the "Order Date" column of https://my.roku.com/account/purchases for the current app only. That info is retained but i don't see it exposed under roAppInfo, roChannelStore or roDeviceInfo. It's not PII really, so can i haz cheeseburger? Or is there another way?
0 Kudos
9 Replies
renojim
Level 10

Re: Ways to grandfather app users?

I went through the same thing. I didn't come up with a satisfactory solution. I had the same idea: wouldn't it be nice if there was ifChannelStore function that would return when the channel was purchased. I could come up with ways using existing registry entries (new users wouldn't have those entries), but that wouldn't cover the case of a factory reset or a user getting a new box. In the end, I went with creating a new channel and having the old channel removed from the Channel Store. Existing users wouldn't know the difference and the old channel is still available should they add another box to their account. The only drawback is that you need a little help from someone at Roku. You can't have two channels with the same name and/or the same vanity code, although I think you can just change those for the old version and use the same names for the new version. I forget exactly how I handled that. Also, someone has to, or should, remove the old version. Of course there's also the problem of updating both versions, but I don't plan on ever updating the old version.

You'll love the Dark Side. You think regular billing/payments are screwed up? Wait until you try RAF. Smiley LOL

On a related note, I'm seeing the same shortcomings as far as subscriptions are concerned. You can purchase a subscription through roChannelStore, but as far as I can tell there's no way to retrieve any information about the subscription like when it was purchased, has it been canceled, etc.

-JT
0 Kudos
EnTerr
Level 9

Re: Ways to grandfather app users?

Well put, @renojim!
I went through that line of thought already, with the same considerations - registry markers will be lost on re-install, device may change hands so tying / affinity should be per user account and not device. I imagined the "schism" way (convert old to private, release brand new under same name) but don't like it because then i'll have 2 channels to manage. Nor do i want leaving the "grandfathered" in an end-of-life app.

I don't want a schism - instead i want to continue altogether in a single app (simplicity of mgmt) while retaining old users, with a freemium model (option to buy additional levels/packs).
0 Kudos
adamkaz
Level 7

Re: Ways to grandfather app users?

I have been deep deep in the Roku billing bowels lately. I'd vote for some more documentation if there was a place I could do that....

Anyway, here is how I would handle this. Say you currently have "product A" that you were selling your channel with. Leave that product intact and add "product B" as your new "dark side" option.

Modify your channel code to the following:
1 - when you present the option to buy products for your channel, don't show product A as an option for customers to buy (only show product B)
2 - use getpurchases() to see what products the user has purchased within your channel and if product A or B exists, then bypass ads

Granted, all my knowledge is based on monthly subscriptions. Getpurchases only persists purchases that have not yet expired.
0 Kudos
EnTerr
Level 9

Re: Ways to grandfather app users?

"adamkaz" wrote:
2 - use getpurchases() to see what products the user has purchased within your channel and if product A or B exists, then bypass ads

Oh yeah - that would be great if there was a product A - but there isn't. It's an "upfront purchase" app which some people have paid a buck for and it feels unfair to stiff them with ads because of "pivoting". Hence my hope of using the date-when-app-added-to-account as a pass
0 Kudos
adamkaz
Level 7

Re: Ways to grandfather app users?

Hmm - if getpurchases() doesn't give you anything for one time purchase apps, then I got nothing for you.
0 Kudos
renojim
Level 10

Re: Ways to grandfather app users?

I went down a similar route, too. I thought I could add a Product A & B and just "purchase" Product A for existing users for $0.00, but there's no "Price tier 0".

-JT
0 Kudos
EnTerr
Level 9

Re: Ways to grandfather app users?

"renojim" wrote:
I went down a similar route, too. I thought I could add a Product A & B and just "purchase" Product A for existing users for $0.00, but there's no "Price tier 0".

That's an interesting idea. Why is there no tier 0?
There should be a price tier $0!
A solid reason to be able to price in-app items at $0 already exists: promos. That's how it's done in the other appstores - when running a limited time promotion, you just drop item's price to 0 and show banner to the users. (Then of course the purchase confirmation dialog will show them if you were honest about it being $0 or lying)
0 Kudos
renojim
Level 10

Re: Ways to grandfather app users?

Yep, I thought the same thing about promos. I believe I brought up the need for a "Tier 0" to a few Roku*'s, but I didn't get a response. :roll:

-JT
0 Kudos
renojim
Level 10

Re: Ways to grandfather app users?

Bumping this just in case there's something new that I don't know about.

-JT
0 Kudos