4 out of 4 rated this helpful - Rate this topic

Creating Trial Applications Overview for Windows Phone

Windows Phone

March 22, 2012

Windows Phone Marketplace allows you to design and implement a trial mode for your application. Experience shows that users enjoy trying out new products and are much more likely to buy an application if they have been able to try it before buying.

The Windows Phone Application Platform makes it easy for you to provide trial and full versions of your apps within a single XAP package. Users wishing to buy an app they are trying can seamlessly access the familiar Windows Phone Marketplace purchase experience from within the trial app.

There are no restrictions around how you design the trial experience for your application. You can determine the extent of functionality that you want to expose to your user, whether the trial mode is of a limited duration, or how you want to encourage your user to buy your application. You can also determine whether an application’s data and state are maintained if a user chooses to purchase a trial application.

When you submit your trial mode application to the Windows Phone Marketplace, check the Trial Application box and the Windows Phone Marketplace client will display a Try option view on the app’s detail page.

Try-and-Buy Overview

Trial Mode Testing Overview

Trial Application Best Practices

Try-and-Buy Overview

To implement a trial mode for your app you must define and implement how trial behavior differs from full mode behavior. In order to run in the correct mode when executed by a user, your code must determine whether the app is running with trial or with full execution rights. To provide a purchase path your code must launch the Windows Phone Marketplace client.

The trial/full state of a user’s execution rights for an app are maintained in a license. When a user tries your application, it is installed on their phone along with a license that grants them the right to try the app. Trial licenses do not expire but when a user purchases an app they have been trying a full license is downloaded. The full license replaces the trial license and grants full rights to the application.

To determine whether the license in place at run time is trial or full execution rights, Windows Phone 7 supplies methods that return true if the application is running under a trial license and false if the application has been purchased and is running under a full license.

To allow a trial user to purchase your application Windows Phone 7 supplies methods that open the Windows Phone Marketplace client to the app’s purchase page.

XNA Framework developers should use the GamerServices.Guide class to build your try and buy experience. Use the Guide.IsTrialMode property to get current license mode and the Guide.ShowMarketplace method to initiate the purchase experience.

Silverlight apps can use the XNA Framework methods described above or use the IsTrial() method to get current license state directly, and the Show() method of the MarketplaceDetailTask class to initiate the purchase experience. To understand the trade-offs between choices see the Trial Mode Testing Overview section below.

For more information on implementing a trial experience for a Silverlight application, see How to: Implement a Trial Experience in a Silverlight Application for Windows Phone. For information on implementing a trial experience for an XNA Framework application, see How to: Implement a Trial Experience in an XNA Framework Application for Windows Phone.

Trial Mode Testing Overview

Determining trial state and navigation to the Windows Phone Marketplace for purchase must be simulated by your code when you are testing or debugging your application. Methods for this functionality do not work in debug or testing mode because required licensing and Windows Phone Marketplace ID properties are not created until after your application is complete and submitted.

XNA Framework applications should always use the GamerServices.Guide class for these functions. This class has built in trial and purchase simulation features. For more information, see Simulating Trial Mode for Marketplace Content.

Silverlight applications can also use the GamerServices.Guide class or implement their own custom behavior. Using the GamerServices.Guide calls in a Silverlight app may save some work simulating trial license state during debug and testing. Using the LicenseInformation.IsTrial and MarketplaceDetailTask.Show methods allows more opportunity to customize your trial testing and debugging methods.

This section describes the best practices you should consider when you create a trial application.

Important note Important Note:

Cache license state if you check trial state frequently. Note that the IsTrial() method and the Guide.IsTrialMode property are designed to be event-driven. A typical call takes approximately 60 milliseconds or more.

  • XNA applications should always use GamerServices.Guide class to implement trial mode.

  • When setting the Guide.SimulateTrialMode flag to TRUE, always enclose it in an #if DEBUG/#endif statement.

  • Check the IsTrial() state when your application loads or resumes.

    You can avoid some potential trial design flaws especially if you cache the IsTrial() state.

  • Do not rely on usage time limited trials to protect your application’s value.

    Typically, it is best to protect the value of your full mode application by limiting trial access to key code paths. A user may uninstall and retry an application without restriction so a trial design that offers full mode behavior for a limited time provides only inconvenience as a barrier to reuse.

  • Provide a way for users to buy your trial application before the end-of-trial.

  • Make sure that you help users understand why they want to buy your application, perhaps, by implementing your trial limit at a point in the application where they will naturally want more.

    For example, let users experience the first level of game play and require them to purchase the application to play higher levels, retain points, or to connect to a gaming service.

Did you find this helpful?
(1500 characters remaining)