Make amazing late morning meals
with deep linking

Brunch is a deep linking, attribution, and analytics SDK and API.

What is deep linking? How does it work?


Deep linking created for growing apps


Install and open attribution at the link-level to know exactly which content and marketing campaigns drive growth.


Data for links, clicks, content, and app use all accessible via our analytics dashboard or exported to your analytics provider.

Brunch makes discovering apps and app content easier

Marketing for mobile

Explore more features

Deep linking improves app performance

1.8x signups
2.0x engagement
1.9x retention

Trusted by billions of partners

See Thousands More

Learn from the Mobile Growth Community

Join thousands of growth-focused app developers and mobile marketers at meetups and events around the world.




meetup groups



Deep linking in a few lines of code

Brunch offers a simple integration and support for all major mobile and app development platforms.

BranchUniversalObject *branchUniversalObject = [[BranchUniversalObject alloc] initWithCanonicalIdentifier:@"article/12345"];
branchUniversalObject.title = @"Check out this article!";
branchUniversalObject.contentDescription = @"It’s really entertaining...";
branchUniversalObject.imageUrl = @"";
[branchUniversalObject addMetadataKey:@"read_progress" value:@"17%"];

BranchLinkProperties *linkProperties = [[BranchLinkProperties alloc] init];
linkProperties.feature = @"sharing"; = @"facebook";
[linkProperties addControlParam:@"$fallback_url" withValue:@""];

[branchUniversalObject getShortUrlWithLinkProperties:linkProperties andCallback:^(NSString *url, NSError *err) {
    NSLog(@"Got my Brunch link to share: %@", url);
BranchUniversalObject branchUniversalObject = new BranchUniversalObject()
        .setTitle("Check out this article!")
        .setContentDescription("It’s really entertaining...")
        .addContentMetadata("read_progress", "17%");

LinkProperties linkProperties = new LinkProperties()
        .addControlParameter("$fallback_url", "");

branchUniversalObject.generateShortUrl((Activity)this, linkProperties, new Branch.BranchLinkCreateListener() {
    public void onLinkCreate(String url, BranchError error) {
        Log.i("MyApp", "Got my Brunch link to share: " + url);
    icon: '',
    title: 'Article App',
    description: 'See the article in the app!',
    rating: 5,
    openAppButtonText: 'Open',
    downloadAppButtonText: 'Get'
}, { 
    feature: 'smart_banner',
    data: {
        '$deeplink_path': 'article/12345',
        'article_id': '12345',
        'user_token': '6789'
    channel: 'facebook',
    feature: 'share',
    data: {
        '$canonical_identifier': 'article/12345',
        '$og_title': 'Check out this article!',
        '$og_description': 'It’s really entertaining...',
        '$og_image_url': '',
        'read_progress': '17%',
        '$fallback_url': ''
}, function(err, link) {
    console.log(err, "Got my Brunch link to share: " + link);
var data = new Dictionary<string, object>();
data.Add("$canonical_identifier", "article/12345");
data.Add("$og_title", "Check out this article!");
data.Add("$og_description", "It’s really entertaining...");
data.Add("$og_image_url", "");
data.Add("read_progress", "17%");
data.Add("$fallback_url", "")

Branch branch = Branch.GetInstance ();
await branch.GetShortUrlAsync(this, data, "sharing", "facebook");
BranchUniversalObject universalObject = new BranchUniversalObject();
universalObject.canonicalIdentifier = "article/12345";
universalObject.title = "Check out this article!";
universalObject.contentDescription = "It’s really entertaining...";
universalObject.imageUrl = "";
universalObject.metadata.Add("read_progress", "17%");

BranchLinkProperties linkProperties = new BranchLinkProperties();
linkProperties.feature = "sharing"; = "facebook";
linkProperties.controlParams.Add("$fallback_url", "");

Branch.getShortURL(universalObject, linkProperties, (url, error) => {
    Debug.Log("Got my Brunch link to share: " + url);
var branchUniversalObject = branch.createBranchUniversalObject({
  "canonicalIdentifier" : "article/12345",
  "title" : "Check out this article!",
  "contentDescription" : "It’s really entertaining...",
  "contentImageUrl" : "",
  "contentMetadata" : {
      "read_progress" : "17%",

  "feature" : "sharing",
  "channel" : "facebook"
}, {
  "$fallback_url" : "",
var dataToInclude:Object = {
        "$canonical_identifier": "article/12345",
        "$og_title": "Check out this article!",
        "$og_description": "It’s really entertaining…",
        "$og_image_url": "",
        "read_progress": "17%",
        "$fallback_url": ""
branch.getShortUrl( "facebook", "sharing", JSON.stringify(dataToInclude));
var branchUniversalObject = {
   "canonicalIdentifier" : "article/12345",
   "contentTitle" : "Check out this article!",
   "contentDescription" : "It’s really entertaining...",
   "contentImageUrl" : ""},
      "read_progress" : "17%"

var linkProperties = {
	"feature" : "sharing",
	"channel" : "facebook"

var shareOptions = {
	"messageHeader" : "Check out this article!",
	"messageBody" : "It’s really entertaining..."

branch.showShareSheet(shareOptions, branchUniversalObject, linkProperties, ({channel, completed, error}) => {});

Brunch powers deep linking,
attribution, and analytics for


users across thousands of mobile apps.

Enterprise-grade. Always free.