参数宏
宏(Macro)是在链接服务器的请求中动态更改的占位符值。虽然 Tenjin 为集成的广告投放渠道预先配置了宏,但是了解宏的工作方式对你添加自定义渠道很有用。
为什么需要宏?
详细信息
我们需要使用固定的跟踪链接中的宏来传递动态数据。这里,我们详细的介绍归因过程中链接,参数,值和动态更改值是如何工作的。
链接和参数
先来看一个标准的链接:
https://track.tenjin.io?param1=value1。 在链接中你可以看到服务器地址 track.tenjin.io 和一个单独参数 param1 的值是 value1。当这个链接触发 track.tenjin.io 服务器时, Tenjin 的服务器通过读取链接并解析参数和值,这里 param1 设置为 value1。
在更实际的情况中, https://track.tenjin.io?advertising_id=xyz123&country=US 这条链接有2个参数(advertising_id 和 country)和两个值。当这个请求到达 Tenjin 服务器 track.tenjin.io时,我们就知道时 advertising_id 触发的是设备 xyz123 并带有 country 值为 US。
动态参数值
现在,我们知道将参数和值如何传递到服务器,下面让我们看一下在归因和跟踪的时候链接是如何工作的。
为了让 Tenjin 对用户的点击或展示进行归因,Tenjin 收集每次点击个展示的设备信息和属性,这些数据用来和 App 激活的设备数据进行匹配。
每当你为非自归因或自定义渠道 创建广告计划 时,都会在 Tenjin 生成追踪链接。此跟踪链接包含的宏,可动态适应点击或展示周围的变化值。宏被用作在特定链接中会更改的值的占位符。
假设你要在[非自归因]](/docs/zh/tracking-non-self-attributing-networks){target="_blank"} 渠道上运行广告计划。你可以通过 Tenjin 控制面板创建跟踪链接,并将链接放到你的广告投放渠道。
Tenjin 的追踪链接看起来大概是这个样子的:
https://track.tenjin.io?advertising_id={idfa}&country={country}
这里的 {idfa} 和 {country} 就是宏。当一个设备使用这个链接是,广告投放渠道就会在这些宏里填上实际的信息。用上面的例子 {idfa} 和 {country} 分别会是 xyz123 和 US。
信息填好之后,广告投放渠道就会用以下链接通知 Tenjin 的服务器:
https://track.tenjin.io?advertising_id=xyz123&country=US
另外,如果用户的设备改变,有 abc234的advertising_id 和 country 为 CA,链接将会是:
https://track.tenjin.io?advertising_id=abc234&country=CA
如你所见,这些方案使用相同的链接,但是会根据使用设备/用户的情况来更改跟踪链接的值。
宏允许广告投放渠道为每个用户修改点击/展示的链接。这些宏只是当不同用户与跟踪链接进行交互时所更改的占位符值。
广告渠道追踪链接上的参数宏
详细信息
每个广告投放渠道针对以下设备属性都有自己的点击和展示宏:
- Advertising ID
 - IP address
 - Bundle ID
 - Country
 - Click ID
 - Site
 - OS Platform
 - Limit Ad Tracking
 - Creative
 
如果广告投放渠道已与 Tenjin 集成并预先配置,则每个广告网络的宏将自动显示在每个广告计划的每个点击链接或展示跟踪链接上。
比如:
- Applovin 
advertising_id的宏看起来这样:{IDFA} - Tapjoy 
advertising_id的宏看起来这样:TAPJOY_ADVERTISING_ID 
Applovin 和 Tapjoy 的点击链接可能看起来像这样:
- Applovin: 
https://track.tenjin.io/v0/id?advertising_id={IDFA} - Tapjoy: 
https://track.tenjin.io/v0/id?advertising_id=TAPJOY_ADVERTISING_ID 
同样,每个渠道都有自己的宏格式。如果该网络已经与Tenjin预集成,则无需担心。这仅仅是为了让你知道点击和展示链接是如何工组成的。
回调中的参数宏
详细信息
设置 Tenjin 对另一服务端的回调时,你可以使用宏来表示动态更改的数据值,以发送给其他服务器/服务。这就是我们所说的“routing”。
Tenjin允许你将实时事件数据实时路由到其他服务器。
这是在将数据发送到其他服务时可以设置的可用回调宏的列表。
- 应用相关的宏
 
| 参数宏 | 说明 | 
|---|---|
| {{app_version}} | 应用的版本号 (com.tenjin.wordfinder) | 
| {{bundle_id}} | 应用的包名 (com.tenjin.wordfinder) | 
| {{lowercase_bundle_id}} | 应用包名的小写(com.tenjin.wordfinder) | 
| {{platform}} | 应用的发布平台 (ios) | 
| {{user_agent}} | user agent 用户代理 | 
| {{sdk_version}} | 用户的 Tenjin SDK 版本 | 
| {{store_id}} | App 应用 ID (887212194) | 
- 归因相关的宏
 
