Flutter广告追踪与分析插件adtrace_sdk_flutter的使用
Flutter广告追踪与分析插件adtrace_sdk_flutter的使用
概述
adtrace_sdk_flutter
是 AdTrace 提供的用于 Flutter 应用的广告追踪和分析插件。本文将介绍如何在 Flutter 项目中集成并使用该插件。
快速入门
添加 SDK 到项目
首先,在 pubspec.yaml
文件中添加 adtrace_sdk_flutter
依赖:
dependencies:
adtrace_sdk_flutter: ^1.5.0
然后运行以下命令安装依赖:
flutter packages get
Android 配置
添加 Google Play Services
在 Android 的 build.gradle
文件中添加以下依赖:
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
添加权限
在 AndroidManifest.xml
中添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <!-- 如果不针对 Google Play Store -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/> <!-- 对于 Android 12 及以上版本 -->
Proguard 设置
如果使用 Proguard,需要添加以下规则:
-keep class io.adtrace.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.** { *; }
iOS 配置
确保链接以下框架:
iAd.framework
AdServices.framework
AdSupport.framework
CoreTelephony.framework
StoreKit.framework
AppTrackingTransparency.framework
这些框架可以在 Xcode 的 Project Settings → Build Phases → Link Binary With Libraries 中设置为可选。
集成 SDK 到应用
基本设置
在 Flutter 应用启动时初始化 AdTrace SDK:
import 'package:adtrace_sdk_flutter/adtrace.dart';
import 'package:adtrace_sdk_flutter/adtrace_config.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
initPlatformState();
}
void initPlatformState() {
AdTraceConfig config = AdTraceConfig('YourAppToken', AdTraceEnvironment.sandbox);
config.logLevel = AdTraceLogLevel.verbose;
AdTrace.start(config);
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
switch (state) {
case AppLifecycleState.resumed:
AdTrace.onResume();
break;
case AppLifecycleState.paused:
AdTrace.onPause();
break;
default:
break;
}
}
}
事件跟踪
可以使用 AdTrace 来跟踪用户在应用中的行为。例如,跟踪按钮点击事件:
import 'package:adtrace_sdk_flutter/adtrace_event.dart';
void trackButtonClickedEvent() {
AdTraceEvent event = AdTraceEvent('abc123');
AdTrace.trackEvent(event);
}
跟踪收入
如果用户通过点击广告或进行应用内购买产生收入,可以这样跟踪:
void trackRevenueEvent() {
AdTraceEvent event = AdTraceEvent('abc123');
event.setRevenue(6, 'Toman');
AdTrace.trackEvent(event);
}
自定义参数
可以通过回调参数和会话参数来传递自定义数据:
// 回调参数
event.addCallbackParameter('key', 'value');
// 会话参数
AdTrace.addSessionCallbackParameter('scp_foo_1', 'scp_bar');
示例 Demo
以下是一个完整的示例代码,展示了如何在 Flutter 应用中集成和使用 adtrace_sdk_flutter
插件:
import 'package:flutter/material.dart';
import 'package:adtrace_sdk_flutter/adtrace.dart';
import 'package:adtrace_sdk_flutter/adtrace_config.dart';
import 'package:adtrace_sdk_flutter/adtrace_event.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
initPlatformState();
}
void initPlatformState() {
AdTraceConfig config = AdTraceConfig('YourAppToken', AdTraceEnvironment.sandbox);
config.logLevel = AdTraceLogLevel.verbose;
AdTrace.start(config);
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
switch (state) {
case AppLifecycleState.resumed:
AdTrace.onResume();
break;
case AppLifecycleState.paused:
AdTrace.onPause();
break;
default:
break;
}
}
void trackSimpleEvent() {
AdTraceEvent event = AdTraceEvent('abc123');
AdTrace.trackEvent(event);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('AdTrace Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: trackSimpleEvent,
child: Text('Track Simple Event'),
),
],
),
),
);
}
}
结论
通过上述步骤,您可以在 Flutter 应用中成功集成和使用 adtrace_sdk_flutter
插件来进行广告追踪和分析。请根据您的具体需求调整配置和功能。更多详细信息,请参考 AdTrace 官方文档。
更多关于Flutter广告追踪与分析插件adtrace_sdk_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告追踪与分析插件adtrace_sdk_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成和使用adtrace_sdk_flutter
插件进行广告追踪与分析的代码示例。
1. 添加依赖
首先,在你的pubspec.yaml
文件中添加adtrace_sdk_flutter
依赖:
dependencies:
flutter:
sdk: flutter
adtrace_sdk_flutter: ^x.y.z # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
2. 配置AdTrace
在你的Flutter项目的入口文件(通常是main.dart
)中,配置AdTrace SDK。
import 'package:flutter/material.dart';
import 'package:adtrace_sdk_flutter/adtrace_sdk_flutter.dart';
void main() {
// AdTrace配置参数
const String appToken = 'your_app_token_here'; // 替换为你的AdTrace应用令牌
const String environment = AdTraceEnvironment.sandbox; // 或者 AdTraceEnvironment.production
const bool logLevel = AdTraceLogLevel.verbose; // 可选:设置日志级别
// 初始化AdTrace SDK
AdTraceConfig config = AdTraceConfig(
appToken: appToken,
environment: environment,
logLevel: logLevel,
);
AdTrace adtrace = AdTrace();
adtrace.start(config);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('AdTrace Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'追踪广告点击事件',
),
ElevatedButton(
onPressed: () {
// 发送广告点击事件
_trackAdClickEvent();
},
child: Text('发送广告点击事件'),
),
],
),
),
);
}
void _trackAdClickEvent() {
AdTraceEvent adClickEvent = AdTraceEvent(
eventName: 'ad_click',
eventParameters: <String, dynamic>{
'ad_network': 'example_network',
'ad_campaign': 'example_campaign',
'ad_slot': 'example_slot',
},
);
AdTrace.getInstance().trackEvent(adClickEvent);
}
}
3. 处理延迟启动场景(可选)
如果你的应用支持延迟启动(例如,通过后台消息启动),你可能需要在应用启动时手动调用AdTrace.getInstance().onResume()
和AdTrace.getInstance().onPause()
。
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(LifecycleEventObserver());
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(LifecycleEventObserver());
super.dispose();
}
class LifecycleEventObserver extends StatefulWidgetObserver {
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
final AdTrace adtrace = AdTrace.getInstance();
if (state == AppLifecycleState.resumed) {
adtrace.onResume();
} else if (state == AppLifecycleState.paused) {
adtrace.onPause();
}
}
}
4. 注意事项
- 请确保你已经替换了
your_app_token_here
为你的实际AdTrace应用令牌。 - 根据你的需求,你可以发送不同类型的事件,如安装、会话开始、应用内购买等,只需创建相应的
AdTraceEvent
对象并调用trackEvent
方法。 - 测试时,请先在沙箱环境中进行,确保一切正常工作后再切换到生产环境。
通过上述步骤,你应该能够在Flutter项目中成功集成并使用adtrace_sdk_flutter
插件进行广告追踪与分析。