App Store Meta Tags

Screen shot of Dominos home page on Nexus 7.
Why yes, Dominos, I’d love to tap again to get your real home page to order a pizza when I could have done it right here, below your over-sized app pitch that could be done in a tiny ribbon.

This is an adapted and updated version of a blog post on my site from last week. This post includes a real-world example of the feature.

This may be old news to some of you, but I haven’t found a place that collects this in one spot.

One of the most offensive experiences I have when surfing a site on my mobile devices is being forced to click through an advertisement for the site’s app in the iTunes store (even moreso when I am surfing on a non-iOS device). There is a fair number of sites I have tapped away from because of this (I also don’t expect to be served the page I came to see, but instead shunted to the mobile home page).

If yours is one of those sites, whether promoting your entire user experience or just a product, there is a less offensive way to present your pitch to users on iOS and Windows Phone.


iOS 6

Safari on iOS 6 and later devices can promote your app with a standardized banner. Essentially you stuff a custom meta tag into your page that references your App Store ID. If the user already has the app installed, then the ad becomes a launcher instead.

The code is pretty simple:

<meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">

  • app-id is required and references your app’s identifier.
  • affiliate-data is optional and uses your iTunes affiliate string.
  • app-argument is also optional and can allow users who have your app installed to jump to a specific place in your app.

More details at Apple’s developer site: Promoting Apps with Smart App Banners

Windows 8

Microsoft offers a similar feature for users of Windows 8 in non-desktop mode who are also using Internet Explorer. I have not tried it, so I cannot explain how this works as the user changes modes nor how it works with the “charms” feature of Windows 8.

This code is relatively simple as well, though it requires two meta tags and supports up to five:

<meta name="msApplication-ID" content=""/>
<meta name="msApplication-PackageFamilyName" content="microsoft.build_8wekyb3d8bbwe"/>

  • msApplication-ID is required and references your app’s identifier.
  • msApplication-PackageFamilyName is required and contains the package family name created by Visual Studio.
  • msApplication-Arguments is optional and lets you pass arguments to your app.
  • msApplication-MinVersion is optional and can direct users with an old version to the Windows Store.
  • msApplication-OptOut

More details at Microsoft Developer Network: Connect your website to your Windows Store app (Windows)

Google Play, BlackBerry App World, Etc.

In addition to Google Play, BlackBerry App World, I looked for similar features for the Firefox OS and Ubuntu Mobile stores. I know there are other mobile platforms out there for which I did not look.

If you know of other app stores that offer similar features, please let me know so I can update this post.

Real-World Example

One of our spin-off companies, SWRemote, has an app available for iPads. There is value in promoting the app to visitors of the site but not in blocking their access to the site content with a splash page or an extra click, especially if they are not on iPads. The SWRemote web site is powered by QuantumCMS (yes, I am promoting our web content management system), which makes it about 30 seconds of effort to add the necessary meta tag to the site.

Screen shot of the QuantumCMS custom meta tag screen.
Screen shot of the QuantumCMS custom meta tag screen.

If you are already a client of ours on QuantumCMS, all you have to do is choose Site Configuration from the Settings menu and pop into the Marketing tab. This is the screen that allows you to add custom meta tags. Press the Advanced button and you are off to the races. In the Name field, for this example, I just entered “apple-itunes-app” and in the Content field I provided the custom ID for the app appended to “app-id=.” As soon as I hit Save the web site was showing the app bar to visitors:

Site on the iPad3 without the app installed. Site on the iPad3 with the app installed.
Screen shots of the SWRemote site on an iPad3 both with the app installed and without it installed, showing how the bar changes its message.

Oddly, even though the app runs on the iPad Mini, which is running iOS6, the app bar never appeared on the site when viewed on the iPad Mini. On an iPhone 5, the app bar started to appear and then disappeared — probably as the device recognized that there is no iPhone version of the app.

If/when there is an app available for Windows Phone, the process to add this feature will be the same, allowing the site to promote both apps dependent on the audience. QuantumCMS helps make the process easier, with no need to code any changes to your site templates.


There are other places where custom meta tags are used to display targeted content. One example is used for Twitter Cards and another example is used with Google News. While you can build support for them, neither Twitter nor Google is going to use them unless you have been vetted in advance.


