AdwordsAndroidAndroid Deep LinkingDeep LinkingTechnical

How to Build a Deep Linked Universal App Campaign

By June 6, 2016 7 Comments

What do Facebook, Google, and Twitter all have in common? In the never ending struggle to allocate ad budgets for mobile app growth, these three channels represent the majority of the debate.  

Fortunately, Google reduced the complexity of mobile install campaigns with Universal App Campaigns on Android. These campaigns combine Search, Display, and YouTube install campaigns into one universal campaign, found only on Android. With Universal App Campaigns, just three data points are required to get up and running. You’ll get access to Google’s high quality inventory across Search, ads on the Play Store, YouTube, and the Display network. All while Google optimizes your targeting for you in under 15 minutes.

Universal App Campaigns and Branch

So, the question then becomes: how does Branch allow you to integrate and run deep linked Universal App Campaigns when those campaigns won’t accept a tracking link? Not only that, how can Branch match a click to an install and deliver deep link data with no click on a Branch link? Imagine you’re a leading eCommerce retailer and want to run install ads promoting 20% off. With Branch and Universal App Campaigns, you can get the farthest reach, a better user experience for your users, higher engagement, and automated campaign optimization; follow along to see how Branch powers it all and integrates with Universal App Campaigns.

Deep Linking Without a Link Click

First, it’s important to understand how Branch can deep link a user without ever clicking a Branch link. You only have one shot to deep link a user–the first time they open the application. Luckily, Branch’s SDK initializes right at the moment a user opens your app. From there, our server processes this request and determines if it’s a new install. If you’ve entered your Google Conversion ID and Label, we’ll ask Google’s servers if an install came from your Universal App Campaign from the device that opened the app. If Google confirms this, they’ll give us the postback URL, which we then parse. Once we parse the postback URL, we’ll see that it contains a Branch link ID, which we then convert into deep link data defined by you. After this crazy flow, we package up the deep link data tied to that link ID, and return it back down to the app. At this point (under 500 milliseconds, usually), the deep link data is returned to the SDK, and you can deep link your users.

The key portion to all of this is the postback URL you enter into Google’s dashboard when running this campaign. We ask that you append your Branch link ID (the one that contains deep link data you want to deliver through install) to the end of the postback URL:

http://branch.io?adid={adid}&lat={lat}&click_url={click_url}&link_identifier=link-216324485161234567

In that flow above, Google “confirms” an install came from a Universal App Campaign by issuing a 302 redirect to that postback URL. Remember, since we sent a request to Google from our server, their response is a 302 redirect, which means they responded to our request by providing the postback URL.

At this point in time, we still have to return deep link data back to the SDK. The last piece is to read through that postback URL, and grab the value for the key “link_identifier”. As you can see, the value ties to a Branch link ID, which our server turns into deep link data (all Branch links have unique IDs). Once we’ve converted the ID to deep link data, we return it back to the user who just tapped ‘open’ after downloading from your Universal App Campaign.

And there you have it. You can track your users on UACs, deep link them, and optimize your installs just by setting a few things up and letting Branch and Google take care of the rest.

Branch is a mobile linking platform providing unified mobile experiences and measurement for more than 27,000 mobile apps, including Airbnb, Slack, Reddit, Tinder and Amazon. Branch’s free linking platform can help you grow your mobile app through features like deep linking, sharing, referrals, mobile banners and interstitials, custom app onboarding, and unified attribution across platforms and channels. Learn more about Branch.
  • Florian

    Is this still correct?

    “The key portion to all of this is the postback URL you enter into Google’s dashboard when running this campaign. We ask that you append your Branch link ID (the one that contains deep link data you want to deliver through install) to the end of the postback URL:”

    I can’t find anywhere to enter a post back URL for my Universal campaign…!

    • Sahil Verma

      Hey Florian! It definitely is. Go to your Adwords account, and navigate to tools > conversions. I’m assuming you have a conversion set up for Android (first open) already. Click that, and enter the value for your postback URL!

      Here’s a sample URL:

      https://my-app-analytics.com?advertising_id={adid}&lat={lat}&click_url={click_url}&click_timestamp={click_ts}&trv_campaign_id={campaign_id}&video_id={video_id}&link-identifier=link-123456789

      Note, you’ll need to replace the id in this URL with the link ID you want to track on.

      • Florian

        Thanks for your reply Sahil. Are you checking this on a current Universal campaign? I believe Google made some changes.
        In all my Universal campaigns, I can’t set a post back URL. In other conversion types I can. See the two screenshots attached.

        • Sahil Verma

          No problem Florian. Indeed, we ran a test Universal App Campaign a little while ago, and had the same results. In your screen shot, you just need to add the URL in the ‘Postback URL’ section.

          When you go through the UI for enabling a Universal App Campaign, it should automatically detect if you have conversion tracking enabled. I just did this (see second screenshot attached).

          If you need further help, do reach out to integrations@branch.io.

          • Florian

            Yes, that creates the conversion tag but it doesn’t allow you to set a post back URL.
            The first screenshot I posted was from a non-universal campaign, the second one from universal.
            Could you double-check in the conversion screen?

            If I’m missing something please let me know. Thanks!

          • Sahil Verma

            Hi Florian,

            I’m sorry, my conversion screen lets me edit the Postback URL section, for the given conversion tracker tied to my Universal App Campaign. I’m not sure what else you’d be missing. I’ve attempted to re-create in the Google UI by creating a new UAC, and then going back and editing my conversion.

          • Florian

            I see, you’re referring to a separate Android conversion tag, manually created.
            I thought you meant the tag that’s automatically created.
            I’ll create another one then.
            Thanks for bearing with me.