跳转至正文
@capgo/capacitor-appsflyer 数据分析 开源

AppsFlyer Capacitor 插件

为您的 Capacitor 应用添加 AppsFlyer 归因、分析、延迟深度链接及 OneLink 支持

安装

bun add @capgo/capacitor-appsflyer bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-appsflyer
  • pnpm add @capgo/capacitor-appsflyer
  • yarn add @capgo/capacitor-appsflyer

指南

如何在 Capacitor 中使用 AppsFlyer

使用 @capgo/capacitor-appsflyer

用于 AppsFlyer 归因、分析和 Deep Links 的 Capacitor 插件。

安装

bun add @capgo/capacitor-appsflyer
bunx cap sync

bunx cap sync 将插件的原生 code 复制到你的原生项目中。每次升级插件后都要重新运行。

导入

import { AppsFlyer } from '@capgo/capacitor-appsflyer';

API 概览

方法 描述
initSDK 使用此方法初始化并启动 AppsFlyer SDK。App 一启动就应调用此 API。
startSDK 仅在手动启动模式下,使用此方法启动 AppsFlyer SDK。
logEvent 记录一个 App 内事件。
setCustomerUserId 设置你自己的 customer ID 后,就能把自有唯一 ID 与 AppsFlyer 的唯一 ID 及其他设备的 ID 交叉对照。该 ID 会出现在原始数据报告和 Postback API 中,方便与你的内部 ID 关联。
setCurrencyCode 设置应用内购买使用的货币。货币 code 应为 3 个字符的 ISO 4217 code。
updateServerUninstallToken (Android) 支持将第三方插件收集的 GCM/FCM Tokens 传给 AppsFlyer 服务端,可用于卸载日志。(iOS) 支持将第三方插件收集的 APN Tokens 传给 AppsFlyer 服务端,可用于记录卸载日志。
setAppInviteOneLink 设置用于归因用户邀请 (user-Invite) 的 OneLink ID。为用户邀请生成的链接将使用此 OneLink 作为基础链接。
setOneLinkCustomDomain 为了让 AppsFlyer SDK 能够成功解析隐藏的(在短链接 ID 中解码的)归因参数,必须向此方法提供在 AppsFlyer Dashboard 中配置为品牌域名的所有域名。
appendParametersToDeepLinkingURL 允许使用 App Links 进行深度链接(不使用 OneLink)的应用所有者,对通过其应用关联域名发起的会话进行归因。请在调用 start 之前调用此方法。您必须在 parameters Map 中提供以下参数:pid 和 is_retargeting 必须设置为 true。
setResolveDeepLinkURLs 广告主可以将 AppsFlyer OneLink 封装在另一个 Universal Link 中。该 Universal Link 会唤起应用,但任何深度链接数据都不会传递给 AppsFlyer。通过 setResolveDeepLinkURLs,您可以配置 SDK 来解析封装的 OneLink URL,从而确保深度链接正常工作。
addPushNotificationDeepLinkPath 配置 SDK 如何从推送通知 payload 中提取 deep link 值。
setSharingFilter 阻止事件传播到指定的 AppsFlyer 合作伙伴。
setSharingFilterForAllPartners 阻止事件传播到所有 AppsFlyer 合作伙伴。会覆盖 setSharingFilter。
setSharingFilterForPartners 阻止事件传播到指定的 AppsFlyer 合作伙伴。
setAdditionalData 设置要发送给 AppsFlyer 的附加数据。详见。
getAppsFlyerUID 获取 AppsFlyer 的唯一设备 ID(为应用的每次新安装而创建)。
anonymizeUser 终端用户选择退出 AppsFlyer 分析(匿名化用户数据)。
stop 一旦调用此 API,我们的 SDK 将不再与服务器通信并停止工作。这在实现用户 opt-in/opt-out 时非常有用。
disableSKAdNetwork 选择退出 SKAdNetwork。
disableAdvertisingIdentifier 禁用 SDK 对各类广告 ID 的收集,包括 Apple 广告标识符 (IDFA)、Google 广告 ID (GAID)、OAID 和 Amazon 广告 ID (AAID)。
disableCollectASA 选择退出 Apple Search Ads 归因。
setHost 设置自定义 host。
generateInviteLink 允许现有用户邀请好友和联系人成为您应用的新用户。
validateAndLogInAppPurchaseAndroid 用于应用内购买服务器验证的 API。验证成功后,会自动记录带有相关值的 af_purchase 事件。
validateAndLogInAppPurchaseIos 查看源码定义以了解当前行为。
getSdkVersion 获取 App 中使用的 AppsFlyer SDK 版本。
enableFacebookDeferredApplinks 启用 Facebook Deferred AppLinks 收集。需要目标/客户端设备上安装 Facebook SDK 和 Facebook App。此 API 必须在初始化 AppsFlyer SDK 之前调用才能正常工作。
sendPushNotificationData 衡量并获取推送通知营销活动的数据。
setCurrentDeviceLanguage 设置设备语言。数据将显示在 Raw Data Reports 中。
logCrossPromoteImpression 记录交叉推广活动中的曝光量。请确保使用的推广 App ID 与 AppsFlyer dashboard 中的一致。
setUserEmails 设置用户邮箱并对其进行加密。
logLocation 手动记录用户位置。
setPhoneNumber 将以 SHA-256 加密字符串的形式发送。
setPartnerData 允许发送自定义数据以进行合作伙伴集成。
logInvite 用于记录应用内用户邀请事件 (af_invite)。
setDisableNetworkData 用于选择不从设备收集网络运营商名称 (carrier) 和 SIM 卡运营商名称。
enableTCFDataCollection 用于为使用 CMP 的用户选择开启/关闭同意数据自动收集。该标志值将在应用会话之间持久化。
setConsentData 用于手动设置用户同意数据。如果您的应用未使用兼容 TCF v2.2 的 CMP,请使用以下方法直接向 SDK 提供同意数据。
logAdRevenue 通过归因广告收入,应用所有者可以全面掌握用户 LTV 和广告活动 ROI。广告收入通过在应用内的激励视频、Offerwall、插屏广告和横幅广告中展示广告产生。您可以使用此方法记录广告收入。
setConsentDataV2 用于手动设置用户同意数据。如果您的应用未使用兼容 TCF v2.2 的 CMP,请使用以下方法直接向 SDK 提供同意数据。
isSDKStarted 使用此方法检查 AppsFlyer SDK 是否已在当前会话中启动。
isSDKStopped 使用此方法检查 AppsFlyer SDK 当前是否已停止。
disableAppSetId 禁用 AppSet ID 收集。如果在 SDK 初始化之前调用,则不会收集 App Set ID。如果在初始化之后调用,则会收集 App Set ID,但不会在请求负载中发送。仅限 Android。
validateAndLogInAppPurchaseV2 API 用于应用内购买 V2 的服务端验证。如果验证成功,系统会自动记录包含相关值的 af_purchase 事件。

