Flutter应用性能追踪插件appsflyer_sdk的使用

发布于 1周前 作者 itying888 来自 Flutter

Flutter应用性能追踪插件appsflyer_sdk的使用

概述

Appsflyer Logo

pub package Coverage

为了提供最佳支持,如果您遇到任何问题,请发送邮件至support@appsflyer.com,并请务必提供您的AppsFlyer注册(账户)邮箱、应用ID、复现步骤、日志、代码片段以及任何其他相关信息。

适用平台

  • Android AppsFlyer SDK v6.15.2
  • iOS AppsFlyer SDK v6.15.3

重要更新与变更

从版本 6.x.x 开始,有以下重大变更:

  • API变更

    • trackEvent -> logEvent
    • stopTracking -> stop
    • validateAndTrackInAppPurchase -> validateAndLogInAppPurchase
    • validateAndLogInAppPurchase -> validateAndLogInAppIosPurchase / validateAndLogInAppAndroidPurchase
  • 移除和废弃API

    • setPushNotification 在iOS上不再工作,改用 sendPushNotificationData
    • 移除了 enableLocationCollection
    • setSharingFiltersetSharingFilterForAllPartners 已被废弃,改用 setSharingFilterForPartners
  • 回调机制

    • ConversionDataOnAppOpenAttribution 改为基于回调而非流
  • 权限管理

    • Android API 33及以上需要声明 com.google.android.gms.permission.AD_ID 权限来收集广告ID。如果您的应用面向儿童用户,则需要撤销此权限以符合Google的数据政策。

使用指南

添加SDK到项目

参考官方文档 Adding the SDK to your project

初始化SDK

初始化是使用AppsFlyer的第一步,详情见 Initializing the SDK

记录应用内事件

通过记录用户行为事件来分析应用表现,详见 In-app Events

深度链接处理

实现跨平台深度链接功能,参阅 Deep Linking

高级API

探索更多高级特性,如推送通知、用户属性等,查阅 Advanced APIs

测试集成

确保正确配置后进行充分测试,指导文档在 Testing the integration

API列表

完整API列表及说明可查看 APIs

示例程序

您可以参考官方提供的示例应用程序,了解如何实际应用这些功能:Sample App

示例代码

下面是一个简单的Flutter项目结构,展示了如何集成和使用appsflyer_sdk:

import 'dart:async';
import 'package:appsflyer_sdk/appsflyer_sdk.dart';
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

Future<void> main() async {
  await dotenv.load(fileName: '.env');
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final AppsFlyerOptions appsFlyerOptions = AppsFlyerOptions(
    devKey: 'YOUR_DEV_KEY',
    appId: 'YOUR_APP_ID',
    isDebug: true,
  );

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MainPage(),
    );
  }
}

class MainPage extends StatefulWidget {
  @override
  _MainPageState createState() => _MainPageState();
}

class _MainPageState extends State<MainPage> {
  AppsFlyerSdk? appsFlyerSdk;

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    appsFlyerSdk = AppsFlyerSdk(widget.appsFlyerOptions);

    try {
      await appsFlyerSdk!.initSdk(
        registerConversionDataCallback: (data) {
          print("onInstallConversionData: $data");
        },
        registerOnAppOpenAttributionCallback: (data) {
          print("onAppOpenAttribution: $data");
        },
      );
    } catch (e) {
      print("Error initializing SDK: $e");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Appsflyer Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            try {
              final response = await appsFlyerSdk!.logEvent(AFInAppEventType.purchase, {
                'af_price': '10.99',
                'af_currency': 'USD',
                'af_content_id': 'content_123',
              });
              print('Event logged successfully: $response');
            } catch (e) {
              print('Failed to log event: $e');
            }
          },
          child: Text('Log Purchase Event'),
        ),
      ),
    );
  }
}

