Ios Branch.io通过安装传递自定义数据
我正在使用Branch.io将安装链接回广告活动。我们的安装程序仅将分支用于安装属性,然后通过webhook将安装元数据发送回我们的应用程序。我想通过安装事件传递一些自定义参数,以便我们可以将安装绑定到特定用户(在我们自己的系统中,不使用分支机构的分析)。我最初的想法是调用Branch SDK的Ios Branch.io通过安装传递自定义数据,ios,objective-c,branch.io,Ios,Objective C,Branch.io,我正在使用Branch.io将安装链接回广告活动。我们的安装程序仅将分支用于安装属性,然后通过webhook将安装元数据发送回我们的应用程序。我想通过安装事件传递一些自定义参数,以便我们可以将安装绑定到特定用户(在我们自己的系统中,不使用分支机构的分析)。我最初的想法是调用Branch SDK的setRequestMetaData()函数,如下所示: [[Branch getInstance] setRequestMetadataKey: @"userId" value: 123]; 问题是我
setRequestMetaData()
函数,如下所示:
[[Branch getInstance] setRequestMetadataKey: @"userId" value: 123];
问题是我没有看到通过webhook发送的安装负载中的数据。以下是webhook负载的外观:
{
"name": "INSTALL",
"user_data": {
"os": "IOS",
"os_version": "11.4",
"environment": "FULL_APP",
"platform": "IOS_APP",
"idfv": "masked",
"limit_ad_tracking": false,
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML,
like Gecko) Mobile/15F79",
"ip": "xxx.xx.xx.xx",
"country": "US",
"language": "EN",
"sdk_version": "0.25.0",
"app_version": "2.6.3",
"brand": "Apple",
"model": "iPhone7,2",
"geo_dma_code": 501,
"geo_country_code": "US"
},
"last_attributed_touch_data": {
"~feature": "marketing",
"~id": 464580903277040904,
"~campaign": "test-campaign",
"~channel": "Facebook",
"+url": "https: //subdomain.test-app.link/branch-test",
"$desktop_url": "http: //www.sample.com",
"$marketing_title": "Test Link",
"~creation_source": 1,
"~marketing": true,
"+click_timestamp": 1528297685,
"$one_time_use": false,
"$android_url": "http: //www.sample.com",
"$ios_passive_deepview": "branch_passive_default",
"testTag": "testValue",
"~tags": [
"123"
],
"+via_features": [
"QUICK_LINKS"
]
},
"timestamp": 1528297898204
}
是否有其他方法通过分支安装事件传递自定义数据?看起来它们支持该用例 这来自他们的文档(请参阅):
请注意,这不利于GDPR在未经用户事先同意的情况下执行此操作,因此,如果您在欧洲有用户,他们需要有一个选择加入UI和一个解释。任何请求元数据都应该位于webhook主体中的顶级JSON字典中,
自定义_数据
旁边的最后一个_属性_touch_数据
。您是否在SDK初始化之前调用setRequestMetadata
?当调用setDebug()
模式时,确保在每个SDK请求上发送键/值。下面是示例正文:我考虑过这种方法,但我真的只想跟踪安装setIdentity
确实应该与登录事件相关。由于用户在安装后第一次启动应用程序时没有登录,所以我的问题的真正意思是,我需要发送某种匿名ID,而不是与我们的应用程序相对应的真实用户ID。不必这样。如果您有一些“userId”来标识您的用户,您可以使用setIdentity
。如果用户稍后决定登录(比方说获得更多功能),那么他要么使用相同的用户ID(因此先前的setIdentity
应该可以),要么输入不同的用户名,这样您就可以使用新的用户ID再次调用setIdentity
(就像用户注销并使用不同的名称登录一样)。无论如何,我认为“setIdentity”不会发送事件,因此对于跟踪登录,您必须创建一个自定义事件(如“跟踪事件”中所示)。感谢您的帮助!我们不是在跟踪登录,我们只是在跟踪安装(即首次发布)。我们的新解决方法是,如果Branch param+是第一个会话,则发送自定义事件。这样我们就可以将营销属性数据输入到我们自己的系统中,而不必过于依赖分支机构。是的,在初始化分支机构之前,我正在调用setRequestMetadata
。我还看到了文档中的示例帖子正文。不幸的是,正如您在我的问题中包含的json负载中所看到的,它仍然不存在。哦,好吧,我们已经找到了使用自定义事件的另一种方法,无论如何,这可能是一个更灵活的解决方案。
// login
[[Branch getInstance] setIdentity:@"your_user_id"];
// logout
[[Branch getInstance] logout];