概要:本文重点介绍了AppsFlyer归因链接的结构和参数。
概念
广告主可利用归因链接收集用户的广告互动数据。归因链接是广告背后的链接,当用户与广告互动时,该链接就会向AppsFlyer上报该行为。用户点击或浏览广告即形成广告互动,这时AppsFlyer就会收到一条归因链接的副本。
归因链接可以是OneLink链接,也可以是单平台链接。
OneLink(多平台链接) | 单平台链接 | |
---|---|---|
说明及使用场景 |
使用场景:
|
使用场景:
|
前期准备 |
None | |
必须配置的信息 |
||
基础链接 |
{subdomain}.onelink.me |
app.appsflyer.com |
独立标识符 |
模板ID |
app_id |
链接结构 | https://{subdomain}.onelink.me/ |
|
示例 | https://yourbrand.onelink.me/aAB1?pid=greatnetwork_int |
https://app.appsflyer.com/com.greatapp?pid=greatnetwork_int& |
归因链接参数
- 归因链接中的可用参数如下表所列。
- 字段类型一列说明了参数值的字数限制。详情请见参数值长度限制。
归因链接参数——拉新及再营销
下表可下载为.csv
文件。
参数 | 原始数据中的显示名称 | 释义 |
字段类型和长度: |
---|---|---|---|
pid | Media Source | AppsFlyer对接渠道的唯一标识符。切勿更改。详情请见此处。 |
字符串限长150 |
c | Campaign | 由广告主或发行商提供。详见广告系列名称限制。 |
字符串限长100 |
af_prt |
Partner |
|
字符串限长50 |
af_mp |
不适用 |
|
|
clickid |
不适用 |
广告平台唯一点击标识符 |
|
af_siteid |
Site ID |
|
字符串限长24 |
af_sub_siteid |
Sub Site ID |
|
字符串限长50 |
af_c_id |
Campaign ID |
由广告主/发行商提供 |
字符串限长24 |
af_adset |
Adset |
|
字符串限长100 |
af_adset_id |
Adset ID |
由广告主/发行商提供 |
字符串限长24 |
af_ad |
Ad |
广告名称(了解详情)——由广告主/发行商提供 |
String 100 |
af_ad_id |
Ad ID | 由广告主/发行商提供 |
字符串限长24 |
af_ad_type |
Ad type |
使用以下命名惯例:
|
字符串限长24 |
af_click_lookback |
Attribution lookback window |
注意 :仅对点击链接生效,对展示链接无效。 |
3 字符上限 |
af_viewthrough_ |
不适用 |
注意 :仅对展示链接生效,对点击链接无效。 |
3 字符上限 |
af_channel |
Channel |
分发广告的媒体渠道流量入口,比如UAC_Search、UAC_Display、Instagram、Meta Audience Network等。 |
动态枚举。 |
af_keywords |
Keywords |
文本定向型广告的关键词列表 |
字符串限长100 |
af_cost_model |
Cost model |
|
字符串限长20 |
af_cost_currency |
Cost currency |
|
3字符枚举 |
af_cost_value |
Cost value |
|
字符串限长20 |
af_sub[n] (n = 1-5)例:af_sub1 |
Sub param [n] |
由广告主自行配置的可选参数。详情请见特点与局限性部分,其中说明了这些参数的用法。 |
字符串限长100 |
af_r | 不适用 |
通过单平台链接同时让安卓和iOS两个平台的用户跳转到指定的URL。
|
|
af_web_dp | 不适用 |
让PC端(例如Windows或Mac)用户跳转到OneLink模板中指定网页以外的URL。此参数用于将PC端用户的归因数据保存到其他平台(如Google Analytics或Omniture)。 请注意:如果您目前正在使用跳转白名单,请确保该链接的域名已加白。 |
|
af_dp | 不适用 | URI scheme作为备用方案,可在Universal Link或Android App Link失效时或用户使用的安卓版本低于6.0时打开应用。建议仅使用该方法进入基本路径,即默认页面。 | |
af_force_deeplink | 不适用 | 用于强制执行af_dp中的深度链接 | |
af_ref | 不适用 |
使用S2S点击的广告平台可以通过以下参数发送referrer值:&af_ref=ReferrerValue
每个点击的af_ref值必须是唯一的,结构如下:
NetworkName_UniqueClickValueForEachClick
示例: af_ref=networkname_123456789ABCDEF
广告平台名称可由任意的有效字符串组成,可以是networkname_int,或直接使用平台名称。
该参数仅适用于安卓设备的归因,不用于iOS或Windows设备。
|
|
is_incentivized | 不适用 |
布尔值:true / false
用于标记广告是否带有奖励
|
|
af_param_forwarding | 不适用 |
|
|
af_base_params_forward | 不适用 |
|
|
af_partner_account_id | 媒体网络账号 ID | 渠道侧的广告主帐户ID | 字符串限长100 |
重定向 | 不适用 |
&redirect=false 时,即可为AppsFlyer标识出S2S点击,并告知AF该点击中渠道负责为用户实现跳转。 |
|
af_ua | User Agent |
适用于发送S2S点击和展示的广告平台。 用户代理(user-agent)字符串以下列形式发送:
URL参数和HTTP请求头中的User-Agent应完全一致。 注意:在安卓平台中,User-Agent有时会被缩减版的Client Hints取代。这种情况下仍应发送该字段。
|
|
af_ip | IP |
适用于发送S2S点击和展示的广告平台。 设备IP地址 建议:在af_ip参数中提供设备IP(若可用)。 次优方案:AppsFlyer会使用X-Forwarded-For中的IP(若可用)。 |
|
【已弃用】af_os | OS version |
【仅适用于iOS】设备的操作系统版本。 AppsFlyer已弃用但仍支持该参数。建议:使用af_os_version参数代替。 |
|
af_os_version | OS version |
|
|
af_model | Device model |
|
|
af_media_type | Media type |
用于标记广告链接所在的媒体类型。分为以下两种:
|
|
deep_link_sub1-10 | 不适用 |
其他的深度链接值。开发人员将需要由这些值执行的跳转写入代码中。 |
|
deep_link_value | 不适用 |
具体应用内内容的名称,用户点击链接后会跳转到相应页面。由开发人员把需要deep_link_value执行的跳转写入代码中。 |
|
af_og_title | 不适用 |
在社交媒体上分享链接时,可使用开放图谱(Open Graph,简称OG)标题来生成标题预览。 |
字符串限长40 |
af_og_description | 不适用 |
在社交媒体上分享链接时,可使用开放图谱(Open Graph,简称OG)描述来生成描述预览。 |
字符串限长300 |
af_og_image | 不适用 |
在社交媒体上分享链接时,可使用开放图谱(Open Graph,简称OG)图像来生成图像预览。 |
归因链接参数——仅限再营销
参数 | 原始数据中的显示名称 | 释义 |
字段类型及长度限制 |
---|---|---|---|
is_retargeting |
Is Retargeting (campaign) | 所有再营销广告的点击链接里都应含有&is_retargeting=true 。如果不包括该参数或其值为 "false",则AF会视其为拉新广告。 |
5字符枚举 |
af_reengagement_window |
Re-engagement window |
该参数用于调整再互动归因窗口期。 可在以下范围内调整:
默认值:30天 示例: |
不适用 |
广告类型参数
您还可以针对不同的广告类型发送相关的可见度参数,记录用户互动的详细情况。下表列出了af_ad_type参数可能出现的值,以及对应的可见度参数。
广告类型(af_ad_type)
参数 | 参数值格式 | 释义 |
---|---|---|
af_video_total_length | 秒数 | 视频总时长 |
af_video_played_length | 秒数 | 视频播放时长 |
af_playable_played_length | 秒数 | 试玩元素完全加载后玩了多长时间 |
af_ad_time_viewed | 秒数 | 广告展示时长 |
af_ad_displayed_percent | % | 广告在设备屏幕上的最大占比 |
af_audio_total_length | 秒数 | 音频总时长 |
af_audio_played_length | 秒数 | 音频播放时长 |
安卓专用参数
参数 | 原始数据中的显示名称 | 释义 |
字段类型 |
---|---|---|---|
advertising_id |
Advertising ID |
Google Advertising ID |
40 字符上限 |
sha1_advertising_id |
不适用 |
通过SHA1加密的Google Advertising ID |
|
md5_advertising_id |
不适用 |
通过MD5加密的Google Advertising ID |
仅支持激活和再归因 |
android_id |
Android ID |
设备Android_id |
20 字符上限 |
sha1_android_id |
不适用 |
通过SHA1加密的设备Android_id |
|
md5_android_id |
不适用 |
通过MD5加密的设备Android_id |
仅支持激活和再归因 |
imei |
IMEI |
设备IMEI ID |
|
sha1_imei |
不适用 |
通过SHA1加密的设备IMEI ID |
|
md5_imei |
不适用 |
通过MD5加密的设备IMEI ID |
|
oaid |
OAID |
Open Anonymous Device Identifier |
Android SDK 4.10.3及以上版本可用 |
sha1_oaid |
不适用 |
通过SHA1加密的匿名设备标识符 |
Android SDK 4.10.3及以上版本可用 |
md5_oaid |
不适用 | 通过MD5加密的匿名设备标识符 需要广告平台支持 |
Android SDK 4.10.3及以上版本可用 |
af_android_url |
不适用 |
让安卓用户跳转到Google Play应用页面以外的链接。适用于第三方应用商店。 请注意:如果您目前正在使用跳转白名单,请确保该链接的域名已加白。 |
|
sha1_el |
不适用 |
用于PC端到移动端的归因,电子邮箱经SHA1加密。需要广告平台支持。 |
|
fire_advertising_id |
不适用 |
Amazon Fire Advertising ID |
|
af_android_store_csl |
store_product_page |
Google Console中的自定义商店详情页(Custom Store Listing) |
字符串 |
iOS专用参数
参数 | 显示名称 | 释义 |
---|---|---|
idfa |
IDFA |
全部大写。需要广告平台支持。 字段类型:限长40字符 |
idfv |
IDFV | 全部大写。 |
af_ios_url |
该参数用于落地页跳转,让iOS设备(iPhone或iPad)的用户跳转到iTunes应用页面以外的链接。 请注意:如果您目前正在使用跳转白名单,请确保该链接的域名已加白。 |
|
af_ios_store_cpp | store_product_page |
Custom product page ID(自定义产品页面ID,ppid) |
af_ios_fallback【已弃用】 |
不适用 |
已弃用:通过iOS URI scheme链路实现跳转。 |
sha1_idfa |
不适用 |
通过SHA1加密的IDFA。需要广告平台支持。 |
sha1_idfv |
不适用 |
通过SHA1加密的IDFV。 |
mac |
不适用 |
设备mac地址。需要广告平台支持。 |
md5_idfv |
不适用 |
通过MD5加密的IDFV。 |
sha1_mac |
不适用 |
通过SHA1加密的设备mac地址。需要广告平台支持。 |
示例
http://app.appsflyer.com/{app_id}/?pid=airpush_int&c=RedBanner&
af_siteid={publisher_id}&af_sub1=1.5&af_sub2=USD&af_sub3=burst_campaign
这些参数在激活报告、分析工具、报告工具、API中都可用。
自定义参数
除了默认的安卓和iOS专用参数外,您还可以使用自定义参数。在归因链接中添加这些自定义参数能帮助您打造定制化的用户体验和内容。
您可以使用parameter=value
的格式将自定义参数附在归因链接之后。例如:
https://app.appsflyer.com/com.greatapp?pid=networkx_int&c=winter&af_adset=coats&af_ad=cashmere&my_custom_param=my_custom_value
使用自定义参数时需注意以下两点:
- 自定义参数不会显示在原始数据中。
- 您可以通过转化数据SDK API来获取自定义参数。
Partner ID(PID)参数
在所有可用的归因链接参数中,PID是必须配置的参数。PID是媒体渠道的唯一标识符,由AppsFlyer设定。
每个对接渠道都有一个唯一的PID值,以_int为后缀。使用OneLink链接时,您可以自行设置PID,但请确保该PID不是任何对接渠道的PID。为了避免出现PID重复的问题,请勿使用_int这个后缀。
几个重要的对接渠道ID包括:organic(自然量)、googleadwords_int(Google AdWords)、Meta ads、X Ads。对于非对接渠道(从邮件、短信到飞鸽传书),您可以使用任何名称为其命名。
如何避免常见的PID问题:
- 一定要在归因链接中配置PID,否则获得归因的媒体渠道为“None”(无),且无法获知初始激活的流量来源。
- 如果是自有媒体,请勿使用对接渠道的PID。所有已对接渠道只能使用指定PID,否则无法对其激活进行正确归因。对于电子邮件、短信、Facebook帖子之类的自有流量渠道,请使用对接渠道PID以外的值。
-
请确保PID中的字符有效。如果归因链接中的PID参数包含/<>*&?\中的任一字符,则:
- 相关点击或激活会显示在面板中的af_invalid_param下方
- 归因链接无法得到归因
- 点击中的深度链接功能无法正常生效
提示
避免在PID 值中使用空格键, 或在使用 URL之前确保已对其进行归因链接编码。
Site ID(子渠道)参数
子渠道ID用于标记投放广告的发行商,即展示广告的网站或应用。广告平台会为其发行商设定唯一的子渠道ID。
您可通过归因链接中的af_siteid
参数将该ID上报给AppsFlyer,并在AppsFlyer面板、报告工具和回传中查看相关数据。
请务必通过归因链接将子渠道信息发送给AppsFlyer,因为:
- 这能让您清晰地了解该媒体的投放情况
- AppsFlyer会通过该信息来识别并剔除作弊媒体以及其他的虚假流量。
子渠道ID参数仅包含投放广告的发行商的ID。
如需了解其他信息,如广告的样式和/或版位(横幅、插屏或视频),请使用次级子渠道参数。
示例
以下归因链接中包含:
-
af_siteid
(子渠道ID):广告发行商ID -
af_sub_siteid
(次级子渠道ID):其他ID信息(这里代表某个联盟营销渠道以及广告样式)
https://app.appsflyer.com/com.yourapp?pid=mediaName_int&clickid={clickid}&advertising_id={gaid}&af_siteid=1234&af_sub_siteid=ABCD_4567
在示例链接中:
- 1234 = 广告发行商ID
- ABCD = 与该发行商合作的联盟营销渠道(次级发行商)
- 4567 = 广告在该应用中的呈现样式,如横幅、插屏或视频
FAQ:为何流量中有很多被屏蔽的激活?
激活被屏蔽可能是由以下原因导致的:
-
子渠道ID缺失:点击链接中的
af_siteid
参数为空。互动数据中的子渠道ID为空时,不是出现了技术问题,就是该渠道为了避开防作弊机制而有意不填充该值。 - 多个子渠道ID:多个点击链接使用不同子渠道ID来发送同一个广告发行商的数据。这是一种作弊行为,目的是掩盖真正带来转化的媒体,通常是撞库的表现。
- 子渠道ID的格式错误:如果子渠道ID格式有误,并同时出现其他作弊嫌疑,则AF不仅会屏蔽该子渠道,还会屏蔽上一级渠道的数据,并有可能影响到更大范围的渠道数据。
为了避免激活被屏蔽,请确保您对每个广告发行商仅设置一个子渠道ID参数,如示例链接所示。
数据粒度级别
您最多可使用4个链接参数来剖析广告效果。
如果您在所有的活跃归因链接上使用了全部4个参数,就可以实现下列功能:
- 将所有的用户激活和事件都归因到具体的广告
- 您可以在汇总报告中分广告组、广告系列、广告平台来查看和比较所有广告的综合表现,以便在各层级优化投放
- 您可以在原始数据报告和数据透视表里对各广告平台上的所有广告进行对比分析
参数名称如下:
广告平台 (pid=)
广告系列名称(c=)
广告组 (af_adset=)
广告名称 (af_ad=)
示例
以下归因链接运用了4种颗粒度,记录在“network”平台上投放的“winter”广告系列中”coats“广告组下的“cashmere”广告。
https://app.appsflyer.com/com.greatapp?pid=networkx_int&c=winter&
af_adset=coats&af_ad=cashmere
特点与局限性
特征 | 说明 |
---|---|
特殊字符 |
请勿在参数或值中使用以下特殊字符:;、*、!、@、#、?、$、^、:、&、~、`、=、+、’、>、<、/、{, }、% |
链接长度限制 |
URL总长度不得超过2000个字符 |
安卓社交应用的Webview深度链接跳转 |
如需进一步了解具体限制,请参考此文档 |
这些参数要用大写格式还是小写格式?
大写小写都可以,但必须保持一致。如果您用大写字母设置了一个自定义参数,就必须总是使用大写字母来表达该参数,反之亦然。
举例来说,如果您设置了pid=MyMediaSource,请确保您总是按照这样的大小写来使用该参数。如果您在一个归因链接中使用pid=MyMediaSource,而在另一个归因链接中使用pid=mymediasource ,就会产生数据差异,其他参数同理。
AppsFlyer的归因链接是动态的还是静态的?
如果归因链接中包含参数,就表示这是一个已经定义完毕的归因链接,因此是静态的。只有自定义归因链接的短链(如
yourbrand.onelink.me/HaT8/r5c2b371
)才是动态的。也就是说,如果您在对接渠道中使用了配置好的归因链接,或在自有媒体中使用了长链,那么就算您之后在AppsFlyer后台更改了该归因链接的值,投出去的链接也不会随之变化。如果要让更改生效,就必须使用更新后的长链。相反的,由于自有媒体的短链中不直接包含参数,因此用户与短链互动时,会跳转到AppsFlyer的服务器,这样当前的参数设置就会动态生效。
Google Play Store的这条报错信息是什么意思?
如果您在点击一条归因链接后收到以下报错消息:
这是因为该归因链接中含有“#”这个字符。例如:https://app.appsflyer.com/com.travelco?pid=globalwide_int&clickid=#reqid#
链接中的这类字符通常是宏,会被其他值动态取代。这种情况并不构成问题,您可以直接忽略该消息。
Subscriber Parameters(自配参数)有什么用处?
示例
一款名为Luber的打车应用有3种颜色的素材模板:蓝色、黄色和红色。Luber的移动营销人员Linda想要测试哪种颜色的模板能带来更多激活。因此她在所有非自归因平台的蓝色广告的归因链接里添加了&af_sub3=blue
,黄色和红色广告以此类推。然后Linda在原始数据报告里查看解析后的相关信息,就能分析出不同颜色广告的效果并找出转化率最高的那一个。
广告系列名称有何限制?
- 归因链接中的广告系列名称长度不能超过100个字符。若超过100个字符,则该广告系列的名称会自动变成
c_name_exceeded_max_length
。 - 广告系列名称的不能以空格开头或结尾,否则会导致面板和报告的数据之间产生差异。