
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:
- On portal A, all links are hidden in the basement, to which, as you know, you still have to go home. At the same time, links to stores can be called “Windows Marketplace” with the old Windows / Windows Phone icon.
- On portal B, the links are hidden in the basement, but, for example, in the case of Windows there is an obvious discord between the fact that there is a screenshot of the application for Windows 8, but there is no application (hidden by the service).
- On the portal There are no links to applications at all, although there are applications.
- There are no links on the G portal either, although there are also applications.
- On portal D in the basement there is a link to the application for Windows Phone, but in the mobile section it is not mentioned (this is an obvious discrepancy between the different hemispheres of the company).
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:
- Do not annoy users too often with ratings or reviews. When you introduce such an opportunity, try to find the right balance between using the application and reminders.

- You can show the invitation to vote by different interface solutions: for example, by displaying a dialog box, a pop-up message, or by placing the link directly in the application's persistent interface.
- Carefully keep track of when you are showing a reminder. If the application does not work, then this can provoke negative evaluations.
- The user can negatively perceive the offer to put exactly a good grade. Try to motivate him with something.
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:
- PDP - application description page, parameters: PFN - application package family name (you can see in the application manifest in the Packaging - Package family name section, and also available via the API);
- Review - page for adding a review or rating, parameters: PFN - the name of the package family (if the application is not installed, the application page opens);
- Publisher - application publisher page, parameters: name - display name of the publisher;
- Search - a page with search results in the store, parameters: query - search query;
- Updates - page of updates in the store, without 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:
- zune: navigate? appid = [app ID] - go to the application page;
- zune: reviewapp - page for posting feedback on the launching application;
- zune: reviewapp? appid = app [app ID] - the page for posting feedback on a specific application (note the app prefix);
- zune: search? keyword = [search keyword] & publisher = [publisher name] & contenttype = app - launch a search in the store, all parameters are optional.
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:
- Check for an Internet connection before prompting the user to rate the application. Working with a store requires interaction with the relevant web service of the store.
- Remember the user's choice (for example, he agreed to vote). Keep in mind that a user may have several devices, it makes no sense to force him to vote several times, so use data synchronization (roaming).
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:
- First run: set the voting flag to false, reset the run counter (save in settings);
- Run:
- If the user has not voted yet, increase the counter
- If the counter is multiple to some number X, we deduce the offer to vote
- ď‚§ If the user agreed, we believe that he voted
- ď‚§ If the user refused, we will return to it later
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:
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; 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:
- Put a link to the application in the store in a recognizable way and in a place accessible to the user.
- If your company or your employees have popular blogs, tweeters, VK / FB / ... accounts, tell us that you have an application or an update.
- Tell about the application to users of other applications.
- Remind users of the importance of ratings and reviews.
- Respond to user feedback.
- Integrate into the search.
- 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 RecordsWindows 8.1 UpdateDownload Visual Studio 2013 Update 2 RCDeveloper portal for Windows and Windows Phone