在这个例子中,我们首先加载环境变量文件.env中的配置信息,然后创建一个包含必要参数的AppsFlyerOptions对象,并在应用启动时初始化SDK。此外,还定义了一个按钮用于触发模拟的应用内购买事件记录操作。这只是一个基础示例,具体实现可能根据您的需求有所不同。


更多关于Flutter应用性能追踪插件appsflyer_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用性能追踪插件appsflyer_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter应用中集成AppsFlyer SDK以进行性能追踪是一项关键任务,它可以帮助你深入分析用户行为和广告效果。以下是一个如何在Flutter项目中集成和使用AppsFlyer SDK的示例代码案例。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加appsflyer_sdk依赖。确保你的Flutter环境已经配置好,并且项目结构正确。

dependencies:
  flutter:
    sdk: flutter
  appsflyer_sdk: ^x.y.z  # 请替换为最新版本号

运行flutter pub get来安装依赖。

2. 配置AppsFlyer SDK

android/app/src/main/AndroidManifest.xml中添加必要的权限和AppsFlyer的配置。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <!-- 添加必要的权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!-- AppsFlyer配置 -->
    <meta-data
        android:name="com.appsflyer.AFDevKey"
        android:value="YOUR_APPSFLYER_DEV_KEY" />
    <meta-data
        android:name="com.appsflyer.AFAppID"
        android:value="@string/appsflyer_app_id" /> <!-- 你可以在strings.xml中定义这个值 -->

    <!-- 其他配置 -->
    ...
</manifest>

android/app/src/main/res/values/strings.xml中添加AppsFlyer的App ID。

<resources>
    <string name="appsflyer_app_id">YOUR_APPSFLYER_APP_ID</string>
</resources>

对于iOS,你需要在ios/Runner/Info.plist中添加AppsFlyer的配置。

<key>AppsFlyerDevKey</key>
<string>YOUR_APPSFLYER_DEV_KEY</string>
<key>AppsFlyerAppID</key>
<string>YOUR_APPSFLYER_APP_ID</string>

3. 初始化AppsFlyer SDK

在你的Flutter应用的入口文件(通常是main.dart)中初始化AppsFlyer SDK。

import 'package:flutter/material.dart';
import 'package:appsflyer_sdk/appsflyer_sdk.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化AppsFlyer SDK
  AppsFlyerSdk.instance.initSdk(
    appId: 'YOUR_APPSFLYER_APP_ID',
    devKey: 'YOUR_APPSFLYER_DEV_KEY',
    onInitSuccess: (Map<String, dynamic> result) {
      print('AppsFlyer initialized successfully: $result');
    },
    onInitFailure: (String errorMessage) {
      print('AppsFlyer initialization failed: $errorMessage');
    },
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('AppsFlyer SDK Example'),
        ),
        body: Center(
          child: Text('Check the console for AppsFlyer initialization status.'),
        ),
      ),
    );
  }
}

4. 记录事件

一旦AppsFlyer SDK初始化成功,你就可以记录各种事件,如应用启动、用户注册、购买等。

void _trackEvent() {
  AppsFlyerSdk.instance.trackEvent(
    eventName: 'user_registration',
    eventValues: {
      'user_id': '12345',
      'registration_source': 'email',
    },
  );
}

你可以在合适的地方调用_trackEvent函数,例如在用户注册成功后。

5. 获取归因数据

你还可以获取归因数据来分析用户来源。

void _getAttributionData() async {
  try {
    Map<String, dynamic> attributionData = await AppsFlyerSdk.instance.getAttributionData();
    print('Attribution Data: $attributionData');
  } catch (e) {
    print('Failed to get attribution data: $e');
  }
}

你可以在应用启动或用户登录时调用_getAttributionData函数来获取归因数据。

总结

以上代码展示了如何在Flutter应用中集成和使用AppsFlyer SDK进行性能追踪。请确保替换YOUR_APPSFLYER_DEV_KEYYOUR_APPSFLYER_APP_ID为你的实际值,并根据你的需求调整事件跟踪和归因数据获取的逻辑。

回到顶部