📜 ⬆️ ⬇️

7 tips to promote applications for Windows Store



Many application developers come to us with a request to help them promote their application, for example, tell about it in our social channels or put on promotion in the application store (for example, in the Windows Store).
The first question that our marketers ask is something like: “What have you done already?” Technicians ask the same question, but with a different eye. In this article we tried to collect some tips from those and from others.


')

Marketing Tips


1. Tell your audience about your application.


No matter how trite it may sound, we very often see that both large and small companies and individual developers forget to talk about the created applications to their own home audience - be they site visitors or, say, subscribers in social networks.



As an experiment - try to walk through the five most popular online cinemas and find links to their own applications on their websites. The results look like this:

This situation is observed very often.

Tip 1. Put a link to the application in the store in a recognizable way and in a place accessible to the user.




Today, a web version of its description page is available for an application in any popular store. In the case of opening on the target platform, it takes the user to the store interface, from where you can already download the application to your device.

The most correct and recognizable way to put a link is to use the icon of the corresponding store:



By the way, if you show users screenshots, then it is better to do it “inside” of specific devices relevant for the corresponding platform. Although we provide some impersonal images, you can also use devices from a specific manufacturer (for example, from Nokia Lumia).

If you have a large audience that sees such pictures, this may also be the subject of discussion of mutual promotion with the device manufacturer. You are theirs, and they are your applications inside their devices.

Tip 2. If your company or your employees have popular blogs, tweeters, accounts in VK / FB / ..., tell us that you have an application or an update.


From time to time, looking through the lists of new applications for our platforms, we unexpectedly find for ourselves applications of authors / companies known to us, who didn’t tell anyone outside of them the application (not to mention the fact that they are planning to exit) the application. Wonderful applications, which, unfortunately, no one knows.



Often, the release of such an application can not be found either from the press release or from the company's website, or from its twitter or Facebook page. It remains only to follow the reviews on popular sites or monitor the store for new applications.

Sometimes it seems that for many companies such a banal idea of ​​how to “tell your online users about the output of your own application” is a technique that can be used only as a last resort, and it is better not to use it at all.

Progressive companies have long (note the date) do not hesitate to talk about what they do for their users.



Our practice shows that if you have a large audience on the Internet, then this is the most effective way to attract users (perhaps after direct promotion in the store itself).

(And we are not talking about targeted mailing announcements to our users yet! Try it somehow.)

Tip 3. Tell about the application to users of other applications.


If you already have other popular applications that many and many users already have, this means that you have a potential channel of communication with them.



You can start with the banal: in the section on the application to submit a list of other applications, providing additional cross-promotion.

And you can go further (as gaming companies periodically do) and talk about their new applications and games in a more active form. If you, suppose, have a popular toy about pink elephants and you release the second series as a separate application, then surely you have a large mass of users who have played enough, but have not deleted the game from their device.

Give them a notice or update the tile to prompt you to continue your saga.

2. Remind user to rate and review


As you can probably guess, the position of the application in a particular catalog inside the store can significantly affect the number of downloads, which you, in turn, can convert to one or another form of profit.



Although no store discloses a specific ranking formula, it is known that it includes downloads, ratings, reviews and their dynamics. Parameters such as changing users' opinion (re-voting) or the number of users who find it useful to review with a certain rating can also be important.

In general, the more good and excellent reviews and ratings, the better for the application (not to mention the banal feedback channel with the developers), so this channel needs to be influenced.

Many users do not know that you can vote for applications or give them feedback. Of course, when “everything is gone, everything is broken,” the user will find a way to convey his disappointment to the developer, but in everyday life most users do not consider the idea of ​​rating as important.

And this is despite the fact that when downloading, and even more so when purchasing an application or a game, the average rating, their number, and the general atmosphere play a very important role for them.

Tip 4. Remind users of the importance of ratings and feedback.


