locked
How to Implement advanced Trial Mode with disabling feature after trial ends.

    Question

  •  have already gone through other answers about this, but they do not address what i want to achieve.

    Scenario:

    1. User installs the app with 'N' days of Trial. ( N Days are defined in store while submitting the app)
    2. The app is fully functional during trial.
    3. After the trial ends the app should continue to work with reduced features.( So that Ads can be used as revenue stream).

    How can i implement this scenario.

    Current implementation checks the license for Active, Trial values.

    Wednesday, April 01, 2015 9:58 PM

Answers

  • If I'm understanding the question correctly you will need to track when the app was installed. I am pretty sure this is persistent (i.e. you can detect the date the user first installed the app even if they have since uninstalled and reinstalled).

    You can also manage this manually via isolated storage settings. For example, when the app is launched check if a user setting called 'Installed' exists. If not, create it and store the current date inside. Make sure you use persistent settings so the values are not wiped by a reinstall. If the app is in trial mode check if the stored date is within 'N' days, then use this to determine if the full functionality is available or not.

    (pseudo code)

    if(trialmode)

        if(setting 'Installed' exists)

            if('Installed' as date < (today - 14)) fullFeaturs = false; else fullFeatures = true;

    With this method you wouldn't even need to set the trial length in the store - just have an open-ended trial. Your own logic will determine what feature set the user sees.


    I'm a self-taught noob amateur. Please take this into account when responding to my posts or when taking advice from me.



    Thursday, April 02, 2015 1:12 AM

All replies

  • If I'm understanding the question correctly you will need to track when the app was installed. I am pretty sure this is persistent (i.e. you can detect the date the user first installed the app even if they have since uninstalled and reinstalled).

    You can also manage this manually via isolated storage settings. For example, when the app is launched check if a user setting called 'Installed' exists. If not, create it and store the current date inside. Make sure you use persistent settings so the values are not wiped by a reinstall. If the app is in trial mode check if the stored date is within 'N' days, then use this to determine if the full functionality is available or not.

    (pseudo code)

    if(trialmode)

        if(setting 'Installed' exists)

            if('Installed' as date < (today - 14)) fullFeaturs = false; else fullFeatures = true;

    With this method you wouldn't even need to set the trial length in the store - just have an open-ended trial. Your own logic will determine what feature set the user sees.


    I'm a self-taught noob amateur. Please take this into account when responding to my posts or when taking advice from me.



    Thursday, April 02, 2015 1:12 AM
  • I do not think that ApplicationData.LocalSettings which is used in windows 8.1 has any persistence setting in it. It will get cleared out on uninstall/reinstall. Also how do i find out when my app was first installed?

    FluidUIDesigns

    Tuesday, April 07, 2015 4:02 PM
  • Look here to see how to detect when the app was first installed:

    https://social.msdn.microsoft.com/Forums/windowsapps/en-US/3e335304-f042-4a1a-81b8-2f69e9581554/how-to-know-purchase-date-of-an-app-in-wp8?forum=wpdevelop

    You could store information in the roaming settings, which will persist.


    Visit http://blog.grogansoft.com/ for Windows development fun.

    Wednesday, April 08, 2015 12:38 AM