When it comes to marketing to their users, Windows 10 developers have a secret weapon.

It’s unobtrusive and respectful. It doesn’t require any coding. Depending on how much Redmond-flavored Kool-Aid you’ve had, you might even say it’s beautiful. And it’s free.

The weapon: push notifications.

Push is different on Windows 10. Microsoft has gone to a lot of trouble to make it easy for you. Once you put their SDK in to your app, you can immediately boost your app’s performance by sending pushes directly from the Dev Center.

They’re the best way to keep your users engaged with your existing apps, and to launch new ones: more effective than email, cheaper than paid ads; instant, timely, easy to use, and measurable.

This guide will take you through the 6 simple steps of defining, designing, and sending your first push campaign. It shows you how top apps use push to drive revenue and re-engagement, all for free.

Understanding how Microsoft thinks about push

The push campaigns shown in this guide will trigger toast notifications on your users’ devices. These toasts look and behave just like the toasts that you can trigger from within your app.

Toasts that your users don’t act upon will stack up in the Action Center. Wherever your users see them, your toasts will be clearly identified as having originated from your app.

Respect this channel. Don’t overuse it, trick your users into clicking, or be obnoxious.

Be careful: as with other platforms, once you put a push notification campaign in flight, you can’t recall it.

A word to Google and Apple apostates

If you’re a developer who’s coming from iOS, macOS, or Android, you’re probably expecting some code snippets below. Spoiler: there aren’t any. No tortured screenshots about setting up keys and certificates, either. Once you take care of the prerequisites below, everything you need to launch an effective push campaign is doable right from the Dev Center.

Maybe even stop reading this article and send it to your marketing team right now because you literally don’t need to be here.

Getting ready

This guide covers push campaign setup and best practices for UWP apps (including Centennial apps) running on Windows 10. If your app isn’t UWP, this guide won’t help you — sorry. (Convert your app to UWP!)

Before you go any further:

  1. Make sure you have the Microsoft Store Services SDK in your app. In addition to enabling push, this SDK gives you access to the Feedback Hub, ad units for Microsoft’s in-house ad network, and a bunch of other cool toys.
  2. If you want to run re-engagement push campaigns for your app, your Store app needs to support deep linking.
  3. Make sure you’re signed up for the Microsoft Affiliate Program.
  4. Download the Notifications Visualizer app from the Microsoft Store.

Step 1: Decide what to push

Now that you have your push cannon ready, it’s time to decide what type of shot to load it with.

This channel responds well to three types of campaigns: cross promotion (of one of your other free apps), promotion of a paid upgrade, or re-engagement (promotion of a deep link). You can use it for other activities (requesting ratings or feedback, etc.), but these are wasted bullets and better done in-app.

Cross promotion

Cross promoting one of your other apps with a push campaign is an effective and free way to drive installs within your catalog.

Here’s a case study from the launch of our doodle app, Spirality. The app wasn’t related to the niches of the rest of our catalog, but it’s of general interest, it’s fun, and it was on sale. This was the creative we pushed to users of our other apps:

We used attractive creative that clearly showed the functionality of the app, and announced that the app was on sale for a limited time to create urgency. The result: almost 1,000 activated users (not just installs), and zero complaints to our support channel.

Total cost of this campaign: $0.00. (How much would you have to pay for 1,000 high-quality, activated users in any other channel?)

Asking for the upgrade

If you have a free app that has a paid upgrade option — either a separate, paid version of the app, or an in-app purchase that unlocks functionality , or removes ads — push notifications are an effective channel for asking for the upgrade.

For this campaign, we put a Pro app on sale to $0.99USD and sent a push notification to users of the ad-supported free app. The creative highlighted that the Pro version is ad-free, and that it’s deeply discounted for a limited time only.

The push campaign resulted in more than 150 paid upgrades:

This campaign netted out just over $100USD in app sales after Microsoft’s cut. Two users (out of 751,042) complained to our support channel. The campaign earned an additional $100 from affiliation (more on that below). It’s better than a kick in the pants, but compared to the cross-promo campaign, it’s clear that this channel responds best to free offers.

If your app supports deep links (it does, right?), you can send a push notification that launches the app and navigates it to a specific screen.

You might send a re-engagement push that asks users to do something like check out a new feature, view a sale, or visit a new game level/area.

Deep link functionality is different app-by-app, so for our examples below, we’ll focus on cross promotion.

Step 2: Choose the right audience

The Windows Dev Center has audience segmentation built-in, and it’s powerful. It includes first-party data about your Windows users: demographics, spending habits, campaign source, and more. You’d kill for this data (or pay out the nose for it) anywhere else.

