Best Practices for Core Spotlight Search on iOS 9

Core Spotlight, a new feature of iOS 9, can have a huge impact on app discovery for developers. Now, users can search within your app to find the specific content they care about. Here’s an example screenshot using the Branch test app, “Branch Monster Factory”.

In this example, I created a monster called ‘Bingles Jingleheimer’ in my app, then searched for him in Spotlight. Sure enough, the in-app result appeared!

iOS 9 spotlight search result

How to use Spotlight Search for App Content on iOS 9

Now, Core Spotlight search is complex, so we thought it worthwhile to write a best practices guide on what we’ve observed works particularly well.

Apple iOS 9 Spotlight Search Result

Spotlight Suggestion: Track Clicks and Installs

Since this is an entirely new channel, it’s important that you know how well it works for your app. If there is a particular piece of content that drives high engagement with your business, you want to be able to track it.

When you use Branch to create and list this content on Spotlight, we will tag it with the appropriate identifiers so that `clicks`, `opens` and `installs` are automatically counted for each link listed. To list content through Branch, you can use this simple method below (or use a more advanced technique if you need more control):

The `createDiscoverableContent` method of the Branch SDK will automatically use the following labels to organize the data. Select these to filter out all other clicks and attribution.

feature: ‘share’

channel: ‘spotlight’

Spotlight Suggestion: Configure Deep Link Routing

When a user clicks on a Spotlight result, they expect to enter the app and immediately see that piece of content. However, this doesn’t happen naturally. You must actively invest work in the post-click routing to content. There are two scenarios where you’d want to deep link:

1.Installing the app after clicking on Spotlight Cloud result

2. Reopening the app after clicking local Spotlight result

If you’re using Branch, it’s quite easy to handle both. First, register your deep link handler. This will be called every time the app opens, and will contain deep link data for new and existing users after a link was clicked:

Then, make sure Branch receives the Spotlight data when the app is already installed:

It’s as easy as that! Now, when users click your links, you’ll route them to the correct place in the app immediately, no matter if they are brand new users.

Spotlight Suggestion: Add Targeted Keywords To Each Listing

The new Core Spotlight framework allows you to configure your search result with many different options. It’s important to leverage the ‘keywords’ option. You can add in an unlimited set of keywords for which to register your content.

We recommend that you try to use keywords as efficiently and effectively as possible–historically, search engines have punished search results for following a practice called ‘keyword stuffing’. Here’s an example of a few keywords deployed for the same search result as shown above:

Spotlight Suggestion: Don’t Duplicate Content

Lastly, make sure not to duplicate app content while indexing the objects in your app. Spotlight uses the identifier field of the `CSSearchableItemAttributeSet` to determine if a piece of content is unique. If you change it slightly, it will register as an entirely new piece of searchable content, even if the title and description are the same.

If you’re using Branch, we’ll automatically take care to make sure that the identifier remains the same as long as you always use the same inputs. If the inputs from title, description, and params remain the same, the identifier will not be duplicated and you can call the `createDiscoverableContent` method as much as you’d like.

Spotlight Suggestion: Use A Deepview For Cloud Spotlight

If you set `publiclyIndexable:YES` when you create Spotlight content, you indicate to Apple that this content should be publicly searchable through what they call ‘Cloud Spotlight Search’. This means that people can find your app’s search result even if they don’t have your app installed. Apple will route them to the App Store upon click.. Of course, this means that Apple would have figured out how to rank your content publicly, but that’s a separate story.

Let’s think through this experience from the user’s perspective. Say a user is looking for a pair of shoes. I search for a pair of shoes in Spotlight, and it appears that Cole Haan has them in stock. I click on the search result and if Deepviews were not enabled, I’d get taken to the App Store. Ugh. How frustrating!

However, Cole Haan uses Branch Deepviews for their cloud search results – here’s a sample screenshot of what the user would see when clicking that result if the Cole Haan App were not installed:

Cole Haan Deepview on Spotlight Search

Deepviews provides a much better user experience when searching for particular content in Spotlight. When a user clicks on one of your results, they make an investment in your business. You have to deliver some value immediately, even if you don’t allow them to purchase or engage until they download the app.

To enable Deepviews, just head to the Branch dashboard and toggle the iOS Deepview template like so:

Set up Deepviews for Spotlight

Good luck in the race for content rankings!