| 参数宏 | 说明 | 
|---|---|
| {{acquired_at_s}} | 安装事件的时间戳(秒) | 
| {{acquired_at_ms}} | 安装事件的时间戳(毫秒) | 
| {{engaged_at_s}} | 点击或展示事件的时间戳(秒) | 
| {{engaged_at_ms}} | 点击或展示事件的时间戳(毫秒) | 
| {{ad_network}} | 用户来源渠道 | 
| {{campaign_id}} | 与 {{remote_campaign_id}} 相同 | 
| {{campaign_name}} | Tenjin 内部的广告系列名称 | 
| {{campaign_name_encoded}} | Tenjin 内部编码的广告系列名称 | 
| {{click_id}} | 对于非自然量,其来源渠道的click ID(点击 ID) | 
| {{creative_name}} | 素材名称 | 
| {{deeplink_url}} | Deeplink URL 深度链接 | 
| {{is_conversion_integer}} | 1 为下载事件,0 为其它事件 | 
| {{is_impression}} | 1 => 展示转化归因, 0 => 点击转化归因 | 
| {{is_install_or_landing}} | 首次打开应用为 "install 安装",后续打开应用为"landing 登录" | 
| {{ip_address}} | 用户的 IP 地址 | 
| {{ip_address_click}} | 点击或者展示事件的 IP 地址 | 
| {{remote_campaign_id}} | 渠道的广告系列 ID | 
| {{site_id}} | 子渠道 ID | 
| {{site_id_encoded}} | 子渠道的编码 ID | 
| {{ad_network_short_id_match_type}} | 用户来源于 device, probablistic 还是 referrer 归因 | 
| {{tenjin_campaign_id}} | Tenjin 的广告系列 ID | 
| {{is_organic}} | '1' =>自然量, '0' =>非自然量 | 
| {{tenjin_parameter_0}} | 通过点击 url 传递宏 | 
| {{tenjin_parameter_1}} | 通过点击 url 传递宏 | 
| {{tenjin_parameter_2}} | 通过点击 url 传递宏 | 
| {{tenjin_parameter_3}} | 通过点击 url 传递宏 | 
| {{tenjin_parameter_4}} | 通过点击 url 传递宏 | 
| {{tenjin_parameter_5}} | 通过点击 url 传递宏 | 
- 设备标识符相关的宏
 
| 参数宏 | 说明 | 
|---|---|
| {{advertising_id}} | 设备的广告标识符 | 
| {{analytics_installation_id}} | 设备的应用安装特定标识符 | 
| {{developer_device_id}} | 供应商标识符(IDFV)或开发者设备 ID | 
| {{formatted_advertising_id}} | 设备的格式化广告标识符,为空则显示为00000000-0000-0000-0000-000000000000 | 
| {{imei}} | IMEI | 
| {{md5_advertising_id}} | 广告标识符的 MD5 | 
| {{lowercase_advertising_id}} | 设备的小写广告标识符 | 
| {{md5_imei}} | IMEI 的 md5 | 
| {{md5_oaid}} | OAID 的 md5 | 
| {{oaid}} | OAID | 
| {{customer_user_id}} | 应用中的 User ID 参数,由 as set by setCustomerUserId SDK method | 
- 设备属性相关的宏
 
| 参数宏 | 说明 | 
|---|---|
| {{allow_ad_tracking}} | 设备允许广告追踪? (true 是,false 否) | 
| {{allow_ad_tracking_integer}} | 设备允许广告追踪? (1 是,0 否) | 
| {{carrier}} | 设备载体 | 
| {{connection_type}} | 联网类型 | 
| {{country}} | 国家代码 | 
| {{device}} | 用户的设备 | 
| {{device_brand}} | 设备品牌 | 
| {{device_model}} | 设备型号 | 
| {{language}} | 用户的语言选项 | 
| {{limit_ad_tracking}} | 设备限制广告追踪? (true 是,false 否) | 
| {{limit_ad_tracking_integer}} | 设备限制广告追踪? (1 是,0 否) | 
| {{locale}} | 区域信息 | 
| {{os_version}} | 操作系统 | 
| {{os_version_release}} | 操作系统的发行版本 | 
| {{referrer}} | Android 回传参数 referrer | 
| {{timezone}} | 设备时区 | 
| {{tracking_status}} | iOS 设备的 ATT 状态. 0 => 未确定, 1 => 受限的, 2 => 禁用, 3 => 授权 | 
- 事件相关的宏
 
| 参数宏 | 说明 | 
|---|---|
| {{currency}} | 付费事件的 3 位数货币代码 | 
| {{event}} | 事件名称 | 
| {{time_in_seconds}} | 请求时间(秒) | 
| {{time_in_ms}} | 请求时间(毫秒) | 
| {{time_iso8601}} | 请求时间(ISO 8601) | 
| {{revenue}} | 总收入(原始货币形式) | 
| {{revenue_usd_net}} | 付费事件的净收入(美元) | 
| {{revenue_usd_gross}} | 付费事件的总收入(美元) | 
| {{value}} | 自定义事件价值 | 
- 广告展示收益相关的宏
 
