Rob Gioia is a Senior Solutions Architect at Branch. He helps companies get up and running using Branch's suite of SDKs and products. Prior to Branch he worked as a cross-platform mobile applications developer for several years, and uses his mobile development experience to guide clients through using best practices and elegant coding solutions.
Jun 01, 2022
With the rise of mobile apps and the many privacy changes brought to the advertising ecosystem by Apple, it is increasingly important to measure more than just ad views. Now, brands should measure the conversions and return on investment (ROI) for their ad campaigns. This is the benefit that partnering with a mobile measurement partner (MMP) provides. While you have a choice of multiple MMPs in the market, Branch is a unified linking and experience platform — providing both measurement and optional cross-platform experiences. Users coming from ads, social, or any channel can be driven from the ad directly to the item or promotions in the app (if it is installed). Or, if they don’t have the app installed, they’ll be driven to the app store and then to the item right after install. Once a user has installed your mobile app, you can use the Branch SDK to track events and the Branch dashboard to gain insight into user app activity.
One of the most frequent questions clients ask me is what events they should track with Branch to really make the most of the MMP capabilities. The real power of an MMP, and Branch in particular, lies in tracking downstream events that paint a picture of the user journey. This helps you gain insight into which user performed events across various devices and platforms and focuses on events used for ads optimization, all of which should be the key events that determine value for the customer and their business.
Since Branch is a mobile linking and attribution platform, it can be incredibly valuable for stitching together the user journey from when they land on your mobile website, interact with the content, and proceed to install your app. Once they land inside your app, the downstream events that they perform can give you great insight into what users are doing immediately after installing the app.
Branch’s Event Ontology is a universal data schema that is shared across all Branch products. It also contains some predefined standard events that you can track with Branch, which fall into three main categories:
Events Branch provides you to track important eCommerce events on your website and app
One of the most important KPIs for many clients is purchase revenue from their website and app. This especially holds true for any retail client, as you can imagine. Commerce events can be powerful in delineating the conversion value of a user coming into the app. When considering which commerce events to track, it can be helpful to consider the following questions:
Tracking commerce events mainly applies to any app (or website) that allows a user to make monetary transactions, such as purchases. The purpose of commerce events is to provide you data about what is making your company money, which you can then analyze. Therefore, it is important to consider what key revenue streams are important for your app. If most of your revenue comes from in-app sales, then ‘Add To Cart’, ‘Initiate Purchase’, and ‘Purchase’ are three events that you will most likely want to track. However, if your app is based on a free-to-play model that generates the majority of its revenue from users viewing ads, then ‘View Ad’ and ‘Click Ad’ will probably make the most sense to track.
Another benefit of tracking commerce events is that they can provide insight into which channels and campaigns are driving the most purchases in the app. If you use utm parameters like utm_campaign, utm_feature, and utm_tags, Branch will send those with the event. Also, if you don’t use utm parameters, you can still see the campaign, feature, and tags by using the query parameters ~campaign, ~feature, and ~tags.
Events Branch provides you to track how users interact with your app’s content
Regardless of what type of app or website you have, it is created with content that you’ve added to it. Gaining a better understanding of what content is getting the most (or least) attention from users is a great way to understand how users are engaging with your app. When thinking about what content events you will track using Branch, here are some questions to consider:
Many modern mobile apps display items in a list and allow the user to click on an item in the list to view more details. If that sounds like your app, you are probably interested in what items users are clicking on and interacting with. For that purpose, Branch provides events like ‘View Item’ and ‘View Items’. If a user can share content outside of the app, such as on social media platforms, then you may want to see how often users are sharing content, or which content they are sharing most frequently, by using Branch’s Share event.
Streaming is popular these days, whether on social apps or entertainment apps. If your app or website allows users to stream content, you can use ‘View Item’ to gain insight into what content they are viewing, ‘Initiate Stream’ to determine when they started streaming, and ‘Complete Stream’ to know when they finished streaming the content.
Most apps and websites feature a search bar. If your app fits this category, you may be interested in leveraging Branch’s Search event to gain insight into user searches. For example, you can track the Search event when the user performs a search and add metadata to this event to see what the user searched for. This is an example of how you could learn what users are searching for most often in your app and which keywords are the most popular in those searches.
Events Branch provides you to track the user lifecycle after installation
Some events don’t relate directly to the app content but rather the user lifecycle in the app, such as the user registering an account or logging in. Branch provides eight such lifecycle events that you can track: Start Trial, Complete Registration, Subscribe, Complete Tutorial, Achieve Level, Unlock Achievement, Invite, and Login. Some key considerations to ponder when considering which lifecycle events to track via Branch are:
Some mobile apps, like eLearning apps, assign the user a level to mark their progression through mastering the material taught in the app. Other apps, like mobile games, have a variety of achievements that the player can unlock as they progress. In these scenarios, Branch’s Achieve Level or Unlock Achievement events may be of use to you.
If you offer a trial version of the app, or any premium feature in the app, the Start Trial and Subscribe events will give you insight into how many users initiate a trial, and how many subscribe to the premium feature. Often, when a user first installs an app, they aren’t taken directly to the content of the app. Rather they’re taken to some sort of tutorial that walks them through the app or a page where they can create an account or log in to the app. This is an example of where you can leverage Branch’s Complete Tutorial, Complete Registration, and Login events.
Branch gives you the ability to define events with custom names and metadata
This is where a lot of clients get confused, or perhaps even overwhelmed by the potential options. When considering if you should track a custom event, ask yourself the following questions:
If Branch provides a standard event that either fits your needs exactly or is close enough that it can be repurposed for your use case, then you should use the standard event first. One of the main reasons you would track an event with Branch is because you want to view the event on the Branch dashboard to see some sort of trend in the data. If you want to view an event on the dashboard, then you will need to track it using the Branch SDK. Also of key importance is when in the user journey this event will be fired. If you narrow the scope of the events you track through Branch to only key downstream events that take place right after an install, you can hone in on and analyze key metrics that reveal the success of your user acquisition and re-engagement efforts.
Have you ever had to track down discrepancies when the same user uses your app on a different device? Branch recognizes that many users have multiple devices that they can use to interact with your web and app properties.
For this reason, we provide the setIdentity() function that you can use with any of our SDKs — including Android, iOS, and Web — to specify an identifier that will be added to all of the events tracked via Branch. This enables you to stitch together the user journey from mobile web into app and their first interactions with your app. It also allows you to determine if a user is the same user on a different device by checking if the ID value matches on both sets of events.
If you call this function before tracking events with Branch, any events tracked after that will have a field called developer identity added to them as metadata, with whatever identifier you specify. You can then view this developer identity on the Branch dashboard as events come into the Live View, or you can use one of our Data Export products to export the data.
Some of the most frequent questions I get from clients around Branch’s setIdentity() function are:
For the identifier specified with setIdentity(), you should use some sort of public facing identifier for the user, one that you would share with a third party, like an ad network. Branch will not generate an ID for you; it just gives you the ability to set an ID that you create. Also, it is important to note that you should NEVER be passing PII like email, phone number, etc. into setIdentity(). For example, an ideal identifier to use is a Universally Unique Identifier (UUID) or Globally Unique Identifier (GUID).
The setIdentity() function should ideally be called when the user logs into your app and you have the user ID available. Events will not have the ID retroactively added to them. That means events only start having the developer identity field appended anytime an event is sent to Branch after setIdentity() is called. If you ever want to remove the identity, for example, in the case that the user logs out of their account, Branch provides a logout() method which will remove the identity from any events tracked after it is called.
Since setIdentity() is often used when the user logs in, clients sometimes ask about using this function with guest users. It is possible to do so — you would just need to have a guest ID that you associate with an account. Also, once the user logs in, the ID will be different. This may appear confusing when you see two different user IDs on the dashboard. The other option is to not set an identity for guest users, so you will have insight into the events but not which user performed which event.
Branch events are very useful if you work with a Self Attributing Network (SAN) and run ads campaigns with them. Ad networks rely on specific events for ads optimization. For example, Facebook relies on events like install, purchase, etc. to determine which ads are the most effective and to optimize based on those events.
Normally, you would need to have the Facebook SDK integrated in your app to be able to optimize campaigns. However, the Branch SDK allows you to map the events you track with Branch to the event names that Facebook expects.
Why would you want to do this through Branch? With Branch, not only can you optimize campaign performance but you also get a full picture of your app’s ROI from all of the various channels and platforms, all in one place. The Branch dashboard becomes your source of truth for tracking the performance of your ad campaigns. With Branch you can:
Once you begin tracking this data through the Branch SDK, you have the ability to use the Cohort Analytics feature to understand the ROI of your campaigns and also guide future decisions you make pertaining to investment decisions and targeting consumers. You can analyze this data to see how users in certain groups performed over time. This gives you insight into important metrics like retention and lifetime value (LTV).
While growing your business and user base through installs is incredibly important, getting conversions and being able to track down funnel conversions to understand which channels actually perform and drive ROI is invaluable. Measuring the important KPI events for your business, downstream events users perform after installing your app, and important conversion events used for ads optimization with Branch’s SAN integrations can help a business understand what works and what doesn’t. If you have any questions when it comes to tracking events with the Branch SDK, please contact email@example.com.
To help you fuel cross-channel and cross-platform mobile growth, our team works hard to deliver the most current, relevant resources.