Increase Retention With Quettra Portrait User Interest API

Quettra, backed by $2.9 million in seed investment, is a mobile intelligence solution that focuses on personalizing mobile experiences through understanding users' interactions with their phones, on a deeper operating system-level view. That is, Quettra attempts to drive up organic retention through the creation of personas, using its User Interest API to provide the ability to build a portrait or persona of a user.

Quettra gives developers a holistic view of user interests, brand affinities, mobile personas and inferred demographics, where available.

Quettra Portrait TM

Quettra’s value proposition is simple: The first experience an app provides to users defines whether they will understand the app’s value proposition. According to Quettra, up to 77% of people stop using the average app within the first three days of installing it (when observed using statistical modeling such as cohorts), which comes down to apps in most cases providing a "cold-welcome" to their new users.

Quettra gives developers the tools for retaining users and providing a personalized narrative and experience when they first install the app. This is called building the user’s persona.

Building Personas

Building your users’ personas consists of the following categories:

  • Language, location, device, phone carrier
  • Age, gender
  • Personal interests (fitness, technology, fine arts)
  • Brand affinities (Nike, Apple, Macy’s)
  • Personas (a book lover, new parent, dog owner)

In fact, you can take a look at Quettra’s complete taxonomy to get an idea of the gamut of personas and demographic groups that the SDK uses to categorize each of your users.

When a user first launches an app, the developer would generally provide some onboarding to introduce the app to the user. This is an excellent opportunity for developers to tailor the app to individual users, providing content for non-signed-in users, with suggestive content based on their personas.

A news app (think Flipboard) would therefore already have content that is of interest to the user, matching his or her persona. You can either preselect the topics that match the data you suggested from the SDK, or you can let the user decide from the predictive list.

Another use case is to integrate Quettra Portrait with your mobile advertising solutions. With quick and early insights into users, developers are able to fine-tine ads to create more accurate and targeted marketing campaigns based on real interests.

Getting Started With the SDK

Integrating Quettra Portrait into an existing mobile app is straightforward, and Quettra supports two platforms, iOS and Android. In this article, we will assume you are using iOS and will guide you through the steps and Sample Code.

Download the SDK Library & Add It to Your Xcode Project

Start by downloading the latest Quettra SDK Library, unzipping and finding the QuettraPortraitSDK. Framework.

An easier way, if you use cocoapods, is to simply add pod ‘Quettra-SDK’, ‘~> 1.3.0’ in your Podfile.

Then drag the QuettraPortraitSDK.framework file into your Xcode project, enabling Copy items into destination group’s folder if needed. Next go to the app’s target settings, then General and find Linked Frameworks and Libraries. You would then add the following libraries:

  • AdSupport.framework
  • CoreTelephoney.framework
  • libz.1.2.5.dylib

You will notice that the AdSupport framework is required. This is important because it gives the user the power to enable or disable the SDK, deriving and providing information on the user, through the iPhone’s privacy settings.

Getting API Access

You will need API access, consisting of a partner ID and secret key, which you can find under settings once you’ve signed up for Quettra.

Adding the Appropriate Code to Your Project

If you are using SWIFT, you can import the header files in the -Bridging-header.h file, as follows:

#import <QuettraPortraitSDK/QuettraPortrait.h>

Next, in either your appDelegate file or root view controller (in the viewDidLoad() method ), add the following:

QuettraPortrait.getPortraitWithPartnerId("yourID", withDelegate: self)

You will also need to implement the delegate methods for GetPortraitDelegate:

extension RootViewController: GetPortraitDelegate{

func onSuccess(portrait: Portrait!) {
    self.portrait = portrait

func onFail(errorCode: Int32, errorMessage: String!) {
    log.error("Error message for Portrait \(errorMessage)")

Accessing the Specific Information

Now that you have access to the Portrait object, you can begin to consume the raw data individually:


  • portrait.basics.device: NSString
  • portrait.basics.carrier: NSString
  • portrait.basics.locale: NSString
  • NSString


  • portrait.basics.age: NSString
  • portrait.basics.gender: NSString


  • portrait.personas: NSArray (see taxonomy)


  • portrait.interests.categories: NSArray (see taxonomy)


  • portrait.interests.brands.strong: NSArray (strong brands)
  • portrait.interests.brands.medium: NSArray (medium brands)
  • portrait.interests.brands.weak: NSArray (weak brands)

Integrating With Other Services

What makes Quettra Portrait even more exciting is that it can be integrated with other prominent third-party services with ease.

Parse SDK

Facebook’s Parse SDK is one such prominent cloud solution that makes use of an installation table to record device information (even before the user has authenticated) in the delegate:

[currentInstallation saveInBackgroundWithBlock: ^(BOOL value1, NSError *value2) {
    PFInstallation *pfInstallation = [PFInstallation currentInstallation];
    [QuettraPortrait setParseObjectId:pfInstallation.objectId];

Urban Airship

Integrating Quettra with Urban Airship is just as straightforward, by adding the following code to the viewDidLoad() method of your root view controller:

NSString *channelid = [UAPush shared].channelID;
[QuettraPortrait setUrbanAirshipChannelId:channelId];


Of course, you may be wondering where privacy fits in with all of this. Getting information from users even before they sign up sounds a bit scary for the users. Thankfully, Quettra requires all developers implementing its SDK to post its unedited privacy policy or their own version, which must:

  • Provide notice of your use of a tracking pixel, agent or any other visitor identification technology that collects, uses, shares and stores data about end users of your applications.
  • Contain a link to Quettra’s privacy policy and/or describe how to opt out of Quettra’s personalization and monetization in such a manner that end users can easily find it and opt out of Quettra Analytics tracking and personalized ads and/or recommendations from Quettra.


Quettra Portrait provides developers intimate insight into their app users by creating personas that fall into specific categories. Gaining insight early on allows app developers to solve retention problems by providing a more tailored intro for the users, such as matching users' personas with specific news categories.

Advertisers are able to boost advertising attention by gaining meaningful early access information as well. With support for iOS and Android, developers on both platforms now shouldn’t have an excuse to treat every app installer as the same.

Be sure to read the next Mobile article: How To Implement Deep Linking on iOS