We often see applications that have a lot of downloads, but very few reviews and ratings. Since the user does not know about the number of downloads, a small number of ratings hints to him that no one uses this application. For good applications, this is often not true.



At the same time, in each of our platforms there is a corresponding API for the application store, which allows you to transfer the user to the app evaluation page (more on this below).

What is important to consider:


Tip 5. Respond to user feedback.


Carefully watch what users write about your application, both within reviews and in social networks or blogs. Answer, explain, correct, add, improve.



By the way, at the Build conference it was announced that in the coming months the opportunity to directly respond to user feedback will come to the Windows Store.

3. Promote the app to new users.


We will manage here without explicit advice, because here all the traditional marketing opportunities to attract users are already in force: cross-links (for example, via Adduplex, paid traffic (MS Ads, etc.), reviews on thematic portals, etc. .

Although we will give one piece of advice!

Tip 6. Integrate into the search.


As you may know, users sometimes search for applications not by name, but by related associations. They may not care about your application at all, but the content in it is important. In these cases, it is important that your application can be found.

This applies, above all, to such trivial things as keywords and description.



But ... you can also achieve even more results if you tell the search engine (Bing) about what is in your application and how to reach it.

To do this, there is a special mechanism for linking your website with your application . You can learn more about it in the report “ Promote Your App in Search Results ” from the Build conference.

This especially makes sense when you are targeting markets with a noticeable presence of Bing (USA).

On this we give the floor to technicians.

Technical Comments


Let's comment on two interrelated moments: getting links to the application and getting links to the page with reviews.

Web links to the application


The link to the Windows 8.x application looks like this:
apps.microsoft.com/windows/app/ru {GUID}

The entire link is indicated in the dashboard on the developer portal (in the application details section), and is also provided in the certification letters.

The link to the application for Windows Phone looks a bit different way:
windowsphone.com/s?appId= {GUID}

It can also be found in the corresponding section with details about the published application on the developer portal.

Note: the two GUIDs for Windows and Windows Phone will be different, but with the gradual merging of stores , we have a so-called. Universal Apps , as well as the ability to connect applications with each other (the user will see that there are applications for different devices, and will be able to pay for them once).

Go to the app in the store


For developers, a special “protocol” API is available for redirecting users to certain sections of the store.

Windows 8.x


For Windows 8, the link structure is as follows:
ms-windows-store: {Action}? {Parameters}


Possible actions and parameters:


It remains only to open the link using the Windows.System.Launcher.LaunchUriAsync method (launchUriAsync for JS, with a small letter). For example, to open the page of your application, you can use this call (JS):

var uri = new Windows.Foundation.Uri("ms-windows-store:PDP?PFN=" + Windows.ApplicationModel.Package.current.id.familyName); Windows.System.Launcher.launchUriAsync(uri); 


Windows phone


The Windows Phone Protocol API for this task is somewhat different:


To open the page, use the same asynchronous method: Windows.System.Launcher.LaunchUriAsync.

In addition, the corresponding ready-made "tasks" (Microsoft.Phone.Tasks), allowing you to go to the desired section of the store:


Ratings and reviews


As is clear from the description above, in order to open a page with a form for evaluating an application and writing a review, one or two lines of code suffice:

JS, Windows 8.x


 var uri = new Windows.Foundation.Uri("ms-windows-store:Review?PFN=" + Windows.ApplicationModel.Package.current.id.familyName); Windows.System.Launcher.launchUriAsync(uri); 


C #, Windows 8.x


 Windows.System.Launcher.LaunchUriAsync(new Uri(String.Format("ms-windows-store:REVIEW?PFN={0}", Windows.ApplicationModel.Package.Current.Id.FamilyName))); 


As you can see, the syntax is almost identical, but notice the difference in the case of the names of the methods and properties (conventions that are typical for each of the languages ​​are used).

If you are going to call such code from the application, it would be good to take into account a few nuances:

By the way, you cannot programmatically check what the user specifically put to you, so think about the psychological tricks and motivation of the user.

If you want to display reminders with a request to rate the application for a certain number of application launches, the traditional scheme is as follows:


Sample Code for Windows Phone


Below is an example of a fairly simple code that you can use in your applications.
Code for Windows Phone
 private void Application_Launching(object sender, LaunchingEventArgs e) { //... this.updateReviewStatus(); } //     protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); //... this.checkReviews(); } //    (   ) private int reviewBarrier = 5; private string reviewKey = "userReviewedApp"; private string launchesKey = "userReviewAppLaunches"; private string reviewText = ",     XXXX."; private string reviewInviteText = ",   "; //     private void updateReviewStatus() { var appSettings = IsolatedStorageSettings.ApplicationSettings; if (appSettings.Contains(this.reviewKey)) { var reviewed = (bool)appSettings[this.reviewKey]; var launches = (int)appSettings[this.launchesKey]; if (!reviewed) { appSettings[this.launchesKey] = ++launches; } } else { appSettings.Add(this.reviewKey, false); appSettings.Add(this.launchesKey, 0); } } //   private void checkReviews() { var appSettings = IsolatedStorageSettings.ApplicationSettings; var reviewed = (bool)appSettings[this.reviewKey]; var launches = (int)appSettings[this.launchesKey]; if (!reviewed && launches > 0 && launches % this.votingBarrier == 0) { this.askForReview(); } } //   private void askForReview() { var returnvalue = MessageBox.Show(this.reviewText, this.reviewInviteText, MessageBoxButton.OKCancel); if (returnvalue == MessageBoxResult.OK) { var marketplaceReviewTask = new MarketplaceReviewTask(); marketplaceReviewTask.Show(); var appSettings = IsolatedStorageSettings.ApplicationSettings; appSettings[this.reviewKey] = true; } } 


If you wish, you can easily add a tick "do not remind about assessments", check the Internet connection and any additional logic tied, for example, to the features of user scripts in your application.

Windows 8.x - JavaScript


Code for Windows 8.x for JavaScript applications:
Code example
 // RateMe.js /* Usage: 1. include js file into default.html or other page; 2. call on app activation or navigation event: var rateMe = new Promo.RateMe(); rateMe.checkReviews(); */ (function () { "use strict"; var applicationData = Windows.Storage.ApplicationData.current; //       var roamingSettings = applicationData.roamingSettings; var rateMe = WinJS.Class.define( function init() { this.loadReviewStatus(); }, { status: null, loadReviewStatus: function () { var reviewStatus = roamingSettings.values["reviewStatus"]; if (!reviewStatus) { reviewStatus = new Windows.Storage.ApplicationDataCompositeValue(); reviewStatus["userReviewedApp"] = false; reviewStatus["userReviewAppLaunches"] = 0; } this.status = reviewStatus; }, saveReviewStatus: function () { roamingSettings.values["reviewStatus"] = this.status; }, checkReviews: function () { if (!this.status) { this.loadReviewStatus(); } var reviewed = this.status.userReviewedApp; var launches = this.status.userReviewAppLaunches; if (!reviewed && launches > 0 && launches % rateMe.REVIEWS_BARRIER == 0) { this.askForReviewAsync(); } this.status.userReviewAppLaunches++; this.saveReviewStatus(); }, askForReviewAsync: function () { var that = this; var messageDialog = new Windows.UI.Popups.MessageDialog(rateMe.REVIEW_TEXT); messageDialog.commands.append(new Windows.UI.Popups.UICommand(rateMe.REVIEW_INVITE_TEXT, function (c) { var uri = new Windows.Foundation.Uri("ms-windows-store:Review?PFN=" + Windows.ApplicationModel.Package.current.id.familyName); Windows.System.Launcher.launchUriAsync(uri); that.status.userReviewedApp = true; that.saveStatus(); })); messageDialog.commands.append(new Windows.UI.Popups.UICommand(rateMe.REVIEW_DECLINE_TEXT, function (c) { })); messageDialog.defaultCommandIndex = 0; messageDialog.cancelCommandIndex = 1; return messageDialog.showAsync(); } }, { REVIEWS_BARRIER: 4, REVIEW_TEXT: ",     XXXX. ,   .", REVIEW_INVITE_TEXT: "", REVIEW_DECLINE_TEXT: " " } ); WinJS.Namespace.define("Promo", { "RateMe": rateMe }); })(); 


Windows 8.x - C #


For C #, data storage and dialog box calls are done in exactly the same way (up to the difference in syntax), the rest is a wrapper for creating a class.

Code example
 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Windows.Storage; /* RateMe.cs * * Usage: * Place the following code somewhere during page initialization: * * var rateMe = new Promo.RateMe(); * rateMe.CheckReviewsAsync(); */ namespace Promo { class RateMe { static private int REVIEWS_BARRIER = 4; static private string REVIEW_TEXT = ",     XXXX. ,   ."; static private string REVIEW_INVITE_TEXT = ""; static private string REVIEW_DECLINE_TEXT = " "; public RateMe() { this.LoadReviewStatus(); } private ApplicationDataCompositeValue status; private void LoadReviewStatus() { var roamingSettings = ApplicationData.Current.RoamingSettings; var reviewStatus = (ApplicationDataCompositeValue)roamingSettings.Values["reviewStatus"]; if (reviewStatus == null) { reviewStatus = new ApplicationDataCompositeValue(); reviewStatus["userReviewedApp"] = false; reviewStatus["userReviewAppLaunches"] = 0; } this.status = reviewStatus; } private void SaveReviewStatus() { var roamingSettings = ApplicationData.Current.RoamingSettings; roamingSettings.Values["reviewStatus"] = this.status; } public async void CheckReviewsAsync() { if (this.status == null) { this.LoadReviewStatus(); } var reviewed = (bool)this.status["userReviewedApp"]; var launches = (int)this.status["userReviewAppLaunches"]; if (!reviewed && launches > 0 && launches % RateMe.REVIEWS_BARRIER == 0) { await this.AskForReviewAsync(); } this.status["userReviewAppLaunches"] = ++launches; this.SaveReviewStatus(); } private async Task AskForReviewAsync() { var messageDialog = new Windows.UI.Popups.MessageDialog(RateMe.REVIEW_TEXT); messageDialog.Commands.Add(new Windows.UI.Popups.UICommand(RateMe.REVIEW_INVITE_TEXT, async (action) => { var uri = new Uri("ms-windows-store:Review?PFN=" + Windows.ApplicationModel.Package.Current.Id.FamilyName); await Windows.System.Launcher.LaunchUriAsync(uri); this.status["userReviewedApp"] = true; this.SaveReviewStatus(); } )); messageDialog.Commands.Add(new Windows.UI.Popups.UICommand(RateMe.REVIEW_DECLINE_TEXT, null)); messageDialog.DefaultCommandIndex = 0; messageDialog.CancelCommandIndex = 1; await messageDialog.ShowAsync(); } } } 


By the way, pay attention to the similarity of the options in C # and JavaScript.

Results


Let's collect all the tips together:
  1. Put a link to the application in the store in a recognizable way and in a place accessible to the user.
  2. If your company or your employees have popular blogs, tweeters, VK / FB / ... accounts, tell us that you have an application or an update.
  3. Tell about the application to users of other applications.
  4. Remind users of the importance of ratings and reviews.
  5. Respond to user feedback.
  6. Integrate into the search.
  7. Bonus: if you already have a good application for Windows / Windows Phone or you plan to transfer a great application from other platforms, tell us in advance;)


Successful applications and happy users!

useful links


Build 2014 Conference Records
Windows 8.1 Update
Download Visual Studio 2013 Update 2 RC
Developer portal for Windows and Windows Phone

Source: https://habr.com/ru/post/219545/


All Articles