Smart App Banners: How to use them, and their limitations
Posted by Dion Almaer 8 months ago on ios mobile

The “Smart App Banner” feature in iOS 6 promises to let you pimp your app without the ugly splash screens that drive people so nuts (especially for freaking content sites…. looking at you The Verge, and ABC):

Ugh, I just want to read your content! Anyway, back to the smart app banners. I was very curious to play with them and see what kind of controls I could put in place.
It all comes down to:
<meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">
The good news:
- Since iOS is in charge of what to show, the area “trusted” (how long until people fake it out?)
- If the application is unavailable (device / OS doesn’t support it, or in the wrong region), it won’t be shown
- The system knows if the app is installed (wouldn’t want to tell the web site… privacy an all) so it can flip the action from install to open
- You can pass a “URL” as an argument (app-argument), meaning you can give the site deep link ability. In our case, we can pass
walmart://product?id=Xon a product details page, and when if you open the app it can display the product. - Affiliate info can be passed in (affiliate-data).
- I wanted to see if I could dynamically add the meta tag, and that works fine.
The bad news:
- I would like to be able to say “If the user has the app installed already, don’t bother showing the ‘OPEN’ for this page please”. E.g. I am just trying to use this to push downloads.
- I would like to be able to say “If the user doesn’t have the app installed, don’t bother showing the ‘INSTALL’ for this page please”. E.g. I am just trying to give you a nice deep link here.
- I would like to be able to tweak the messaging and call to action. E.g. “To see rich details of this product, open in the native app”
- I would like to declare “I don’t want to bug the users, so only show the message once a month”
- I would like to declare “Place this above the view port, so it isn’t in the users face, but if the user scrolls up they will see it”
- As a developer of dynamic apps where the client does the rendering, you are severely limited. Dynamically adding the meta tag works (as stated above), but it doesn’t seem to work when I: a) change the meta tag, b) remove the meta tag. If you imagine pushState’ing around and wanting to turn off the banners, no cigar.
This feature has a ton of potential. If you want to throw a meta tag on your home page, or on the incoming page (e.g. if referrer != yourself), then you are golden. If you want to do much more… no cigar.