With this post we’re rolling out a new feature to help Windows Phone 6 developers market their applications: deeplinking with the new “Get It Now” Windows Phone logo.
A Windows Phone 6 deeplink points users directly to your application details page on either the Marketplace website, or the Marketplace on-device client. When used with the new logo, deeplinking to the Marketplace website is perfect for email marketing, or for telling users who come to your website how to find your Windows Phone 6 apps.
Deeplinking to the client is even more powerful because you can embed the link within an app. When a user clicks on a client deeplink it will open the marketplace client directly to the details page of the linked application, giving you a great way to help users try new products, or to convert free trial downloads into paid transactions.
Another great thing is that your deeplinks will always point to the latest published version of the linked apps, within your user’s home market. So, you won’t need to go back and change your deeplinks every time you publish an update. Deeplinks are currently limited to applications within the user’s market; however we expect to roll-out cross-market deeplinking in the near future.
Let’s take a closer look at how deeplinking works, starting with the web experience.
The first thing to do is download the new “Get It Now on Windows Phone” logo artwork and license agreement here. You can use deeplinks without the artwork, but it’s free, easy to access, and comes in several different languages, so why not go ahead and download it?
Now, let’s build a deeplink for a specific app. Deeplinking uses a parameter called Link ID, so let’s grab the Link ID for the app you want to link to. You can find this within the Marketplace developer portal by following these steps:
Once you have the link, create a new URL of the format:
https://marketplace.windowsphone.com/details.aspx?appId=LinkID
The Link ID is the 32-character string copied in step 4. Now, link to this URL in your app-specific marketing communications, using the “Get It Now” artwork
That’s it. When a user clicks on that link, they will go directly to the details page for your app on the Marketplace website. It’s important to remember that while the Link ID will remain constant for any updates to an app, there may be different Link IDs for Standard and Professional apps. So, if you have apps for both Standard and Professional devices, you’ll need to get the unique Link ID for each of those apps, and point your users to the different versions appropriately. Also, if they are not already signed in with Windows Live ID, users will be reminded to do so before they can download or purchase the app from the Marketplace website.
Now let’s take a look at deep linking on the on-device client. First you’ll need to grab the 32-character Link ID by following steps 1-4 in the deeplinking for web instructions above. Once you have the LinkID, the best way is to use it is to add a new button control to your app. You can even use the “Get It Now” artwork as the visual for the button control, like we did in this demo app screenshot.
Once the control is placed, add an action to launch a process from the control using:
System.Diagnostics.Process.Start("\\Windows\\WMMarketplaceFullClient.exe", "/appid:LinkID");
Where Link ID is the 32-character string you grabbed above.
When the app is compiled, a click on the button control will open the Marketplace on-device client directly to the details page of the linked application, like this:
The final step is to submit the updated .cab file for certification testing via the Windows Phone developer portal. You can do this as an update to the existing app, and remember, you can submit as many as nine free updates to each Marketplace application.
Just as with deeplinking on the web, the Link ID will remain constant for updates to an app, so you won’t need to change the control when you update the linked app. You can use this feature to up-sell free trials to paid downloads, (which by the way is a great strategy for increasing revenue), or simply to help your users find other apps you think they’d like.
Whether you use the website version, or the client version, or both, deeplinking gives you a great way to tell users how to quickly and easily find, try, and buy your applications on the Windows Phone 6 Marketplace!
You work very hard to develop, test, and market your Windows Mobile application. Failing Windows Marketplace for Mobile certification testing can be a frustrating experience, but it doesn’t have to be. Failing certification costs a submission credit (or another $99 if you have exhausted your initial five credits), you have to correct and resubmit your application – likely not what you planned. In this post, we’ll cover a few tips that should help you increase the first time pass rate and have your application published to the Marketplace sooner.
As a Windows Marketplace for Mobile developer, you are notified via email when the Application Submission Requirements for Windows Marketplace for Mobile is updated. You can also check the Windows Marketplace for Mobile forum for important announcements including the availability of new requirements. You may be surprised the number of developers that attempt to pass certification testing without understanding the requirements. If you have any questions regarding the requirements, please post them in the very active Windows Marketplace for Mobile forum.
From the requirements document:
1.17. Hopper Test The application must complete two hours of Microsoft’s Hopper test without exhibiting unpredictable behavior, hanging or crashing.
The more you run Hopper, the more confidence you will have in passing this requirement. While the requirement calls for two hours, a good benchmark is the number of hours your app runs without problems. Use this as a development metric. There is no reason your application can’t run for 20 hours or more. A suggested practice is to let your application run overnight and check it in the morning when coming into work. Ideally, Hopper and your app will still be running!
There are separate versions of Hopper for Standard and Professional. Make sure you are using the correct one for the device / emulator you are testing against. Also Hopper has been updated to support Windows Mobile 6.5. The correct version of Hopper can be downloaded here.
Hopper is brain dead stupid. That is no knock against this stress testing tool. Hopper simply ‘taps’ and ‘types’ randomly into your application. It will stress your application like no user would in the real-world. It is great for exposing bugs that are not found during normal ad hoc testing. To ensure the device or your application is not hanging, it periodically pulls down the Start screen. It does not know anything about your application, in fact you have to artificially ‘force’ Hopper to tap and type into your application. This is done via a Focus Application. The focus application periodically (the default is every 10 seconds), forces your application into the foreground. As a developer, you need to customize the Focus App for your application, changing the string constant that references to your EXE name and path. Starting Hopper and the Focus app (you don’t need to explicitly start your application, it will be started by the Focus App) can be tricky, since Hopper immediately starts tapping and typing when started, making it difficult to navigate to start the Focus App. There are a couple of solutions to this:
Note that Hopper is a stress tool and as such, your application may crash during a Hopper run. This is a good thing in that Hopper is doing its job stressing your app. It is a good practice to run your application under the Visual Studio debugger when running Hopper. Especially when you are early in the development cycle. This way when your app crashes, the debugger will stop exactly where the crash is occurring. You can also inspect the state of your app to help determine the cause of the crash.
One of the more common Hopper failures (log files are stored in \testlog\hopper.log) is ‘Start menu dead’. See here for a good explanation and possible causes of this failure: Hopper: Start Menu Dead!. The Hopper blog is also a good source for tips on running Hopper; however the content is skewed more towards OEMs.
1.13. Multiple Device Support Developers must identify the required device functionality during the Windows Marketplace submission process. Applications must have the ability to run on multiple Windows Mobile device platforms, for example, multiple Standard or multiple Professional devices. Although not recommended, applications can support a limited number of Windows Mobile devices.
While not previously stated explicitly, this requirement also includes the proper handling of screen rotation. Just about every Windows Mobile Professional device now supports dynamic rotation. Typically this is triggered when sliding out an on-device keyboard or titling the device.
The Adapt Your App section in the Windows Mobile Developer center is a great resource for information on how to ensure your application properly adapts to different screen orientations, sizes, and DPIs.
When changing orientation the OS will send your application a size event. Make sure you are taking action on this event: OnSize (if a managed) or WM_SIZE (for native code). For example, you may need to reposition some of your user interface elements. For a great in-depth article on this topic, check out: Adaptable Apps For Windows Mobile.
Take advantage of the plethora of emulators that are included with the SDKs / DTKs. The emulators support screen rotation (press the Calendar button) and come in multiple DPI and screen sizes. See here for a blog post on how to automate this process: PowerShell and Quick UI Check for WM Applications. Best case is to test on at least one device that ships in-market as some scenarios are difficult to test sufficiently within the emulator.
Hopefully these tips will help you avoid certification testing failures, if you need help with your specific test failure, use the Support link in the developer dashboard to create an email support request. Just be sure to include all identifying information regarding your application including the product id. The Marketplace certification team will respond within 48-business hours.
Thanks,
Mike
Being at this year’s Mobile World Congress in Barcelona has me feeling both excited and proud. I’m excited to show off Windows Phone 7 Series and eager to dig into the details with our developer community at events like GDC and MIX next month. MWC also marks the one year anniversary of the promise we made to deliver a new kind of application marketplace in Windows Marketplace for Mobile. I couldn’t be more proud of the marketplace that Microsoft, the developer community, and our MO partners established and am pleased to announce several new development tools and updates.
For the past year we’ve been working to create a new kind of application marketplace; one that delivers quality applications and a great shopping experience, while offering developers a more direct opportunity to reach customers with clear guidance and insight into certification standards and processes. Marketplace has only been available for four months and in that time I have been pleased to hear from several of our partners about their apps taking off. Where some application stores optimize for high volume and low price, we reasoned that customers and developers alike would benefit from a marketplace that offered high quality certified applications that are priced and merchandised to reflect their value to customers. So far it’s working. For the last 4 months, while the average asking price of all paid apps is $6.26, the average app sales price on Marketplace is $5.36. This low delta between average asking and sales price reflects a high symmetry between perceived and actual value. To date, we feature more than 1245 applications from more than 1325 registered ISVs.
In addition to helping developers reach customers and make money, we’ve continued to improve the predictability and speed at which we do vetting and certification. Since we launched in October, our average vetting time has dropped from 30 to 10 days and our average time to certify has dropped from 12 to less than 5 days with less variation.
Some of the biggest beneficiaries of Windows Marketplace are the winners of our Race to Market Challenge, the contest launched last summer to see whose apps could generate the most downloads and revenue in the first 100 days. For months, ISVs competed for early access to a new market of Windows Phone customers … some may also have been motivated by the grand prize, a Microsoft Surface table. Well, we’re just passed the 100 day mark, and I’m pleased to announce today our winners who have combined great applications with effective marketing and pricing strategies to win!
As for the Marketplace service itself, over the next few days we will be rolling out several important updates to enhance the experience for both customers and developers. Customer experience improvements
For additional exciting announcements in the consumer space, be sure to check out Liz Sloan’s blog here.
Developer experience improvements
I’m also happy to share that we are introducing a Windows Mobile 6.5.3 Developer Toolkit (DTK) which includes support for a new generation of Windows Mobile 6.5 phones that include capacitive touch screens. For a quick summary of the differences between the SDK and the DTK, I encourage you to read this blog. The DTK comes packed with some pretty cool new features you can add to your application like a Bing Map Control, Widget VS Integration, Bubble Tiles, Auto Dialog Layout, and more. I encourage you to download the DTK here and take advantage of some new tools and new features.
Finally, I’d like to take this opportunity to tell you about a new twitter account @toddbrix, I’ve set-up to more frequently share my thoughts on commercial, merchandising and marketing best practices, opportunities and ahead of the curve insight to make the most out of your investment on Windows Phone both now and with the upcoming release of Windows Phone Series 7. Speaking of which, I’d also encourage you to follow Charlie Kindel, @ckindel as he will be sharing more about the upcoming Windows Phone 7 Series development platform. We’ll also be sharing a lot more about both our development platform and marketplace service at MIX10 hope to see you there.
We told you last year that we would deliver a new kind of application marketplace, and we told you in October that we’d continue to deliver a meaningful updates to Windows Phones and Windows Marketplace for Mobile. We are excited to stand true to our promises and look forward to an exciting year.
Stay tuned, we’re just getting started!
Todd Brix
In a companion post on the Windows Phone Blog, we have unveiled the highly anticipated Windows Phone 7 Series. For the first time ever, we are bringing together Xbox LIVE games and the Zune music and video experience to phones. Developers are already speculating about the app platform and tools. All I can tell you is that we are going big at MIX10, March 15-17.
I will proudly say that we are about to launch a very compelling mobile development platform – arguably the best in our history. Even if you can’t join us at MIX this year be sure to follow Charlie Kindel, @ckindel for regular updates on the developer story for Windows Phone.
You can read the full Windows Phone 7 Series press release here.
If you are developing applications for Windows phone, you have probably read about the Standard and Advanced Anti-Piracy Protection available to developers to help protect your hard developed IP. If you haven’t done so yet, check out the Windows Marketplace anti-piracy model white paper available here. Advanced Anti-Piracy Protection (AAPP) is designed to thwart the illegitimate sharing of your Windows phone applications. Even if a hacker obtains the binaries from one device, AAPP will prevent that application from running on any other device. While Standard Anti-Piracy protection does not require any intervention by the developer, AAPP does require that you integrate code into your application. We will walk through how AAPP works, how you obtain the AAPP code from Microsoft and how to integrate the AAPP code into your application.
Installation Time: The Marketplace Client installs a license, derived from the application id and the device id, into the registry. The license is protected using RSA security.
Application Run Time: The startup code (obtained from the Marketplace section of the Windows phone Developer Portal) in your application verifies that the license stored in the registry matches your application. You (the developer) has control over the error handling. You can choose to display an error and quit, shift into ‘demo’ mode, or do whatever you deem appropriate.
Obtaining the AAPP code is part of the application submission process. You will see the following at Step 3 (Product Info).
Clicking on ‘Show Managed Code…’ we see the following code:
This code has all the basics you need to implement the Advanced Anti-Piracy Protection. However there are a few gaps that you need to fill-in. I’ve put together a sample (HelloAAPP) that has these issues worked out. You can download it from here.
Please let me know in the comments if there any other gaps in the AAPP code that you have had to fill.