Apple vs. Windows? Actually, it’s Not a Simple Question.

Being knee-deep in the technical world, I get asked “Which do you use, Apple or Windows?” more times than I care to count. If I’m being asked by another technically-savvy person, I usually try to tiptoe around the topic because it seems almost everyone is married to one or the other. If I say I use Windows products, Apple advocates are surely going to point out the User Interface issues and abundant viruses housed on Windows. If I say I use Apple products, Windows (or Linux) advocates will be quick to complain about the lockdown of the development environment and the largely proprietary attitude of Apple. Unfortunately for both cult groups my answer isn’t as simple as saying I use one or the other.

I come from the school of thought that teaches that the tool that’s the best for the task at hand is the tool I want to use. I try not to become married to a company or product just because I like what they stand for or because I like their other products. I believe that, when you’re in technical field, it’s important to stay up to date with all technologies and to expand your skills as time goes on. I see so many legacy coders who refuse to move from Assembly, COBOL, and even C++ to newer languages just because they can do anything they want in those languages, but this refusal to adapt usually leads to a stagnant environment that’s incapable of evolution.

So why do people refuse to update their tools when it comes to technology? I don’t think there’s any one answer to this question; stubbornness, or even pride, can cause people to blindly follow a product they’ve always trusted before. But I’d be willing to bet that the lack of information, or even misinformation, from people who should know better is a leading cause.

For example, I was setting up a new printer for my neighbor the other day and we got into the Apple vs. Windows debate. Unlike most of the technical users I interact with, my neighbor was simply more curious about the advantages and disadvantages of each. After I explained the technical differences between the products and policies, she smiled and told me about a friend of hers who made the switch to Apple about two years ago and has never looked back. Her friend continues to tell her that Apple has the best products out there, and to tout their sales numbers, but fails to provide any solid reasoning as to why Apple is superior. In short, she was grateful that I gave her an objective breakdown of the two companies.

In the end, I’ve just accepted the fact that some people will have a positive experience with a company or product and that experience will be enough to encourage blind loyalty. Some people will choose Apple products and then they’ll stick with Apple products; others will choose Windows and stick with Windows. This system probably won’t ruin anyone and there’s always the benefit of familiarity with the product, but if we want to truly continue to progress and evolve, I think we have to be open to new and different products.

The question shouldn’t be “Apple or Windows”, but rather “What’s the best technology for this task?” After all, if we all refused to evolve we’d still be using AOL for our email and internet and Google would be an unknown name in the computing world!

MVC: Taking the Web By Storm

Author: Matthew Grigajtis 10-27-2011

MVC has become a very popular abbreviation lately, especially among web developers – and for a very good reason. MVC stands for Model View and Controller, and it is basically standardizing modern web application across platforms and languages. The MVC architecture uses what is called the DRY (Don’t Repeat Yourself) philosophy, and has succeeded in taking an object oriented approach in making web applications development elegant and powerful while being easy for multiple developers to maintain.

The Model of the MVC architecture is basically the object. For example, if you were building an application that kept a record of employees in a database the Employee would be the Model. The Model is also the portion that is intended to work directly with the database.

The View portion of the MVC architecture is what the End User sees. Many open source developers would think of this as the template, while Old School Microsoft ASP.NET developers would think of this as the Master Form. All the presentation and JavaScript is contained within the view and it is not supposed to contain any business logic.

The Controller portion of the architecture is the glue that holds it all together.  The controller is what interacts between the Model and the View. The controller will often contain business logic, call functions that interact with database from the model, process the forms, and handle all of the redirections.

An MVC architecture is available in virtually all platforms and languages.  Microsoft is up to version 3 of their MVC architecture and it is available for developers to use right now in MS Visual Studio, supporting both C# and VB in .NET.  There are also a myriad of Open Source MVC architectures available for free that run on *nix systems.  Ruby on Rails has gained a great deal of popularity in the recent years. Django is another elder MVC web application framework written in Python that has also had a cult following. CakePHP and Symfony are two of the more popular PHP MVC frameworks that many PHP developers prefer to use in modern application development.

While there are many legacy applications out there that probably have several years left in their lives, applications using the MVC framework will quickly become the norm and a standard skill that employers will be seeking.