Segmenting your push notifications doesn’t just improve their effectiveness. It also spares users who have low chance of converting from being annoyed by your campaign.

To access the segment builder, click Customers in the header of your Dev Center dashboard, then click “Create New Group”.

Consider what you’re promoting, and which segments of your users would like it the most:

  • Launching a new, free app? Send it to everyone.
  • Promoting a paid upgrade? Consider restricting your push campaign to users who have made at least one purchase in the Store — your other users may not have a credit card attached to their Store account.
  • Promoting a clothing sale from a designer who targets young men? You can segment using Boolean logic, so segment on Gender and Age Group, then “and” the conditions together.

Once you make a segment definition, the Dev Center will show you the size of your segment, and its breakdown by demographic and purchase behavior.

Give your segment a name and save it. We’ll use it to target your push notification in a little bit.

Now that you’ve decided what to promote, you need to generate a link for it. If you’re promoting another app, there are a few tricks that can significantly increase your earnings and conversion rate. If you’re promoting a deep link to your app, link creation is straightforward.

If you’re promoting another app (either paid or free), use an affiliate link, and make sure that it opens in Microsoft Edge.

Microsoft’s affiliate program for app developers is generous. You earn a commission on everything your users buy from the Store — music, hardware, IAPs, etc.—not just what you promote. Earnings can reach $0.01 per click, even when promoting a free app. It doesn’t sound like much, but it adds up fast if you have a high enough click-through rate.

Since you’ll be promoting an affiliate link instead of a deeplink to the Store, your link will first open in one of the user’s browsers. Some browsers (like Edge) will automatically open the Store app after the affiliate redirect, so users can easily start the app install process. Other browsers (like Chrome) will ask the user to confirm before doing so, adding a needless step in your conversion workflow:

Since you’re pushing only to UWP apps, you know your users have Edge on their device. You can force your push notification to launch its URL in Edge. Here’s how you do it:

  1. Go to the Microsoft Affiliate Program Link Builder and generate an affiliate link for your app
  2. Append a URL-encoded campaign identifier, so you can use the Dev Center’s built-in conversion tracking
  3. Prepend the Microsoft Edge URI scheme (microsoft-edge:) to your affiliate link.

So, if you generate the affiliate link:


…and then append a campaign identifier (URL-encoded):


…and then prepend the Microsoft Edge URI scheme, your final link is:


This will force the link to open in Edge, giving your users the best clickthrough experience. It also means any resulting new app installs will show up in your Channels & Conversions section of your Acquisitions dashboard in the Dev Center.

If you want your push campaign to re-engage your users, you should choose a deep link to your app as your campaign’s link.

This also applies to developers who want to send a push that promotes an in-app purchase.

Your deep link will look like this:


Step 4: Design your notification

Now we’ll design your push notification. Log in to the Dev Center and navigate to the app you want to push to. Under Services, click “Push Notifications”, then “New Notifications”. This is where the magic happens.

To make things easy, choose the “Cross-promote” template to get started. (It doesn’t really matter which one you choose, and this is the template that has the best defaults.) Now, to compose your message:

Notification settings

Name your notification something meaningful. It should tie in to the campaign identifier (cid=NAME-OF-CAMPAIGN) you chose while constructing your link.

Make sure to choose the segment you created in Step 2 as your Customer Group.

You have two scheduling options: Delivery and Expiry.

You can schedule your campaign to go live at a particular time, either UTC or the user’s own time zone. Choose UTC if you want all your users to receive the push at once; choose the user’s local time zone if you want your users to receive your notification “in the morning”.

If you’ve ever launched an email campaign, you already know the power of the latter option. You can try to time your message so it lands in your users’ Action Centers right when they use their device for the first time that day, or when they’re getting home from work to check the news.

Consider the app you’re promoting, and when your users are most likely to be interested in seeing a notification about it. If you’re promoting a business or productivity app, you should target business hours; games and entertainment apps are best promoted during evenings and weekends.

You can also set your notification to expire at a particular time. This is important if you’re promoting a time-limited sale. Setting an expiry time that coincides with the end of the sale will let you avoid disappointing your users.

Notification content

Under the Language heading, you can press “Add languages”. Your notification will be machine-translated in to each of these languages before delivery.

Machine translation isn’t perfect, but it’s definitely better than sending English to a group of users that don’t understand the language. Select all the languages and press Save before proceeding.


The Activation Type setting lets you choose whether you want the push to open a URI, or open your app (in the foreground or background) and pass a deep link to it.

If you’re cross-promoting another app, choose “Protocol”. If you’re promoting engagement in your own app, choose “Foreground” or “Background”, depending on how your app works.

In the Launch box, paste the link you created in Step 3.

Choose a Duration. If you’re not sure, use “Short”. You’ll have a chance to test this later.

