February 23, 2017 10:00 am

A New Monetization Opportunity: Application Extensions + Microsoft Affiliate Program

By / Principal Technical Evangelist

Looking for more ways to monetize your app? App developers can boost their revenue through the Microsoft Affiliate Program. As an affiliate you can earn revenue by promoting content in the Windows Store and Microsoft Store, such as apps, games, music and video.

Developers who place links and/or banners on their apps directing users to the Windows Store will receive a commission for each online sale driven by that in-app marketing. You may have participated in other affiliate programs where you get a commission when someone buys something that you link to – the Microsoft Affiliate Program works in much the same way, but is more expansive.

A New Opportunity

As an app developer, this is a golden opportunity to open a new revenue stream for Universal Windows Apps.

Not only do you earn commission on the link that you directly sent the user if he or she purchases an extension, but you also earn up to 10% commission on anything else the user buys online from Microsoft within a window of time lasting up to 14 days.

By using the Affiliate program tools for creating, promoting and tracking campaigns, you can maximize revenue. This includes commission on apps, in-app purchases, games, movies, music downloads, Groove Music Passes, Microsoft Office and even hardware.

App Services/App Extensions + Microsoft Affiliate Program

Now when you combine the Microsoft Affiliate Program with app extensibility, new monetization opportunities open up on the Windows platform that just aren’t available on other app platforms. Three different types of app developers could benefit from combining App Services and Extensions with the Microsoft Affiliate Program:

  1. App developers who host extensibility to their apps can now earn commission on sales of extensions and other store purchases triggered by the installation of those extensions.
  2. App developers who build extensions can now have a store to put their extension in and their extensions get discovered in the context of the app when they are needed.
  3. App developers can make it easy to use their app’s service with the Microsoft Affiliate Program.

To help you get set up to participate in this affiliate-marketing program, let’s talk about App Extensions and App Services.

The Challenge with App Extensibility

The basics are simple: An app defines a plug-in or extensibility protocol, publishes it and then finds ways of getting extension developers to build extensions using the protocol.

Applications have had extensibility mechanisms for years. Desktop apps such as Microsoft Word, Microsoft Outlook, Adobe Photoshop, Visual Studio and Google Chrome have enabled third-party developers to build extensions to enhance and extend the apps in interesting ways, and even in directions that the app developer hadn’t imagined.

But though they are quite often easy to build, there are several challenges with the business of building App Extensions:

  • Extension developers would have to run their own commerce engine or trialware mechanism.
  • Promotional ability is typically limited to being listed in a catalog of available extensions.
  • The best option is quite often to be bought by the app developer.
  • The extension is strictly tied to the protocol and deployment mechanism defined by the host app and making it work with another vendor’s app is an additional effort.

Universal Windows Platform extends App Services

Windows 10 makes this process easier: Apps can now expose App Services to other apps, extending their capabilities.

Apps can even expose multiple services, each with a different protocol, depending on the usage model. The communication between apps via App Services is through an async protocol sending value sets of simple values – you can even share files via tokens with the SharedStorageAccessManager class.

To use an app’s service, you need to know the name of the app, the name of the service and the protocol that it’s expecting. Once you know that, the calling app can send and receive message to and from the app that is running the app service.

App Extensions enhance App Services

A new feature in the Windows Anniversary Edition that works great with App Services is App Extensions.

With App Extensions, an extensible app declares in its manifest that it hosts extensions with a specific named extension mechanism. App extension developers then declare in their apps’ manifests that their extension implements that named extension mechanism.

A new feature in the Microsoft Edge browser is this extension mechanism so that third-party developers can extend Microsoft Edge to add new capabilities. Apps that host extensions can also use the AppExtensionCatalog API to list all of the extensions that are installed and available on the system for the extension protocols declared in the app’s manifest.

As an example, here’s the manifest of my Journalist app, which hosts two different types of extensions:


<uap3:Extension Category="windows.appExtensionHost">
    <uap3:AppExtensionHost>
        <uap3:Name>Journalist.Export.1</uap3:Name>
        <uap3:Name>Journalist.PageItem.1</uap3:Name>
    </uap3:AppExtensionHost>
</uap3:Extension>

The catalog exposes metadata for each extension, including its display name, package family name, and it could even expose the service name – everything necessary to call its app service. My Animated GIF Creator app then declares this in its manifest:


<uap3:Extension Category="windows.appExtension">
    <uap3:AppExtension Name="Journalist.Export.1" 
        Id="AnimatedGifTranscoder" PublicFolder="Public" 
        DisplayName="ms-resource:AnimatedGIF" 
        Description="ms-resource:JournalistExportDescription">
        <uap3:Properties>
            <Service>AnimatedGifCreator.Journalist.1</Service>
            <ExportType>File</ExportType>
            <SuggestedStartLocation>PicturesLibrary</SuggestedStartLocation>
            <ExtensionHtml>Extension.html</ExtensionHtml>
        </uap3:Properties>
    </uap3:AppExtension>
</uap3:Extension>

The only thing missing for an app that hosts extensions is a catalog of available extensions that are not installed on the system but available in the store.

Continuing the example with my Journalist app, I show a list of extensions available to install.

This could be a hardcoded list or a list retrieved from an app service, but the point is that as an app developer, I can detect if a specific app extension is available; if it isn’t, I can provide the UI to install it.

The Install button for each extension will take the user to the page for the app in the Windows Store so he or she can purchase (if it’s not free) and install the app – and this is where the new monetization opportunity is – the Microsoft Affiliate Program. Once the user gets into the store with that affiliate link, the developer can earn commission revenue on ANYTHING the user purchases within the time window mentioned above.

If the user clicks on install, the app will launch a web URL for the Microsoft Affiliate Program and then take the user to a product page for extension in the Windows Store (one extra hop). In another place in my Journalist app, I show related journaling supplies and I used the affiliate program’s link-builder tools to build links to the products circled below:

More Details

As you can see, as an app developer, I’m super excited about app extension and this new opportunity.  Here are some additional details that will help you on your new UWP monetization opportunity: