John Hodge

Featured image for What are appName appBundle and appStoreURL

What are appName appBundle and appStoreUrl? And what they're not.

Published by on

I’ve had a few calls with clients and their partners where the conversation of data sharing seems to include IAB OpenRTB app object items. Being as there’s some confusion on exactly what these items are, I wanted to walk through their definitions and a couple examples.

What these identifiers are (textbook definitions)

The three objects that I’m focusing on (appName, appBundle, and appStoreUrl), are the most common, and their definitions are1:

  • appName: App name (might be aliased at the publisher’s request).
  • appBundle: Application bundle or package name (e.g., com.foo.mygame); intended to be a unique ID across exchanges.
    • The format of appBundle depends on the device, Amit Shetty has a blog on the IABTechLab website that explains more about this and links to a reference that identifies what these look like and where to find them.
  • appStoreUrl: App store URL for an installed app; for QAG 1.5 compliance.

I have a couple of important call-outs here:

  • These identifiers are broad, they explain the application, not the specific show or episode of content. An example of this is the CNNgo app on Roku.
  • The example for appBundle shared by the IAB above (ex: com.foo.mygame) is only one example of an appBundle, there are different formats depending on the device. Amit Shetty has a blog on the IABTechLab website that explains more about this and links to a reference that identifies what these look like and where to find them2.
  • These IDs are probably the most common in use today, but it’s probable that this list will expand to include more objects soon.

More details on the CNNgo app on Roku

I strongly recommend bookmarking this resource shared by Amit Shetty. It has a great table with all the appBundle formats and where to find them2.

Let’s dig in further on how to find the IDs above. We’ll use the CNNgo app on Roku as an example since Roku is one of the harder apps to find these IDs for. Note: it isn’t really hard, it’s just not as easy as it is for Apple devices, which I’ll dig into as well.

To find these different objects, I did a Google search for CNN on Roku and I found a page on CNN’s website with links to all their apps (https://www.cnn.com/specials/mobile-apps). So, I clicked on the one for Roku and was taken to this page: https://channelstore.roku.com/details/d5ad40d414a59b3641556ec7804f5bf7/cnngo.

I can fill in the appName, appStoreUrl, and appBundle from the information on this page:

CNNgo bundle ID

Not so hard, right? Finding this for Apple devices is even easier.

Similar to Roku, I was able to find the link to the iOS app page from the CNN website, which led me here: https://apps.apple.com/us/app/cnn-app-for-iphone/id331786748. The cool thing about Apple products is that all the info you need is directly accessible from the page, no need to look at source code.

Sometimes publishers don’t have a site page with all their apps. In that case, you should be able to find these with a simple Google search.

For example, the search “tnt app on iphone” shows me this page as a first result, with all the information I need https://apps.apple.com/us/app/watch-tnt/id460494135.

What these identifiers are not

Proprietary pieces of publisher owned data

As illustrated with the research above, this information is publicly available. It’s not proprietary information that’s owned by publishers. Note: if there's an agreement between two parties that says these IDs cannot be used for sales purposes, those agreements need to be adhered to regardless of how available this information may be.

However, going into conversations before these agreements are made could help you discuss why this would be restricted. The CNN information above isn’t owned by CNN, so why would they restrict my ability to use it in sales? There may be a misunderstanding about what this data represents.

Final thoughts on these ID spaces

It should be noted that inaccurate values can hurt seller reputation. For example, if a system like HUMAN (formerly WhiteOps) picks up mismatched appBundles, this flag could be shared with buyers who are using their platform. This could discourage these buyers from bidding because inventory from this exchange may appear to be misrepresented which could make it look fraudulent.

appName, appbundle, and appStoreUrl are used to describe the content being watched as inventory becomes available. If a buyer is targeting one of these items, then bid requests missing them will not match their criteria. While publishers can opt-out of sharing these data points, they could be hurting their sales efforts by missing out on monetization opportunities.

There’s no reason for publishers to limit resellers' activity, and I believe that any propensity to throttle access to these data points is a result of misunderstanding what they are.

Resources

  1. Interactive Advertising Bureau. “OpenRTB API Specification Version 2.3.1.” New York: Interactive Advertising Bureau, June 2015. https://www.iab.com/wp-content/uploads/2015/05/OpenRTB_API_Specification_Version_2_3_1.pdf

  2. Shetty, Amit. “Guidelines for CTV/OTT Device and App Identification.” IAB Tech Lab. IAB, December 20, 2019. https://iabtechlab.com/blog/guidelines-ctv-ott-device-and-app-identification/