Building a great app: Options for making money


    canadian moneyIf you are building a great app, you may want to make money doing it. You have a couple of options, charge for the app, in app purchases, and ads.

    This blog is part of a series, you can see the rest of the series here.

    Less than 5% of app downloads are paid apps. But, that doesn’t mean you can’t make money in the store. There are generally 4 ways to make money with an app.

    • Charge for the app
    • Durable In App Purchases
    • Consumable In App Purchases
    • Ads

    Let’s take a look at the support in Windows 8 store apps for each of these options

    Charge for the app

    All app stores give you the option of charging for an app. One of the things you should consider when you charge for an app, is having a free trial version. Most users prefer to try before they buy. When deciding to offer a trial, you should be aware of different trial versions you can offer.

    • Time limited Trial – give someone the full functionality of your app for a limited amount of time.
    • Feature limited Trial – give someone a hint of what your app can do without providing full functionality.
    • Ads in the free trial version, no ads in the paid version – display an ad control in the free version of the app, and do not display ads if the user has paid for the app.

    Most of these options will require you to detect whether the user has the free or paid version of the app. You can determine this by using the LicenseInformation class. You can detect whether the user is using a trial version and you if they are using a time limited trial you can detect the expiration date for the trial.

    licenseInformation = CurrentApp.LicenseInformation;
    if (licenseInformation.IsActive)
             if (licenseInformation.IsTrial)
                 // Show the features that are available during trial only.
    var longDateFormat = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longdate");
                // Display the expiration date using the DateTimeFormatter. 
                // For example, longDateFormat.Format(licenseInformation.ExpirationDate)
                var daysRemaining = (licenseInformation.ExpirationDate - DateTime.Now).Days;
                // Let the user know the number of days remaining before the feature expires
                 // Show the features that are available only with a full license.
             // A license is inactive only when there's an error.

    You can find more information on Trial versions here including information on how to TEST your code to make sure it correctly detects trial and paid versions.

    Durable In App Purchases

    Durable in app purchases are purchases that a user makes once and are available from that point forward. For example purchasing extra levels for a game, or a theme pack.

    Instead of charging a user to install your app, some apps will provide the app for free but will charge for features within the app. This is explained in detail here, but I’ll cover the key points.

    For each feature that you want to make available through an in-app purchase, you have to create an in-app offer and add it to your app.

    You identify each in-app offer in your app by an in-app offer token. This token is a string that you define and use in your app and in the Windows Store to identify a specific in-app offer. You have to give it a unique (to your app) so you can quickly identify the correct feature it represents in your code, for example “PongUltimateLevels” or “CanadianHockeyThemePack”.

    You add all the in-app offers you want to offer your customers in the app, then you write code for each feature in a conditional block that tests to see if the customer has a license to use that feature. If you want to add new in-app offers later, you must update your code and submit a new version of your app to the Store.

    licenseInformation = CurrentApp.LicenseInformation;
    if (licenseInformation.ProductLicenses["CanadianHockeyThemePack"].IsActive) 
        // the customer can access this feature
        // the customer can't access this feature

    Your app also needs to give the user a way to purchase the feature. This is done through the in-app purchase UI. Typically you will have some sort of code that when a user requests a particular action, will detect if they have purchased that feature, and if they haven’t will ask them if they want to buy it.

    function BuyFeature1() {
        if (!licenseInformation.ProductLicenses["featureName"].IsActive)
                // The customer doesn't own this feature, so 
                // show the purchase dialog.
                await CurrentProductSimulator.RequestProductPurchaseAsync("featureName", false);
                // the in-app purchase was successful
            catch (Exception)
                // The in-app purchase was not completed because 
                // an error occurred.
            // The customer already owns this feature.

    Before you submit your app to the store, add each in-app offer to the Advanced features page in the Submit an app workflow. This is where you specify the in-app offer's token, price, and feature lifetime. Make sure that you configure it identically to the configuration you set in WindowsStoreProxy.xml when testing!

    To test your in app purchases use the CurrentAppSimulator object instead of the CurrentApp object. This allows you to test your license logic using calls to the license server instead of the live server. To do this, you customize the file named “WindowsStoreProxy.xml” in <installation_folder>\Microsoft\Windows Store\ApiData. The Microsoft Visual Studio simulator creates this file when you run your app for the first time—or you can also load a custom one at runtime. For more info, read up on the CurrentAppSimulator docs.

    Consumable in app purchases

    Consumables are in app purchases that you make again and again such as money to play casino games, or food for characters in a game.

    At the moment, consumable in app purchases are not supported. However, since durable purchases can be set to expire in a single day, many developers have created multiple durables, allowed them to be purchased in a day, kept a central record of their purchase somewhere, and let them expire so the user can purchase them again tomorrow. So, you cannot set consumables, but, you can set expiring durables and act like daily consumables. It’s not perfect, but it’s something.


    By adding advertising to your application, you can have a free application and still generate revenue. You do need to think about the placement of your ads so that they are visible, but not disruptive for the user. Otherwise, they will not continue to use your app and you won’t see any revenue from the ads. You can also consider having ads in a free trial version of the application, and removing the ads in a paid version of the application.

    Rather than spend time chasing down advertisers yourself, you can leverage Microsoft’s sales force and their existing relationships with advertisers by using Ads in Windows 8 Apps. I’ll try to summarize the key points for using Windows 8 Ads here:

    If you want to add ads to your application do the following steps:

    1. Install the Advertising SDK (you can find great documentation on how to use the SDK here)
    2. Add a reference to the Advertising SDK to your project in Visual Studio
    3. Place the ad control in your application at the desired location (remember you want it visible, but not intrusive)
    4. Sign up for a pubCenter account, this is where you select the advertising categories that are most relevant to your users. You also get to select the ad sizes. You will be able to track the monetization of your ads. You can try ads in different locations in your app and follow the results or determine what time of day the ads perform best so you can fine tune your advertising strategy.

    A few points you might find interesting about the Microsoft Advertising SDK and ads in Windows Store apps

    • 70% of the net advertising revenue from Microsoft Advertising SDK goes to the developers
    • There are a variety of ad sizes to choose from 250X125, 250X250, 300X250, 500X130, 292X60, 160X600, 728X90
    • Ads can be placed in Full view or even in snap view.
    • If you use the Microsoft advertising SDK you must rate your app at least 12+, you cannot rate an app with the advertising SDK 3+ or 7+
    • A user does not have to click on the ad for you to get paid, instead you get paid for every 1000 ad banners displayed.

    Get Coding

    Remember if you get your app published in Canada you could be eligible for immediate rewards through Developer Movement!

  • Go DevMENTAL

    Win a Nokia Lumia 920 just by voting for the Next App Star


    Nokia lumia 920Support your fellow Windows Phone developers and you could win a Nokia Lumia 920 in the process!

    Although the deadline has passed to enter your own apps in the Windows Phone Next App Star competition, you can still support the developers (including several Canadian developers!) in the final rounds and you could win a Nokia Lumia 920 (voted smart phone of the year by Engadget readers)

    How do I enter?

    Visit the Windows Phone Next App Star page on Facebook to view the finalists. You’ll see all the match ups from the current round. Decide which of the pair you prefer and then cast your vote. In true competition style, your vote narrows the field in consecutive rounds of voting. Mark your calendars with the following dates, because this contest will move fast. In fact it moved to round 2 before I had a chance to post this blog!


    Finally, one of these last 2 apps will be the grand champion, determined by the votes of all voting participants.

    Every vote you cast one entry into the daily sweepstakes to win a Nokia Lumia 920.  If you don’t win the first day, your votes carry forward until that round is over.  After you finish your first round of voting, you’ll be given a chance to share that you voted in Windows Phone Next App Star.  If you clicks that link and vote, we double your entries. (You can see the rules and regulations here)

    Don’t forget, in Canada, your own Windows Phone apps and Windows 8 apps can get you rewards through developer movement!

  • Go DevMENTAL

    Template of the week: Windows 8 Find a nearby…


    Food and Dining HubThis template will help you build apps for Windows 8 that find nearby points of interest.

    This blog is part of a series

    How many times have you wanted to find a nearby restaurant? gas station? grocery store?

    This Windows 8 sample project provides you with a good sample structure and code for building apps to help users find nearby businesses.

    The sample project is a food and dining app. You can download it here.

    The app allows the user to specify their location with either a destination name (ex. Halifax, NS) or with their current location.

    The user is presented with Trending Restaurants (restaurants with a number of recent positive reviews), Recently Reviewed (restaurants with recent reviews), Top Near Me (highest rated restaurants close to the user’s set location) and Favourites.

    Each sections is displayed in a grid. The user can filter each collection by cuisine, price range and more. The user can also choose to show the results on a map view.

    The restaurant details page shows the full restaurant details including a snap shot of reviews from Yelp, the menu from OpenMenu and images associated with the restaurant collected from Bing.

    The app was built as a reference application that examples how to build a complete application for Windows 8 using best practices for data acquisition, user control and more.

    Don’t forget if you are in Canada and you are publishing apps check out Developer Movement, you may be able to get rewards for the apps you publish!

    Food and dining hubFood and Dining MapFood and dining detail

  • Go DevMENTAL

    SXSW 2013 names ChronoZoom top educational resource


    ChronoZoom is a digital tool built with HTML5 and Azure for exploring the history of everything and it was just named Top Educational Resource at 2013 South By Southwest Interactive.


    Microsoft Research teamed up with the University of California Berkeley to create a digital tool for exploring the history of everything! A history of humanity, life, earth and the cosmos. The result was the open-source product ChronoZoom, a dynamic, zoomable timeline that starts with the Big Bang and ends with modern history.

    Chronozoom uses HTML5 and JavaScript code and services implemented on Windows Azure to create a rich, visual database full of historical events and timelines. The tool was developed to make time relationships between different studies of history clear and vivid. It provides a framework for exploring different related electronic resources.

    The ChronoZoom project is part of the Outercurve Foundation’s Research Accelerators Gallery. The Outercurve Foundation, a non-profit, open-source foundation, provides software IP management and project development governance to 22 open-source projects.  Developers can get involved by visiting the source code project on GitHub.

    In his acceptance speech, Michael Zyskowski dedicated the award to Lee Dirks, who strongly believed in and supported the ChronoZoom project. I mention that here, because I had the pleasure, and I do mean the pleasure, of working with Lee at the iSchools conference in Toronto last year. He and his wife passed away this past summer, so it was nice to see a bit of his legacy getting recognition.

    Okay, enough talking, go  check out Chronozoom for yourself!

    • Want to learn more about using HTML5 on your own projects visit ietestdrive.com to find lots of cool HTML5 examples
    • Want to learn more about using Azure services for your own projects, visit www.windowsazure.com to learn more. If you are a faculty member don’t forget you can get Azure passes that do not require credit cards for your courses through the Azure Educational grants program.
  • Go DevMENTAL

    Unity Windows Store Open Beta – Get it and Learn it!


    Unity Unity now has an open beta for Windows Store apps, and there is a two day training event to help you build games with Unity for the Windows Store.

    Last week Unity announced the availability of Unity 4.2 as an open beta for Windows store apps. Let’s take a quick look at how this affects you!

    • Where do I get the bits?
    • What can I do with the bits?
    • Can I publish to the store with the bits?
    • How do I learn to use the bits?

    Where do I get the bits?

    First of all, let’s be clear: this is a beta! That means, if you have never tried Unity before you may want to wait for the commercial public release, but for anyone who already has experience with Unity it’s a great opportunity to start bringing your Unity games and ideas to the Windows 8 store. You can request to be part of the open beta here.

    What can I do with the bits?

    You can build some awesome games! The bits have already been put through the ringer by a number of game companies including Canada’s Coding Jar Studios based out of Vancouver. Coding Jar built the game Fling Theory, a physics based puzzle game where you manipulate atoms and destroy obstacles to solve puzzles.

    Fling Theory

    Can I publish to the store with the bits?

    You can port your games to the Windows Store apps platform using the Unity 4.2 alpha/beta builds. Unity provides a two month trial license key for all registered beta participants that will unlock the Windows Store app platform support in the Unity toolset.

    BUT! Any project deployed with a trial license will be watermarked and not for commercial release. Developers who wish to publish their games on Windows Store using the alpha/beta builds should contact the Unity Sales Department.

    How do I learn to use the bits?

    April 9th & 10th, 2013 Microsoft is hosting a Building Games with Unity event, which will be broadcast and recorded.

    The event is intended to help game builders and designers to port their Unity games to be published into the Windows Store and Windows Phone store.


    Given it’s in Mountain View, California, chances are you won’t be able to attend in person, (though what a great excuse for a business trip if you can!) No worries, you can view it live online. You don’t have to pre-register for the online event, just check out the online page on the day of the event. Why not use this .ics calendar invite to put it on your calendar.

    The event content includes:

    • Introduction to the Windows 8 platform and the Windows Store.
    • End-to-End: Develop, debug and deploy a Unity game for the Windows Store.
    • Deep dive:  Tips & tricks for porting games from other platforms to Windows 8.
    • Differentiate: Integrate your game with Windows 8 platform features (such as contracts, notifications, and live tiles).
    • Sharing code:  Learn how to reuse all this new knowledge on the Windows Phone platform.
    • Partner sessions: Hear the lessons learned from those that have already done it.

    So if you are a Unity developer, register for the beta and put the training event on your calendar and soon we’ll be checking out your awesome games on Windows 8!

Page 1 of 2 (10 items) 12