Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Branch.io通过安装传递自定义数据_Ios_Objective C_Branch.io - Fatal编程技术网

Ios Branch.io通过安装传递自定义数据

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]; 问题是我

我正在使用Branch.io将安装链接回广告活动。我们的安装程序仅将分支用于安装属性,然后通过webhook将安装元数据发送回我们的应用程序。我想通过安装事件传递一些自定义参数,以便我们可以将安装绑定到特定用户(在我们自己的系统中,不使用分支机构的分析)。我最初的想法是调用Branch SDK的
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];