示例

initSDK()

使用此方法初始化并启动 AppsFlyer SDK。App 一启动就应调用此 API。

import { AppsFlyer } from '@capgo/capacitor-appsflyer';

const result = await AppsFlyer.initSDK({
  devKey: 'dev-key-123',
  appID: 'app-id-123',
});
console.log(result);

startSDK()

仅在手动启动模式下,使用此方法启动 AppsFlyer SDK。

import { AppsFlyer } from '@capgo/capacitor-appsflyer';

const result = await AppsFlyer.startSDK();
console.log(result);

logEvent()

记录一个 App 内事件。

import { AppsFlyer } from '@capgo/capacitor-appsflyer';

const result = await AppsFlyer.logEvent({ eventName: 'event' });
console.log(result);

setCustomerUserId()

设置你自己的 customer ID 后,就能把自有唯一 ID 与 AppsFlyer 的唯一 ID 及其他设备的 ID 交叉对照。该 ID 会出现在原始数据报告和 Postback API 中,方便与你的内部 ID 关联。

import { AppsFlyer } from '@capgo/capacitor-appsflyer';

await AppsFlyer.setCustomerUserId({ cuid: 'cuid' });

setCurrencyCode()

设置应用内购买使用的货币。货币 code 应为 3 个字符的 ISO 4217 code。

import { AppsFlyer } from '@capgo/capacitor-appsflyer';

await AppsFlyer.setCurrencyCode({ currencyCode: 'USD' });

updateServerUninstallToken()

(Android) 支持将第三方插件收集的 GCM/FCM Tokens 传给 AppsFlyer 服务端,可用于卸载日志。(iOS) 支持将第三方插件收集的 APN Tokens 传给 AppsFlyer 服务端,可用于记录卸载日志。

import { AppsFlyer } from '@capgo/capacitor-appsflyer';

await AppsFlyer.updateServerUninstallToken({ token: 'token-123' });

上表列出了 44 个核心方法。监听器和版本辅助方法,以及每个方法的完整接口约定,都记录在 GitHub 仓库.

监听事件

addListener 会返回一个句柄。调用 handle.remove() 当屏幕卸载时。

完整参考文档

继续阅读 使用 @capgo/capacitor-appsflyer

如果你正在使用 使用 @capgo/capacitor-appsflyer 要规划原生插件工作,请将其与 @capgo/capacitor-appsflyer 了解 @capgo/capacitor-appsflyer 中的实现细节, 快速入门 有关“入门指南”中的实现细节, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 有关 Capgo 开发的 Capacitor 插件的实现细节,以及 添加或更新插件 有关添加或更新插件的实现细节。

常见问题

AppsFlyer 插件常见问题

如何在 Capacitor 应用中安装 AppsFlyer 插件?

运行 "bun add @capgo/capacitor-appsflyer"(或 "npm install @capgo/capacitor-appsflyer"),然后运行 "bunx cap sync",使 iOS 和 Android 项目同步原生 code。最后在你的应用 code 中从 "@capgo/capacitor-appsflyer" 导入即可。

¿@capgo/capacitor-appsflyer 是否支持 React、Vue 和 Angular?

是的。AppsFlyer 是一个 Capacitor 包,因此它支持任何在 Capacitor 中运行的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 以及原生 JavaScript。

@capgo/capacitor-appsflyer 支持哪个版本的 Capacitor?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-appsflyer 是免费开源的吗?

是的。code 的源码已在 GitHub 公开,地址为 https://github.com/Cap-go/capacitor-appsflyer/,您也可以直接从 npm 免费安装。欢迎提交 Bug 反馈和 Pull Request。

我可以在无需经过 App Store 审核的情况下,更新使用 AppsFlyer 的 code 吗?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待应用审核,即可发布 AppsFlyer 变更

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo