事件API #
(用于发送“首次应用打开”(First App Open)和“应用打开”(App Open)事件)
身份验证:
我们使用 Tenjin SDK Key 对发送到 Tenjin 服务器的每个请求进行身份验证,验证方式如下:
- 将其作为请求 URL 中的参数 api_key,或者
- 将其作为用户名(username),并将密码(password)留空,用于基础访问认证
POST 或 GET URL:
https://track.tenjin.com/v0/event
返回 {“code”:200} 表示请求成功。
参数:
*:必须
| 参数 | 类型 | 说明 | 例子 |
api_key* | 字符串 | Tenjin为每个应用生成的SDK key,可在应用页面的SDK标签页找到。如果您改用基本认证(basic authentication),则无需此参数。 | ENECCCVB8UQVLPSQ58S8EZXTJHA7FHDW |
analytics_installation_id* | UUID | Tenjin生成的应用安装唯一标识符。可通过S2S callbacks或SDK(Android SDK、iOS SDK、Unity SDK)获取。 | 29eeb1610fe74997b6d53f02e9711f8c |
advertising_id* | 字符串 | 设备的原始广告ID。对于选择退出(opt-out)的用户,该值可能为空或为全零。 | f024e65f3dd94f16983726bcef192d68 |
developer_device_id (*iOS必需) | 字符串 | Vendor的标识符 | b6bc48fe0ce949e4b229ce6c55663fca |
bundle_id* | 字符串 | 应用包名 | com.tenjin.wordfinder |
platform* | 字符串 | ios, android, amazon, android_other | ios |
limit_ad_tracking | 字符串 | 1:是,0:否 | 1 |
os_version* | 字符串 | Android用户 String os_version = String.valueOf(Build.VERSION.SDK_INT) iOS用户: [[UIDevice currentDevice] systemVersion] | 8.0 |
app_version | 浮点数,小数 (Float, Decimal) | App 版本号。Android 示例:String app_version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName + "." + context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode);iOS 示例:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]。 | 1.0.3 |
sdk_version* | 字符串 | server | server |
country | 字符串 | ISO地区国家代码标准(示例请参见Apple文档)。 | 美国 |
ip_address | 字符串 | 用户的IP地址。该信息用于查询国家。如果未提供此参数,我们将使用HTTP头中的IP地址。 | 71.165.85.114 |
ad_user_data | 布尔值 (Boolean) | Google用户同意信号参数:用于表示是否同意将用户级数据传输给第三方用于广告。1表示同意,0表示拒绝。当没有用户同意数据时,应从请求中完全移除此参数(不要将其设置为空)。 | 1 |
ad_personalization | 布尔值 (Boolean) | Google用户同意信号参数:用于表示是否同意个性化广告。1表示同意,0表示拒绝。当没有用户同意数据时,应从请求中完全移除此参数(不要将其设置为空)。 | 1 |
referrer | 字符串 | 用于已跟踪的Android安装的数据收集。 | campaign_id%3D |
os_version_release (*用于跟踪Google Ads所必需) | 字符串 | Android用户 String os_version_release = String.valueOf(Build.VERSION.RELEASE) iOS用户: [[UIDevice currentDevice] systemVersion] | 8.0.1 |
build_id (推荐用于Google Ads) | 字符串 | Android用户 String build = String.valueOf(Build.ID) iOS用户: @import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“kern.osversion”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | UP1B.231005.007(简体中文(大陆)) |
locale (推荐用于Google Ads) | 字符串 | Android用户 String locale = Locale.getDefault().toString() iOS用户: [[NSLocale currentLocale] localeIdentifier] | es_AR |
device_model (推荐用于Google Ads) | 字符串 | Android用户 String device = Build.MODEL; iOS用户: @import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“hw.machine”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | SM-F731A |
odm_info | 字符串 | 这是在iOS上通过Google Ads进行概率归因所需的字符串。你需要先从ODM SDK中获取该字符串。 | AB7Dr_EJBWQ_lT_l1V0z5xqDB9MnLGbINV5r2w1jhVTITlm0IK7QE16Bf2sIjI_twjeMoQl3SedWsZiPtijTZ2DkUYI_H9RI6lkStqbwmBVsnu_QH4hfkuJeMwhFEzBEJCz3a8cdD2U1MRd1jwn2b_hbaHsbVO3NlE0xsExo5HtcuWmsaMdddKn9vFRPtyPQvSLjSl4AlsdyAaYg9Hw-FyYfm9eAbqrxy3NXkZtjJeXRThMG6MTNJA |
customer_user_id | 字符串 | 为事件自定义的用户ID | jdabGcerT32_d |
购买 API #
(用于发送购买事件)
身份验证:
我们使用 Tenjin SDK Key 对发送到 Tenjin 服务器的每个请求进行身份验证,验证方式如下:
- 将其作为请求 URL 中的参数 api_key,或者
- 将其作为用户名(username),并将密码(password)留空,用于基础访问认证
POST 或 GET URL:
https://track.tenjin.com/v0/purchase
参数:
*:必须
| 参数 | 类型 | 说明 | 例子 |
api_key* | 字符串 | Tenjin为每个应用生成的SDK key,可在应用页面的SDK标签页找到。如果您改用基本认证(basic authentication),则无需此参数。 | ENECCCVB8UQVLPSQ58S8EZXTJHA7FHDW |
analytics_installation_id* | UUID | Tenjin生成的应用安装唯一标识符。可通过S2S callbacks或SDK(Android SDK、iOS SDK、Unity SDK)获取。 | 29eeb1610fe74997b6d53f02e9711f8c |
advertising_id* | 字符串 | 设备的原始广告ID。对于选择退出(opt-out)的用户,该值可能为空或为全零。 | f024e65f3dd94f16983726bcef192d68 |
developer_device_id (*iOS必需) | 字符串 | Vendor的标识符 | b6bc48fe0ce949e4b229ce6c55663fca |
bundle_id* | 字符串 | 应用包名 | com.tenjin.wordfinder |
platform* | 字符串 | ios, android, amazon, android_other | ios |
limit_ad_tracking | 字符串 | 1:是,0:否 | 1 |
os_version* | 字符串 | Android用户 String.valueOf(Build.VERSION.SDK_INT) iOS用户: [[UIDevice currentDevice] systemVersion] | 8.0 |
app_version (*用于跟踪Google Ads所必需) | 浮点数,小数 (Float, Decimal) | App 版本号。Android 示例:String app_version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName + "." + context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode);iOS 示例:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]。 | 1.0.3 |
sdk_version* | 字符串 | server | server |
ip_address | 字符串 | 用户的IP地址。该信息用于查询国家。如果未提供此参数,我们将使用HTTP头中的IP地址。 | 71.165.85.114 |
ad_user_data | 布尔值 (Boolean) | Google用户同意信号参数:用于表示是否同意将用户级数据传输给第三方用于广告。1表示同意,0表示拒绝。当没有用户同意数据时,应从请求中完全移除此参数(不要将其设置为空)。 | 1 |
ad_personalization | 布尔值 (Boolean) | Google用户同意信号参数:用于表示是否同意个性化广告。1表示同意,0表示拒绝。当没有用户同意数据时,应从请求中完全移除此参数(不要将其设置为空)。 | 1 |
postcut | 字符串 | 如果您发送的价格已扣除商店分成,请设为1。Tenjin将不会对此次购买再计算任何应用商店分成(Manual或Dynamic)。 | 1 |
storefront_country | 字符串 | App Store店面所在国家/地区,ISO 3166-1 alpha-2格式(例如 DE)。用于为Dynamic分成模式的应用选择对应地区的商店分成比例。会覆盖设备/IP所在的国家/地区,但不会覆盖已校验收据中的店面信息。无效值会被忽略。 | DE |
store_commission_rate | 浮点数,小数 (Float, Decimal) | 精确的商店分成比例,取值为0到1之间的小数(例如 0.15 表示15%)。对Dynamic分成模式的应用直接生效。超出0–1的值会被忽略。以下情况会忽略此参数: postcut=1. | 0.15 |
product_id* | 字符串 | 所购买产品的唯一名称 | coin_store |
price* | 浮点数,小数 (Float, Decimal) | The unit price of the item purchased in the currency standard unit (ex. USD is reported in dollars). To report a refund, send the refunded amount as a negative value (for example, -29.99) with the same product_id, currency 和 quantity as the original purchase. | 0.99 |
quantity* | 整数 | 购买的数量 | 1 |
country | 字符串 | ISO地区国家代码标准(示例请参见Apple文档)。 | 美国 |
currency* | 字符串 | Apple和Google使用的ISO货币代码(示例请参见Apple文档) | USD |
os_version_release (*用于跟踪Google Ads所必需) | 字符串 | Android用户 String os_version_release = String.valueOf(Build.VERSION.RELEASE) iOS用户: [[UIDevice currentDevice] systemVersion] | 14 |
build_id (推荐用于Google Ads) | 字符串 | Android用户 String build = String.valueOf(Build.ID) iOS用户: @import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“kern.osversion”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | UP1B.231005.007(简体中文(大陆)) |
locale (推荐用于Google Ads) | 字符串 | Android用户 String locale = Locale.getDefault().toString() iOS用户: [[NSLocale currentLocale] localeIdentifier] | es_AR |
device_model (推荐用于Google Ads) | 字符串 | Android用户 String device = Build.MODEL; iOS用户: @import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“hw.machine”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | SM-F731A |
customer_user_id | 字符串 | 为事件自定义的用户ID | jdabGcerT32_d |
tracking_status(在 iOS 上运行 Meta AEM 广告活动时必填) | 字符串 | 整数,表示iOS设备的 ATT状态. 0 => 未决定, 1 => 受限, 2 => 已拒绝, 3 => 已授权2 | 2 |
如果没有有效的收据或签名,请不要在请求URL中添加这些参数。即使没有收据或签名,我们仍然可以通过S2S在面板上显示该购买记录。.
Refunds: To report a refund, send it as a Purchase event with a negative price (for example, -29.99). No extra parameter is needed.
自定义事件 API #
(用于发送所有自定义事件)
身份验证:
我们使用 Tenjin SDK Key 对发送到 Tenjin 服务器的每个请求进行身份验证,验证方式如下:
- 将其作为请求 URL 中的参数 api_key,或者
- 将其作为用户名(username),并将密码(password)留空,用于基础访问认证
POST 或 GET URL:
https://track.tenjin.com/v0/event
参数:
*:必须
| 参数 | 类型 | 说明 | 例子 |
api_key* | 字符串 | Tenjin为每个应用生成的SDK key,可在应用页面的SDK标签页找到。如果您改用基本认证(basic authentication),则无需此参数。 | ENECCCVB8UQVLPSQ58S8EZXTJHA7FHDW |
analytics_installation_id* | UUID | Tenjin生成的应用安装唯一标识符。可通过S2S callbacks或SDK(Android SDK、iOS SDK、Unity SDK)获取。 | 29eeb1610fe74997b6d53f02e9711f8c |
advertising_id* | 字符串 | 设备的原始广告ID。对于选择退出(opt-out)的用户,该值可能为空或为全零。 | f024e65f3dd94f16983726bcef192d68 |
developer_device_id (*iOS必需) | 字符串 | Vendor的标识符 | b6bc48fe0ce949e4b229ce6c55663fca |
bundle_id* | 字符串 | 应用包名 | com.tenjin.wordfinder |
platform* | 字符串 | ios, android, amazon, android_other | ios |
limit_ad_tracking | 字符串 | 1:是,0:否 | 1 |
os_version* | 字符串 | Android用户 String.valueOf(Build.VERSION.SDK_INT) iOS用户: [[UIDevice currentDevice] systemVersion] | 8.0 |
app_version (*用于跟踪Google Ads所必需) | 浮点数,小数 (Float, Decimal) | App 版本号。Android 示例:String app_version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName + "." + context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode);iOS 示例:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]。 | 1.0.3 |
sdk_version* | 字符串 | server | server |
ip_address | 字符串 | 用户的IP地址。该信息用于查询国家。如果未提供此参数,我们将使用HTTP头中的IP地址。 | 71.165.85.114 |
ad_user_data | 布尔值 (Boolean) | Google用户同意信号参数:用于表示是否同意将用户级数据传输给第三方用于广告。1表示同意,0表示拒绝。当没有用户同意数据时,应从请求中完全移除此参数(不要将其设置为空)。 | 1 |
ad_personalization | 布尔值 (Boolean) | Google用户同意信号参数:用于表示是否同意个性化广告。1表示同意,0表示拒绝。当没有用户同意数据时,应从请求中完全移除此参数(不要将其设置为空)。 | 1 |
event* | 字符串 | 事件名称,例如:“tutorial_complete”、“registration_complete”或“level_1_complete” | event_complete |
value | Nil、整数 | 与事件名称关联的数值。该数值可用于计算与该事件名称相关的指标(例如:计算某个特定事件获得的虚拟货币数量)。 | 10 |
os_version_release (*用于跟踪Google Ads所必需) | 字符串 | Android用户 String os_version_release = String.valueOf(Build.VERSION.RELEASE) iOS用户: [[UIDevice currentDevice] systemVersion] | 14 |
build_id (推荐用于Google Ads) | 字符串 | Android用户 String build = String.valueOf(Build.ID) iOS用户: @import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“kern.osversion”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | UP1B.231005.007(简体中文(大陆)) |
locale (推荐用于Google Ads) | 字符串 | Android用户 String locale = Locale.getDefault().toString() iOS用户: [[NSLocale currentLocale] localeIdentifier] | es_AR |
device_model (推荐用于Google Ads) | 字符串 | Android用户 String device = Build.MODEL; iOS用户: @import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“hw.machine”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | SM-F731A |
customer_user_id | 字符串 | 为事件自定义的用户ID | jdabGcerT32_d |
tracking_status(在 iOS 上运行 Meta AEM 广告活动时必填) | 字符串 | 整数,表示iOS设备的 ATT状态. 0 => 未决定, 1 => 受限, 2 => 已拒绝, 3 => 已授权 | 2 |