Web高级功能

初始化Branch功能

branch.init('key_live_OUR_KEY_GOES_HERE', function(err, data) {
console.log(err, data);
var options = { no_journeys: true };
branch.init('key_live_YOUR_KEY_GOES_HERE', options, function(err, data) {
  console.log(err, data);
});
  • 返回data 对象内部的以下内容
Key
data_parsed object. 如果从链接中引用了用户,并且该链接具有关联的数据,则在此处传递数据。
has_app boolean. 用户是否已使用Branch '的角色数据安装了该应用程序。
identity 可选 - string .唯一字符串标识用户,如果来自组setIdentity
referring_link string. 单击了引用链接(如果可用)。
referring_identity string. 如果从链接中引用了该用户,并且该链接是由具有身份的用户创建的,则该身份在此处。

创建深度链接

var linkData = {
  campaign: 'content 123',
  channel: 'facebook',
  feature: 'dashboard',
  stage: 'new user',
  tags: [ 'tag1', 'tag2', 'tag3' ],
  alias: '',
  data: {
    'custom_bool': true,
    'custom_int': Date.now(),
    'custom_string': 'hello',
    '$og_title': 'Title',
    '$og_description': 'Description',
    '$og_image_url':'http://lorempixel.com/400/400'
  }
};

branch.link(linkData, function(err, link) {
  console.log(link);
});

分享深度链接

  • 生成 Branch 深度链接,并通过用户选择的渠道(Channel)进行标记

  • 使用深度链接属性

<!-- shareable elements -->
<button id="button">deep link</button>
<a id="anchor" href="#">deep link</a>
var linkData = {
  campaign: 'content 123',
  channel: 'facebook',
  feature: 'dashboard',
  stage: 'new user',
  tags: [ 'tag1', 'tag2', 'tag3' ],
  alias: '',
  data: {
    'custom_bool': true,
    'custom_int': Date.now(),
    'custom_string': 'hello',
    '$og_title': 'Title',
    '$og_description': 'Description',
    '$og_image_url':'http://lorempixel.com/400/400'
  }
};

branch.link(linkData, function(err, link) {
  // bind elements
  document.getElementById('button').onclick = function() {
    window.open(link || err);
  };
  document.getElementById('anchor').href = link || err;
});

读取深度链接

  • 从深度链接中提取 Branch 数据

  • 最佳做法是从listener 接收数据(以防止出现race condition)

  • 验证为测试读取深度链接接

  • 监听器

branch.init('key_live_YOUR_KEY_GOES_HERE', function(err, data) {
  console.log(err, data);
});
  • 最新数据
branch.data(function(err, data) {
  console.log(err, data);
});
  • 初次数据
branch.first(function(err, data) {
  console.log(err, data);
});

创建Journeys(网站向App引流解决方案)横幅

  • 将移动用户转化为应用程序用户

  • Branch Dashboard 上创建一个Journey

  • 通过在移动设备上测试您的网站进行验证

  • 将其他深度链接接数据附加到“Journey (路径图谱)”按钮

// optional additional deep link data
var linkData = {
  campaign: 'content 123',
  channel: 'facebook',
  feature: 'dashboard',
  stage: 'new user',
  tags: [ 'tag1', 'tag2', 'tag3' ],
  alias: '',
  data: {
    'custom_bool': true,
    'custom_int': Date.now(),
    'custom_string': 'hello',
    '$og_title': 'Title',
    '$og_description': 'Description',
    '$og_image_url':'http://lorempixel.com/400/400'
  }
};

branch.setBranchViewData(linkData);
// close
branch.closeJourney(function(err, data) {
  console.log(err, data);
});

// reopen
branch.track("pageview");

创建短信

  • 将桌面用户转化为应用程序用户

  • 发送带有指向电话号码的深度链接的短信

  • 功能具有一定的 SMS限制

var phoneNumber = '9999999999' // +919812345678, +442071234567

var linkData = {
  campaign: 'content 123',
  channel: 'facebook',
  feature: 'dashboard',
  stage: 'new user',
  tags: [ 'tag1', 'tag2', 'tag3' ],
  alias: '',
  data: {
    'custom_bool': true,
    'custom_int': Date.now(),
    'custom_string': 'hello',
    '$og_title': 'Title',
    '$og_description': 'Description',
    '$og_image_url':'http://lorempixel.com/400/400'
  }
};

var linkOptions = {
  make_new_link: false // don't create a new deep link if one already exists (e.g. _branch_match_id is in the address bar)
};

branch.sendSMS(phoneNumber, linkData, linkOptions, function(err, data) {
  console.log(err);
});

托管深度链接接数据

  • 使营销人员更容易创建深度链接接

  • Used for Journeys, Universal Emails, Quick links, and the Chrome Extension

  • Branch机构将在链接创建时抓取Web URL以获取深度链接接数据

  • 如果您在网站源代码中托管深度链接接数据,则Branch可以自动将简单的Web URL转换为对应的Branch链接,该链接可以深度链接接到您的移动应用程序中的相关内容。

  • Branch还将解析您的Content Analytics数据,并为您提供有关哪些内容在推动点击,安装,打开和应用内互动的更有价值的信息。

  • 成功将深链接数据放到您的网站上的第一步是了解深链接如何与您的Web URL相对应。问问自己以下问题,并相应地对内容进行分组。

      - Do you have any content on web that doesn’t exist in the app? Examples include: time-sensitive promotions, splash pages, micro-sites.
    
      - For content that has corresponding app content, what type of pages do you have? Examples include: search result pages, category homepages, product pages.
    
      - If you’ve already set up deep linking (if you haven’t set up deep linking skip this step): what does your deep linking schema look like? Do you use different keys for different content? Do you have required key/value pairs that aren’t content specific? Examples include: `productPage` or `categoryPage` keys, or `product_view=true`.
    
  • 通过创建快速链接验证,并在您的网页中填写web URL

范例网址 网址数据 要添加到您的网站的元标记
https://shop.com/shoes/brown-loafers productId = 1234,productView = true <meta name="branch:deeplink:productId" content="1234" /><meta name="branch:deeplink:productView" content="true" />
https://shop.com/shoes categoryId = 5678 <meta name="branch:deeplink:categoryId" content="5678" />
https://shop.com/a-great-movie 没有相应的应用内容( 打开网站 <meta name="branch:deeplink:$web_only" content="true" />

故障排查

  • 如果您的网站上有 Facebook App Links元标记 ,并且正在使用您的应用程序,则可以跳过这些说明。 Branch将自动获取App Links标签并将其添加到您的深度链接接数据中。
    • 请勿使用Google跟踪代码管理器(GTM)插入您的内容元标记。 GTM需要在页面上加载JavaScript,并且Branch链接数据抓取工具不支持JavaScript执行。
    • If you need to whitelist the postback server IP addresses for security purposes, they are listed here.

跟踪用户

  • 设置事件、深度链接和推荐的用户标识(电子邮件、ID 和 UUID 等)

  • 使用 Branch 控制面板进行验证

branch.setIdentity('123456');
branch.setIdentity('123456', function (err, data) {
  console.log(err, data);
});
  • 删除用户身份
branch.logout();
branch.logout(function(err, data) {
console.log(err, data);
});

跟踪事件

  • 注册自定义事件

  • 这些事件命名opencloseinstall ,和referred session 都是Branch预留的

  • 最佳方式之前跟踪用户跟踪事件以将自定义事件与用户相关联

  • 使用 Branch 控制面板进行验证

自定义事件名称

名称custom event 由Branch保留。请确保您为自定义事件指定一个实际名称。

强烈建议使用不超过40个字符,仅包含字母,数字,连字符,空格和下划线且不要以连字符开头的自定义事件名称。

branch.logEvent(
     "custom_event",
     { metadata: '123' },
     function(err) { console.log(err); }
);
var content_items = [
    {
        "$og_title": "Content Title",
        "$og_description": "Content Description",
        "$og_image_url": "http://example.com/img1.jpg",
        "$canonical_identifier": "content/1234",
        "$custom_fields": {"foo1":"bar1","foo2":"bar2"}
     }
];

branch.logEvent(
     "custom_event",
     { metadata: '123' },
     content_items,
     function(err) { console.log(err); }
);

追踪商业事件

var event_and_custom_data = {
  "transaction_id": "tras_Id_1232343434",
  "currency": "USD",
  "revenue": 180.2,
  "shipping": 10.5,
  "tax": 13.5,
  "coupon": "promo-1234",
  "affiliation": "high_fi",
  "description": "Preferred purchase",
  "purchase_loc": "Palo Alto",
  "store_pickup": "unavailable"
};

var content_items = [
  {
    "$content_schema": "COMMERCE_PRODUCT",
    "$og_title": "Nike Shoe",
    "$og_description": "Start loving your steps",
    "$og_image_url": "http://example.com/img1.jpg",
    "$canonical_identifier": "nike/1234",
    "$publicly_indexable": false,
    "$price": 101.2,
    "$locally_indexable": true,
    "$quantity": 1,
    "$sku": "1101123445",
    "$product_name": "Runner",
    "$product_brand": "Nike",
    "$product_category": "Sporting Goods",
    "$product_variant": "XL",
    "$rating_average": 4.2,
    "$rating_count": 5,
    "$rating_max": 2.2,
    "$creation_timestamp": 1499892854966,
    "$exp_date": 1499892854966,
    "$keywords": [ "sneakers", "shoes" ],
    "$address_street": "230 South LaSalle Street",
    "$address_city": "Chicago",
    "$address_region": "IL",
    "$address_country": "US",
    "$address_postal_code": "60604",
    "$latitude": 12.07,
    "$longitude": -97.5,
    "$image_captions": [ "my_img_caption1", "my_img_caption_2" ],
    "$condition": "NEW",
    "$custom_fields": {"foo1":"bar1","foo2":"bar2"}
  },
  {
    "$og_title": "Nike Woolen Sox",
    "$canonical_identifier": "nike/5324",
    "$og_description": "Fine combed woolen sox for those who love your foot",
    "$publicly_indexable": false,
    "$price": 80.2,
    "$locally_indexable": true,
    "$quantity": 5,
    "$sku": "110112467",
    "$product_name": "Woolen Sox",
    "$product_brand": "Nike",
    "$product_category": "Apparel & Accessories",
    "$product_variant": "Xl",
    "$rating_average": 3.3,
    "$rating_count": 5,
    "$rating_max": 2.8,
    "$creation_timestamp": 1499892854966
  }];

branch.logEvent(
  "PURCHASE",
  event_and_custom_data,
  content_items,
  function(err) { console.log(err); }
);

处理监听事件

  • 订阅和取消订阅Branch事件
// all Branch events
branch.addListener(listener);
branch.addListener('willShowJourney', listener);
branch.removeListener(listener);
Key 用途
willShowJourney Journey(路径图谱)即将显示。
didShowJourney Journey(路径图谱)的入口动画已经完成,正在向用户显示。
willNotShowJourney Journey(路径图谱)将不会显示,也不会产生任何其他事件。
didClickJourneyCTA 用户点击了 Journey(路径图谱)的 CTA 按钮。
didClickJourneyClose 用户点击了 Journey(路径图谱)的关闭按钮。
willCloseJourney Journeys(路径图谱)关闭动画已开始。
didCloseJourney Journey(路径图谱)的关闭动画已经完成,用户将无法再看到。
didCallJourneyClose 当开发人员调用branch.closeJourney()以关闭Journey时发出。

处理Firebase应用程序索引

  • 在您的网站上插入Firebase App Indexing标签,这将帮助Google将您的应用中的内容和表面内容索引到Google搜索

    • 例如:
<link rel="alternate" href="android-app://{androidPackageName}/{androidURL}?{branch_tracking_params_and_additional_deep_link_data}"/>
<link rel="alternate" href="ios-app://{iosAppId}/{iosURL}?{branch_tracking_params_and_additional_deep_link_data}"/>
  • 如果未指定上述可选参数,Branch将尝试使用页面'的App Links标签构建Firebase App Indexing标签。或者,如果指定了可选参数,但您的网页上已经存在Firebase App Indexing标签,则将Branch跟踪参数附加到这些标签的末尾,并忽略传递给Branch.autoAppIndex()

  • 与Google '尝试通过这种方法索引您的App '的内容相关的分析可在分支仪表板中找到,其中通道为Firebase App Indexing ,功能为Auto App Indexing

branch.autoAppIndex({
  iosAppId:'123456789',
  iosURL:'example/home/cupertino/12345',
  androidPackageName:'com.somecompany.app',
  androidURL:'example/home/cupertino/12345',
  data: {
    "walkScore": 65,
    "transitScore": 50
  }
}, function(err, data) {
  console.log(err, data);
});
Key 用途
"androidPackageName" Android App '的包名称
"androidURL" 您的Android应用的自定义方案,例如: example/home/cupertino/12345 其中example 是应用'的URI方案)和home/cupertino/12345 路由到应用中唯一内容的路线
"iosAppId" iOS应用程序的iTunes App Store ID
"iosURL" 针对您的iOS应用的自定义方案,例如: example/home/cupertino/12345
"data" 您想要传递给应用程序的任何其他深度链接接数据

启用/禁用用户跟踪

  • 为了帮助我们的客户遵守GDPR和其他限制某些用户收集数据的法律,我们将Web SDK更新为“不跟踪”模式。这样,如果用户指示他们希望保留在您网站上的私密性,或者如果您确定不应该跟踪特定用户,则可以继续使用Branch Web SDK(例如,用于创建Branch链接),同时没有跟踪该用户。此状态是持久性的,这意味着它已在网站的浏览器会话中为用户保存。也可以在所有用户的特定链接或Branch链接中启用此设置。

  • 要在初始化期间启用“不跟踪模式”,请在初始化期间将tracking_disabled 标记(值为true )包括在选项中:

branch.init( 'BRANCH_KEY',
        {
            ‘tracking_disabled’ : true
        }
);
  • 要在初始化后启用“不跟踪模式”,请调用disableTracking(true) 。如果不带任何参数调用disableTracking() ,它将默认为disableTracking(true) 。使用disableTracking(false) 恢复跟踪。

更新7 天前

Web高级功能


建议的编辑仅限于API参考页

您只能建议对Markdown正文内容进行修改,而不能建议对API规范进行修改。