How to Use Branch’s New Custom Events Data to Measure Campaign Success

In-app analytics are an essential part of growing your app. If you want to know how to improve the user experience for your customers or to optimize in-app purchases, you have to know what users are doing inside your app. It’s all well and good to get people to install, but if you can’t get them to stay and engage with your content over the long term, those users won’t be contributing to your business.

Up until this point, Branch’s dashboard has focused on counting link clicks, installs, and re-opens – in other words, metrics that stop once the app session starts. We conducted a survey asking our partners what post-install metrics they care about. A whopping 70% said in-app events are a priority for them. As developers, we recognize that in-app engagement and user value metrics are just as important as click, install, and re-open metrics in order to properly evaluate Branch-powered growth efforts.

So now, we’re adding a new type of metric to our reporting that’ll make it easy to understand which Branch initiatives are leading to in-app engagement after the install or re-open. You can now view custom post-install events in the dashboard. These events are partner-defined: if you have an e-commerce app, you can track ‘add to cart’ or ‘purchase’ events and review them in the dashboard. If you have a social networking app, you can track everything from ‘signup’ to ‘follow’ to ‘share’ and beyond. Branch now makes it easy to track the events that are most important to your business. Additionally, you can export this data to any of our measurement partners so you can visualize this data all in one place.

The best part of this new metric is that you can measure the events that are most important to you on the link- and link label-level – insights you can only get with Branch links in the Branch dashboard. If you’re running a marketing campaign or sharing links via a channel like Facebook, you can see how many signups, shares, purchases, or whatever else you choose can be attributed back to those campaigns and channels. You can gain insight into the likely behaviors of users coming from different campaigns and channels,  as well as optimize your growth and engagement strategies accordingly.

How do I set up custom events?

Branch automatically tracks click, install, and re-open events for you. To implement custom events, you must have already integrated the SDK and have access to your app code. Once you have integrated and have access to the app code, tracking a custom event in your app requires a simple call to the SDK:

Objective-C (iOS)

[[Branch getInstance] userCompletedAction:@"custom_action"];

Swift (iOS)


Java (Android)


Cordova / Ionic / Titanium / Unity



Branch branch = Branch.GetInstance ();
await branch.UserCompletedActionAsync("custom_action");

Currently not yet supported for Air ANE.


Additionally, you can include custom metadata to the events you set up. For example, on a purchase event, you could include the SKU of the item that was purchased. This would allow you to analyze various user acquisition channels to determine the product purchases they result in. That setup would look like this:

Objective-C (iOS)

[[Branch getInstance] userCompletedAction:@"purchase" withState:@{@"sku":@"12346789"}];

Swift (iOS)

Branch.getInstance().userCompletedAction("purchase", withState: ["sku" : "12346789"])

Java (Android)

JSONObject metaData = new JSONObject();
metaData.put("sku", "12346789");
Branch.getInstance().userCompletedAction("purchase_event", metaData);

Cordova / Ionic / Titanium 

branch.userCompletedAction("purchase_event", {
: "12346789"


Branch branch = Branch.GetInstance ();
string, object> data = new Dictionary<string, object>();
data.Add("sku", "123456789");
await branch.UserCompletedActionAsync("purchase_event", data);


Dictionary<string, object> stateItems = new Dictionary<string, object>
   { "sku", "12346789" }
Branch.userCompletedAction("purchase_event", stateItems);

Currently not yet supported for Air ANE.

Simply insert this code where your app carries out the events you want to track. It’s that easy! For step-by-step instructions by platform, see our full documentation on custom events tracking and measurement.

How can I use the dashboard?

In the Branch dashboard, custom events are available in Marketing and Source Analytics. We provide two metrics: total events and events %, where the percentage is total events over total app sessions (installs + re-opens).

Custom events reporting

You can think of the first metric as the total volume of an event (like purchases) per link, campaign, or channel. The second looks at what proportion of app sessions result in purchases, also by link, campaign, channel, etc. Both are measures of the impact of certain campaigns or channels on in-app events. They can help you figure out what channels and campaigns are most successful for driving the events you care about, and where you’re most likely to find and engage high-value users that will complete events in your app.

You can change the custom event displayed in the columns by using a drop-down menu. This drop-down automatically populates with the custom events you’re tracking. You can apply filters for campaign, channel, tags, and more to further analyze the relationship between links and in-app events.

Branch Custom Events Filtering

In the near future, we will provide a feature that allows you to export multiple custom events to a csv so that you can analyze events side-by-side. You’ll also be able to reorder those event columns so they match the sequence of events in your app (or whatever order makes the most sense to you).

For more information on how we attribute custom events and what we show in the dashboard here.

Branch Source Analytics

If I’m using Branch, how will this improve my data?

If you’re a savvy Branch user, you’re used to optimizing campaigns based on the installs and re-opens you see in the dashboard. Now you can factor in-app events into your analysis of the best campaigns and channels to increase discovery of and engagement with your app. If you want to increase signups, you can look at channels that have led to increased signups in the past and focus your efforts on those channels. If you want to increase shares from your existing user base, you can create an email or push notification campaign that targets those users, with Branch links that go directly to a piece of content they can share. Then you can watch the ‘share’ events for that campaign and notification in the dashboard, see which performs better, and adjust based on that information.

Think about your most important in-app user actions – these are the data points you want to send to Branch as custom events. To start, here are some example custom events to get you thinking:

  • Create account
  • Add to cart
  • Purchase
  • Create content inside the app (e.g. posting a photo, video, or comment)
  • Share a piece of content outside of the app
  • Favorite
  • Follow
  • Watch
  • Message

We can’t wait to see how our partners use app events data to engage their users and grow their apps. Are you using Branch for custom events in a way not mentioned here? Let us know in the comments below.