adjust-icon

Flutter SDK 集成指南

通过 Adjust Flutter SDK,您可以在 Flutter 应用中监测归因、事件以及更多信息。请按照本指南中说明的步骤操作,在应用内设置 Adjust SDK。您还可以在 GitHub 上查看示例应用。

1. 添加 SDK 至您的项目

要在您的 Flutter 应用中使用 Adjust Flutter SDK,请先将 SDK 加入项目。

如需将 Adjust SDK 集成到您的 Flutter 项目中,请按照以下步骤操作:

  1. 添加下列行至您的 pubspec.yaml 文件:
pubspec.yaml
dependencies:
adjust_sdk: ^$FLUTTER_VERSION
  1. 找到您的项目并运行以下指令。编辑 pubspec.yaml 文件后,Visual Studio 会自动运行该命令。
Terminal window
$ flutter packages get

2. 设置安卓设备

添加 Google Play 服务

针对 Google Play 商店的应用必须使用 Google 广告 ID (gps_adid) 来识别设备。为此,请将以下依赖加入build.gradle 文件的 dependencies 部分。

build.gradle
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'

添加权限

Adjust SDK 需要下列权限。(如尚未添加) 请将其添加至您的 AndroidManifest.xml 文件中:

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
于 v4.32.0 中变更

从 Adjust SDK 4.32.0 及以上版本默认包含 com.google.android.gms.AD_ID 权限。如果您的应用需要符合 COPPA 的要求或不针对 Google Play 商店,则可以通过添加 remove 指令将其删除。

AndroidManifest.xml
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

设置 Proguard

如果您使用的是 Proguard,请将这些规则添加至您的自定义 Proguard 文件

proguard.pro
-keep public class com.adjust.sdk.** { *; }
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
java.lang.String getId();
boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.** { *; }

如果您的发布目标非 Google Play 商店,请向 Proguard 文件添加下列规则:

proguard.pro
-keep public class com.adjust.sdk.** { *; }

设置 Install Referrer

Install Referrer 是一种唯一标识符,可用来将应用安装归因至来源。Adjust SDK 需要该信息进行归因。您可以用下列 3 种方法收集 install referrer:

Google Play Referrer API

要支持 Google Play Referrer API,请将下列行添加进您的 build.gradle 文件

build.gradle
implementation 'com.android.installreferrer:installreferrer:2.2'

如果您使用的是 Proguard,请务必将下列设置加入您的 Proguard 文件:

proguard.pro
-keep public class com.android.installreferrer.** { *; }

华为 Referrer API

于 v4.22.0 中添加

从版本 v4.22.0 开始,Adjust SDK 将支持对装有华为 App Gallery 10.4 或更新版本的设备进行安装记录。您无需其他调整和变更,就可以开始使用华为 Referrer API。

Meta referrer 集成

于 v4.36.0 中添加

Adjust SDK v4.36.0 及更高版本支持Meta Install Referrer。要启用该功能:

  1. 应用控制面板中找到您的 Meta app ID。更多信息,请参考 Meta 的应用控制面板文档

  2. AdjustConfig实例上将您的 App ID 指定至fbAppId属性。

    AdjustConfig config = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
    config.fbAppId = "<fb_app_id_string>";

3. 添加 iOS 框架

在应用中添加特定 iOS 框架后,Adjust SDK 就能获取额外信息。这些框架可以支持特定 SDK 功能,但即便没有这些框架,SDK 也能正常工作。您可以添加这些框架,然后在 Project Settings -> Build Phases -> Link Binary With Libraries 下将其设置为可选。

框架描述注意事项
AdSupport.framework允许读取设备 IDFA。对于操作系统为 iOS 14 及更早版本的设备,添加该框架也会允许读取 LAT 信息。如果您的应用属于 “儿童” 类别,那么请勿添加该框架
AdServices.framework处理 Apple Search Ads 归因
StoreKit.framework允许访问 SKAdNetwork 框架若要允许 Adjust 处理 iOS 14 或更新操作版本设备上与 SKAdNetwork 的通讯,那么必须添加该框架。
AppTrackingTransparency.framework若要允许 Adjust SDK 包装用户 ATT 许可对话,并读取 iOS 14 或更新操作版本设备的许可响应,那么必须添加该框架。如果您的应用属于 “儿童” 类别,那么请勿添加该框架

4. 初始化 Adjust SDK

请确保在 Flutter 应用中尽快初始化 Adjust SDK。要进行 SDK 初始化,请使用应用识别码及您希望应用运行的环境来初始化 config 对象。

AdjustConfig config = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
Adjust.start(config);

5. 设置会话记录

您需要设置会话记录,SDK 才能向 Adjust 服务器传送会话信息。

如需设置安卓设备的会话记录,请在应用于前台运行时调用 Adjust.onResume() 方法,当应用不在前台运行时,请调用 Adjust.onPause() 方法。您可以对此进行全局设置或按照每个小组件进行设置。

class AdjustExampleApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Adjust Flutter Example App',
home: new MainScreen(),
);
}
}
class MainScreen extends StatefulWidget {
@override
State createState() => new MainScreenState();
}
class MainScreenState extends State<mainscreen> with WidgetsBindingObserver {
@override
initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
initPlatformState(); // <-- Initialise SDK in here.
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
switch (state) {
case AppLifecycleState.inactive:
break;
case AppLifecycleState.resumed:
Adjust.onResume();
break;
case AppLifecycleState.paused:
Adjust.onPause();
break;
case AppLifecycleState.suspending:
break;
}
}
}

6. 创建您的应用

很棒!您现在可以创建并运行 Flutter 应用了。请启用日志,检查可能存在的问题。请查看日志中的 Install tracked 信息。

您现在已经准备就绪,可以使用 Adjust SDK 进行用户归因了。

7. 添加 Adjust SDK 签名

Adjust SDK 签名可以用来签署 Adjust SDK 发送的所有通讯。这样,Adjust 的服务器就能轻松甄别、拒绝任何非法安装活动。

要开始使用 Adjust SDK 签名,请联系您的技术客户经理,或发送邮件至 support@adjust.com

8. 测试集成

采用 Adjust SDK 提供的工具,您可以测试并排除集成出现的问题。要测试集成,请按照下列步骤操作:

  • 将您的环境设为 AdjustEnvironment.sandbox
  • 在 Adjust 控制面板结果中添加 sandbox 过滤器。
  • 将日志级别设为 AdjustLogLevel.verbose

测试 Google Play 服务集成

要测试 Adjust SDK 能否接收设备的 Google 广告 ID,请将日志级别设为 AdjustLogLevel.verbose,环境设为 AdjustEnvironment.sandbox。启动应用,监测一次会话或事件。如果 SDK 记录了 gps_adid (Google Play 服务广告主 ID) 参数,就说明已经成功读取广告 ID。

如果您在获取 Google 广告 ID 时遇到任何问题,请在我们的 SDK GitHub 库中提问,或联系 support@adjust.com