AppLovin
| 参数宏 | 说明 | 
|---|---|
| {{ad_unit_id}} | winning network 成功竞标平台的 Ad unit 广告单元 ID | 
| {{currency}} | 货币形式 | 
| {{ad_format}} | 广告单元的格式 | 
| {{mediation_country}} | 媒介回传的国家/地区信息 | 
| {{network_name}} | 播放广告的平台 | 
| {{ad_revenue}} | 广告变现平台回传的收入数据 | 
| {{network_placement}} | 平台定义的展示位 | 
| {{placement}} | 广告单元的展示位 | 
| {{creative_id}} | 广告单元的 Creative 创意 ID | 
| {{precision}} | 广告收入数据的精度 | 
ironSource
| 参数宏 | 说明 | 
|---|---|
| {{ab_test}} | A/B 测试的值 | 
| {{ad_format}} | 广告单元的格式 | 
| {{ad_revenue}} | 广告变现平台回传的收入数据 | 
| {{auction_id}} | Ironsource 定义的 Auction ID | 
| {{ecpm}} | Ironsource 回传的 eCPM数据 | 
| {{instance_id}} | Ironsource 定义的 Instance ID | 
| {{instance_name}} | Ironsource 定义的 Instance Name | 
| {{mediation_country}} | (未使用时,将使用 Tenjin 的国家宏) | 
| {{mediation_ltv}} | Ironsource 回传的用户终身收入数据 | 
| {{network_name}} | 播放广告的平台 | 
| {{placement}} | 广告单元的展示位 | 
| {{precision}} | 广告收入数据的精度 | 
| {{segment}} | Ironsource 的 Segment Name 细分字段 | 
HyperBid
| 参数宏 | 说明 | 
|---|---|
| {{mediation_country}} | 媒介回传的国家/地区信息 | 
| {{ad_network_type}} | 平台类型,交叉推广或 ad exchange 广告交易平台 | 
| {{adsource_index}} | 当前广告源在瀑布流广告中的排序 | 
AdMob
| 参数宏 | 说明 | 
|---|---|
| {{precision}} | Ad Mob 定义的精度类型 | 
| {{ad_unit_id}} | Ad Mob 定义的广告单元 ID | 
| {{currency}} | 货币代码 | 
| {{adapter_class}} | 广告平台的 Adapter class 适配器类 | 
| {{response_id}} | AdMob 提供的 Response 响应 ID | 
| {{ad_revenue_micro}} | AdMob 回传的广告收入(微美分)数据 | 
Topon
| 参数宏 | 说明 | 
|---|---|
| {{mediation_country}} | 媒介回传的国家/地区信息 | 
| {{ad_network_type}} | 平台类型,交叉推广或 ad exchange 广告交易平台 | 
| {{adsource_index}} | 当前广告源在瀑布流广告中的排序 | 
- SAN Attributions
 
如需使用SAN的归因参数宏,请联系support@tenjin.com。
Meta
| 参数宏 | 说明 | 
|---|---|
| {{meta::account_id}} | 用于投放广告的广告账户 | 
| {{meta::ad_id}} | 在转化前被点击或查看的广告的唯一ID | 
| {{meta::ad_objective_name}} | 创建广告活动时选择的目标(例如:MOBILE_APP_INSTALLS、CONVERSIONS) | 
| {{meta::adgroup_id}} | Meta Ad的ID | 
| {{meta::adgroup_name}} | Meta Ad的名称 | 
| {{meta::campaign_group_id}} | Meta Campaign的ID | 
| {{meta::campaign_group_name}} | Meta Campaign的名称 | 
| {{meta::campaign_id}} | Meta AdSet的ID | 
| {{meta::campaign_name}} | Meta AdSet的名称 | 
| {{meta::click_time}} | 归因前的最后一次广告点击时间戳 | 
| {{meta::engagement_type}} | 归因互动类型(例如:engaged_view) | 
| {{meta::is_fb}} | 该安装是否来自Meta | 
| {{meta::is_modeled}} | 归因是基于模型计算的还是确定性的 | 
| {{meta::is_paid}} | 该安装是否来自 Meta 的付费渠道 | 
| {{meta::is_view_through}} | 归因是基于展示(view-through)还是点击(click-based) | 
| {{meta::platform_position}} | 在平台上展示的广告类型 | 
| {{meta::publisher_platform}} | 广告投放的平台(例如:AUDIENCE_NETWORK、INSTAGRAM、MESSENGER、FACEBOOK) | 
| {{meta::view_time}} | 归因前的最后一次广告查看时间戳 | 
您可以在callback setup查看有关路由和使用这些宏的更多信息。