Do not change the Scenario from Default. Microsoft takes a dim view of push notifications masquerading as something they’re not, and it’s disrespectful to your users.

Leave Base URI empty. This is an advanced feature for dynamic toasts.


Now, for the fun part. In this section of the push composer, you’ll define the look, feel, and content of your notification.

Don’t worry: we’re going to test this notification in the Notifications Visualizer before we send it out. Nothing you pick here is permanent until you press “Send”.

By default this template includes a single textual element. Press “Add Image” twice — we’re going to design a notification that has two image elements.

Set the first image to “Image Placement: App logo override”. Set the second one to “Image Placement: Inline”.

When we’re done here, these three elements will work together to form a toast, like this:

Your text should be 2 or 3 lines, ~30 characters each, pitching your app. Enter your text in to the Content box in the text 1 element.

You’ll need to create two images for this push notification:

  • the app logo override. This will display at 100px by 100px, so make it 200px by 200px for high-DPI screens.
  • the inline image. This will display at 250px by 250px, so make it 500px by 500px for high-DPI screens.

Upload these images somewhere fast — a worldwide CDN like CloudFront is best.

Place the URLs for these images in to the Image source 1 and Image source 2 boxes in the image 2 and image 3 elements.

Step 5: Preview your notification

You’re so close to unleashing this push notification on your users! Now, the big reveal: you’re going to see how your push looks in a live environment.

Press “Convert this notification to XML”. Copy the resulting XML — we’re going to paste it in to the Notifications Visualizer to preview it.

Open the Notifications Visualizer and set it to the “Toast Payload” screen. Paste the XML in and press “Pop Toast” — this is exactly what your users will see. (Don’t worry — you don’t have to edit this XML.) The preview in Notifications Visualizer will cut your text off, so make sure you press “Pop Toast” to get a live preview instead of relying on the static in-app preview.

Let the toast expire, and check it out in the Action Center too — make sure it looks decent.

Watch for these common gotchas:

  • Notification duration: make sure you’re happy with what you chose. (Your only options are long or short.)
  • Images: Make sure they load, and load fast. Use a good CDN. It’ll probably cost you $0.50 in bandwidth for a huge campaign, and this tiny change has an outsized effect on performance.
  • Links: Check them, and then check them again. You only get one shot at this. Make sure your affiliate link is present and functioning (if applicable)- it could literally double your revenue. And make sure that your Dev Center campaign ID (the cid= parameter we added earlier) is still there — this is what allows you to track the effectiveness of this campaign.
  • Try machine-translating the text of your notification yourself, and previewing that text in a toast. Some languages have a habit wrecking layouts by using a lot more characters than English. (German, I’m looking at you.)

Step 6: Fire!

If you’re satisfied with your preview, go back to the Dev Center and press “Send”.

After a few hours, you’ll be able to see in-dashboard delivery analytics for your push campaign. It looks like this:

Unless your app is brand new, you’ll notice right away that the number of notifications that were sent will be significantly lower than your total number of installs. This is, of course, due to people uninstalling your app — push notifications only reach your current userbase, not your total userbase.

After action report

Once your push notification is fully delivered (or expires), look back at your campaign and try to answer the following questions:

How did the campaign perform?

From the delivery statistics in the Push Notifications section of the Dev Center, you can get your ‘impressions’. From your affiliate account with TradeDoubler, you can get your clicks. And from your Channels & Conversions section of the Dev Center, you can get your installs.

Compare your performance to the two case studies in Step 1, considering that free apps have much higher click-through and conversion rates than paid apps.

Did this campaign generate user complaints?

If so, consider whether your push was promoting something irrelevant — in-app purchases to users who already have them, English-only text to users in France, etc. — or whether your creative was obnoxious. Did you use an annoying notification sound or an animated image in the toast, or offer something that wasn’t available when the user clicked through?

When should I do this again?

Start planning your next campaign. Consider an in-app giveaway or contest; don’t hammer the channel with repeated cross-promotions.

Wrapping up

Push notifications are one of the most effective and rewarding marketing channels available to your Microsoft Store app. Remember these key takeaways for your next campaign:

  • Know what you’re promoting, and build a sensible segment for it
  • Use a schedule that matches the offer
  • Use your affiliate link and Microsoft Edge when cross-promoting
  • Always use the Dev Center’s conversion tracking
  • Host your images on a worldwide CDN
  • Be respectful to your users; they won’t be afraid to mute or uninstall your app if you abuse this channel.

If you found this guide useful, be sure to follow User Camp on Twitter. Have feedback or corrections? Leave us a comment!

User Camp is the place for Microsoft Store developers. You should follow us on Twitter.