了解如何成为Singular SKAdNetwork 解决方案的集成合作伙伴。另外请参阅:与Singular归因集成,这是一个单独且必须的集成。
如果您是Singular的客户,请参阅Singular的SKAdNetwork解决方案。
常见问题
Apple引入的App Tracking Transparency限制了传统用户级移动测量的使用。从iOS14.5开始,iOS广告标识符 (IDFA)仅适用于同意分享其数据(选择加入)的最终用户。
Apple提供的替代方案是SKAdNetwork, 它是一个以隐私为中心的广告活动汇总框架,最初在iOS11.3中引入,但已针对iOS14进行了重大更新。注册SKAdNetwok的媒体渠道合作伙伴在应用安装时可以自动接收”SKAdNetwork回传”,无论最终用户是否选择共享他们的数据。
为什么要集成Singular的SKAdNetwork解决方案?
SKAdNetwork将关键绩效数据分散在广告主、发行商、媒体渠道和移动测量供应商之间,使广告商更难访问他们作出营销决策所需的绩效数据。
Singular的SKAdNetwork解决方案(即SKAN)通过最终用户的设备、媒体渠道和Singular(作为MMP)之间的信息交换来收集广告主需要的数据。
-
SKAdNetwork回传是从设备发送到媒体渠道和MMP的。
-
转化值及其含义是从MMP发送到媒体渠道的。
- 广告系列ID及其含义是从媒体渠道发送到MMP的。
Singular的安全SKAN数据流程图
集成Singular的SKAdNetwork解决方案涉及什么内容?
1. 注册SKAdNetwork
作为使用SKAdNetwork的先决条件,媒体渠道合作伙伴必须在Apple注册,然后Apple会给合作伙伴分配一个“ad network ID”
2. 处理SKAdNetwork回传
选项A(推荐): 安全SKAN
方法 | 307 Redirect |
重定向URL | https://skadnetwork.singular.net/api/v1/skan_postback |
使用307重定向允许Singular接收从设备发送的相同SKAdNetwork回传。
当您接收到一个使用Singular作为MMP的广告主的SKAdNetwork回传,使用307重定向允许Singular接收从设备发送的相同SKAdNetwork回传。将回传重定向到Singular的专用skan_postback端点。
重定向还应该在URL(请参阅媒体渠道字段)中包含一些额外的参数。这里是一个完整的URL示例,您可以把回传重定向到:
"https://skadnetwork.singular.net/api/v1/skan_postback?adn_campaign_id=102&adn_campaign_name=My%20Campaign"
了解更多细节请参阅参数参考。
选项B:向Singular发送SKAdNetwork回传的内容
方法 | POST请求 |
端点URL |
https://skadnetwork.singular.net/api/v1/skan_postback |
有效载荷 | 从SKAdNetwork收到的完整有效负载回传。 |
作为媒体渠道合作伙伴,您可以使用skan_postback端点给Singular发送一个回传,其中包含来自SKAdNetwork回传的未经修改的完整有效载荷。回传还应该包含一些额外参数。
发送到Singular的回传可能如下所示(请确保将“Content-Type”标签设置为“application/json”格式):
{
"version": "3.0",
"ad-network-id": "com.example",
"campaign-id": 42,
"transaction-id": "6aafb7a5-0170-41b5-bbe4-fe71dedf1e28",
"app-id": 525463029,
"attribution-signature": "MDYCGQCsQ4y8d4BlYU9b8Qb9BPWPi+ixk\/OiRysCGQDZZ8fpJnuqs9my8iSQVbJO\/oU1AXUROYU=",
"redownload": true,
"source-app-id": 1234567891,
"fidelity-type": 1,
"conversion-value": 20,
"did-win": true,
"skan_ip": "136.25.2.194",
"skan_timestamp": 1601555400,
"adn_campaign_id": "102",
"adn_campaign_name": "My Campaign"
}
更多信息请参阅参数推荐。
3. 解码SKAdNetwork转化值
使用上述方法向Singular发送一个SKAdNetwork回传后,您可能想解码转化值的含义。Singular通过两种方式支持解码SKAdNetwork转化值。
选项A: 转化事件回传(即将推出)
Singular可以向您发送回传通知,其中包含关于SKAdNetwork转化事件的信息。
目标是让您可以保存和处理转化信息,就像您处理Singular发送的关于用户级别归因和事件的回传一样。
Singular将与您的团队合作,了解您希望回传发送到哪个端点,并配置一个方便您处理的回传模板。
注意:SKAdNetwork转化回传与您可能通过与Singular归因集成所接收的任何归因回传或时间回传是分开的(需要单独配置)。
例如,Singular发给合作伙伴的回传可能如下所示(使用Singular回传宏语法):
{
"transaction-id": {SKAN_POSTBACK.TRANSACTION_ID},
"conversion_event":{CONVERSION.PARTNER_CONVERSION_NAME},
"is_attributed":{SKADNETWORK_IS_VALID},
"original-conversion-value":{SKAN_POSTBACK.CONVERSION_VALUE},
"mmp-conversion-name":{CONVERSION.ADVERTISER_CONVERSION_NAME},
"mmp-conversion-value":{CONVERSION.ADVERTISER_CONVERSION_VALUE},
"mmp-conversion-currency":{CONVERSION.ADVERTISER_CONVERSION_CURRENCY},
"advertiser-app":{SKAN_POSTBACK.APP_ID},
"attribution-type":"skadnetwork",
"mmp":"singular"
}
有关SKAdNetwork转化事件回传可用的所有宏,请参阅参考部分。
选项B:使用SKAN转化信息API
Singular还托管pull API,允许集成合作伙伴检索转化模型映射。
如果满足以下要求,这个API仅返还给定应用的配置转化模型:
有关请求/响应规格要求和示例的更多信息,请参阅我们的API支持技术文档。
4. 处理广告系列ID
如果您使用安全SKAN方法来报告SKAdNetwork回传,可以通过与Singular的分析集成将信息传递给Singular。
我希望与Singular的SKAdNetwork解决方案集成。我应该如何开始呢?
先决条件:
- 确保您的媒体渠道已经与Singular归因集成。
- 注册SKAdNetwork并获得由Apple分配的“ad network ID”。
- 收集要求: 请查看什么是Singular SKAdNetwork集成?来了解可用的集成细节和选项。
- 填写Singular的SKAdNetwork解决方案集成表格。
-
收到我们集成团队的回复:Singular集成团队将会审核您的表格,如果我们有任何问题或者是否收到了全部所需的信息,都会告知您。
-
测试集成:在Singular完成创建集成后,我们将会联系您,以便让您知道您这一端如何测试集成。
怎样可以测试我与Singular的SKAdNetwork解决方案的集成?
一旦您完成与Singular的SKAdNetwork集成,并且收到SKAdNetwork ID配置完成的确认信息后,您可以转发一个已上线应用程序或示例应用程序的SKAN回传来测试集成。
当您已经开始给Singular客户的线上应用提供推广服务,并获得了客户共享给您的账号访问权限,您只需为他们的应用程序发送测试回传,并检查Singular导出日志或SKAN报告以确认回传已收到。
如果您还没有已上线的应用程序并且想测试示例应用程序,您可以为位于此处的Singular设备辅助应用发送模拟回传。
https://apps.apple.com/us/app/singular-device-assist/id1441750662
我们支持技术团队验证回传是否被成功处理。要收到该确认信息,请创建带有回传细节和发送时间的支持工单。
注意:如果您已经转发了模拟的SKAN回传(不是从Apple收到的真实回传),请确保在报告中将“SKAN验证状态”切换为“同时显示”。
如果延迟收到SKAdNetwork回传怎么办?Singular会把数据与正确的日期相匹配吗?
Singular收到SKAdNetwork回传后会自动进行处理。如果回传延迟,我们建议使用预估安装日期而不是回传日期来运行报告。
参考:SKAdNetwork回传参数
本节记录了Singular支持的入站SKAdNetwork回传到Singular的API端点和参数(设备→Singular,媒体渠道→Singular)。
端点: https://skadnetwork.singular.net/api/v1/skan_postback
方法: POST
参数:
*表示必选参数
数据源 | 参数 | 参数描述 | 类型 |
SKAdNetwork | version * |
来自SKAdNetwork回传的“版本”。 当采用SKAdNetwork版本2.0时,此参数为必选参数。 |
String |
SKAdNetwork | ad-network-id * | 来自SKAdNetwork回传的“媒体渠道ID” | String |
SKAdNetwork | transaction-id * | 来自SKAdNetwork回传的“交互id” | String |
SKAdNetwork | campaign-id * | 来自SKAdNetwork回传的“广告系列id” | Integer |
SKAdNetwork | app-id * | 来自SKAdNetwork回传的“应用程序id” | Integer |
SKAdNetwork | attribution-signature * | 来自SKAdNetwork回传的“归因签名” | String |
SKAdNetwork | redownload * | 来自SKAdNetwork回传的“重新下载”。当采用SKAdNetwork版本2.0时,此参数为必选参数。 | bool |
SKAdNetwork | source-app-id * | 来自SKAdNetwork回传的“数据源应用程序ID”。当采用SKAdNetwork版本2.0时,此参数为必选参数。 (当原始回传中不存在此字段时,请勿发送此字段) | Integer |
SKAdNetwork | fidelity-type * | 来自SKAdNetwork回传的“保真类型”。当采用SKAdNetwork版本2.0时,此参数为必选参数。 | Integer |
SKAdNetwork | conversion-value * |
来自SKAdNetwork回传的“转化值”。当采用SKAdNetwork版本2.0时,此参数为必选参数。(当原始回传中不存在此字段时,请勿发送此字段) |
Integer |
SKAdNetwork | did-win * | 来自SKAdNetwork回传的“did-win”。当采用SKAdNetwork版本3.0时,此参数为必选参数。 | bool |
媒体渠道 | skan_timestamp * | 收到SKAdNetwork回传时的Unix格式(秒)时间戳 | Integer |
媒体渠道 | skan_ip * | 来自SKAdNetwork回传发送者的IP地址 | String |
媒体渠道 | adn_campaign_id * | 广告系列的ID | String |
媒体渠道 | adn_campaign_name * | 广告系列的名称 | String |
媒体渠道 | adn_creative_id | 素材的ID | String |
媒体渠道 | adn_creative_name | 素材的名称 | String |
媒体渠道 | adn_sub_campaign_id | Sub-campaign的ID。 可能也代表"ad group"或 "ad set"。 | String |
媒体渠道 | adn_sub_campaign_ name | Sub-campaign的名称。可能也代表"ad group"或 "ad set"。 | String |
媒体渠道 | adn_sub_adnetwork_ name | 子渠道,可能也代表媒体渠道等级的一个额外层级 | String |
参考:转化事件回传
请求规范(Singular → 媒体渠道)
本节记录了Singular与合作伙伴之间的SKAdNetwork转化事件回传中的可用值。这些值被用来为媒体渠道提供转化值信息。
这些值在GET和POST有效载荷中都是可用的。
数据源 | 值 | 值的描述 | 类型 |
SKAdNetwork | {SKAN_POSTBACK.VERSION} | 来自SKAdNetwork回传的“版本”。适用于SKAdNetwork2.0版本。 | String |
SKAdNetwork | {SKAN_POSTBACK. AD_NETWORK_ID} | 来自SKAdNetwork回传的“媒体渠道ID”。 | String |
SKAdNetwork | {SKAN_POSTBACK. CAMPAIGN_ID} | 来自SKAdNetwork回传的“广告系列ID”。 | Integer |
SKAdNetwork | {SKAN_POSTBACK. TRANSACTION_ID} | 来自SKAdNetwork回传的“交互ID”。 | String |
SKAdNetwork | {SKAN_POSTBACK.APP_ID} | 来自SKAdNetwork回传的“应用程序ID”。 | Integer |
SKAdNetwork | {SKAN_POSTBACK. ATTRIBUTION_SIGNATURE} | 来自SKAdNetwork回传的“归因签名”。 | String |
SKAdNetwork | {SKAN_POSTBACK. REDOWNLOAD} | 来自SKAdNetwork回传的“重新下载”。适用于SKAdNetwork2.0版本。 | Integer |
SKAdNetwork | {SKAN_POSTBACK. SOURCE_APP_ID} | 来自SKAdNetwork回传的“源应用程序ID”。适用于SKAdNetwork2.0版本。 | Integer |
SKAdNetwork | {SKAN_POSTBACK. CONVERSION_VALUE} | 来自SKAdNetwork回传的“转化值”。适用于SKAdNetwork2.0版本。 | Integer |
SKAdNetwork | {ATTRIBUTION_IP} | 来自SKAdNetwork回传的IP,例如136.25.2.194 | String |
Singular | {SKADNETWORK_IS_VALID} |
Singular是否能够验证回传的安装签名(0或1) | Integer |
Singular | {ATTRIBUTION_COUNTRY} | SKAdNetwork回传的基于IP的双字母国家代码,例如US | String |
Singular | {ATTRIBUTION_STATE} | SKAdNetwork 回传的基于IP的地理位置所在州/省,例如California | String |
Singular | {ATTRIBUTION_CITY} | SKAdNetwork 回传的基于IP的地理位置所在城市,例如San Francisco | String |
Singular | {CONVERSION.PARTNER_ CONVERSION_NAME} | Singular能够自动映射支持的转化模型、转化名称以及合作伙伴支持的事件名称,例如合作伙伴购买事件 | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_NAME} | 广告主为转化名称命名,例如我的购买事件 | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_VALUE} | 广告主为转化定义的转化值,例如5 | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_CURRENCY} | 对于支持的收入转化模型,转化的货币模型代码(通常是账户货币),例如USD | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_MODEL_TYPE} | 广告主正在使用的转化模型类型的名称,例如收入 | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_MODEL_NAME} | 广告主为转化模型配置的名称,例如我的IAP收入模型 | String |