Flutter音频受众分析插件mbaudience的使用

Flutter音频受众分析插件MBAudience的使用

MBAudience 是一个用于 MBurger 的插件库,允许您跟踪用户数据和行为,并针对特定用户或用户群发送消息。通常与 MBMessages 插件一起使用,以便能够向目标用户发送推送通知。

安装

首先,在 pubspec.yaml 文件中添加以下依赖项:

dependencies:
  mbaudience: ^2.0.0

然后运行以下命令来安装包:

$ flutter pub get

初始化

要初始化 SDK,需要将 MBAudience 添加到 MBManager 的插件数组中:

MBManager.shared.apiToken = 'YOUR_API_TOKEN';
MBManager.shared.plugins = [MBAudience()];

跟踪的数据

以下是 MBAudience SDK 跟踪的所有数据,您可以从 MBurger 仪表板中查看这些数据。大多数数据会自动跟踪,但有些数据需要进行一些设置。

示例数据

  • app_version: 当前应用程序版本,通过 package_info 包获取 (packageInfo.version)。
  • locale: 设备的语言环境,值由 Platform.localeName 提供。
  • sessions: 用户打开应用的次数,每次启动时递增。
  • sessions_time: 用户在应用中的总时间,当应用进入后台时暂停,重新激活时恢复。
  • last_session: 上次会话的开始日期。
  • push_enabled: 是否启用了推送通知,通过 permission_handler 包确定:Permission.notification.status
  • location_enabled: 用户是否授予了位置权限,通过 permission_handler 包确定:Permission.location.status
  • mobile_user_id: 当前登录 MBurger 的用户 ID。
  • custom_id: 自定义 ID,可用于进一步过滤。
  • tags: 标签数组。
  • latitude, longitude: 最近访问地点的纬度和经度。

设置标签

您可以为用户/设备设置标签(例如,如果用户执行了某个操作,则设置一个标签),以便稍后可以针对这些用户进行定位。

设置标签:

MBAudience.setTag(tag: 'TAG', value: 'VALUE');

移除标签:

MBAudience.removeTag('TAG');

设置自定义ID

为了跨不同平台跟踪/定位用户,可以设置一个自定义ID。

设置自定义ID:

MBAudience.setCustomId('CUSTOM_ID');

移除自定义ID:

MBAudience.removeCustomId();

获取当前保存的自定义ID:

String customId = await MBAudience.getCustomId();

移动用户ID

这是当前登录 MBurger 使用 MBAuth 的用户的ID。目前移动用户ID不会在用户登录或注销时自动发送。未来会实现此功能,但目前您必须在用户完成登录流程时手动设置并在用户注销时手动移除。

设置移动用户ID:

MBAudience.setMobileUserId(1);

移除移动用户ID:

MBAudience.removeMobileUserId();

获取当前保存的移动用户ID:

int mobileUserId = await MBAudience.getMobileUserId();

位置数据

MBAudience 允许根据用户的位置跟踪和定位用户。只有当位置距离上次看到的位置至少100米时,才会将位置信息发送给 MBurger。

开始监控位置变化:

MBAudience.startLocationUpdates();

停止监控位置变化:

MBAudience.stopLocationUpdates();

如果您希望实现自己的位置逻辑,可以随时告诉 MBAudience 位置数据:

MBAudience.setCurrentLocation(latitude, longitude);

示例代码

以下是一个完整的示例 demo,展示了如何使用 MBAudience 插件:

import 'package:flutter/material.dart';
import 'package:mbaudience/mbaudience.dart';
import 'package:mburger/mburger.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    // 初始化 SDK
    MBManager.shared.apiToken = 'YOUR_API_TOKEN';
    MBManager.shared.plugins = [MBAudience()];
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('MBAudience example app'),
        ),
        body: Center(
          child: Column(
            children: [
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: TextButton(
                  onPressed: () => _setTag(),
                  child: const Text('Set tag'),
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: TextButton(
                  onPressed: () => _setCustomId(),
                  child: const Text('Set custom id'),
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: TextButton(
                  onPressed: () => _startLocationUpdates(),
                  child: const Text('Start location updates'),
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: TextButton(
                  onPressed: () => _stopLocationUpdates(),
                  child: const Text('Stop location updates'),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }

  void _setTag() {
    MBAudience.setTag(tag: 'Tag', value: 'Value');
  }

  void _setCustomId() {
    MBAudience.setCustomId('CUSTOM_ID');
  }

  void _startLocationUpdates() {
    MBAudience.startLocationUpdates();
  }

  void _stopLocationUpdates() {
    MBAudience.stopLocationUpdates();
  }
}

更多关于Flutter音频受众分析插件mbaudience的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter音频受众分析插件mbaudience的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用mbaudience插件进行音频受众分析的代码案例。mbaudience是一个用于音频受众分析的Flutter插件,但请注意,实际使用时可能需要根据具体需求进行调整,并且确保你已经获取了必要的API密钥或其他配置信息。

首先,确保你已经在pubspec.yaml文件中添加了mbaudience依赖:

dependencies:
  flutter:
    sdk: flutter
  mbaudience: ^最新版本号  # 请替换为实际的最新版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以按照以下步骤初始化并使用mbaudience插件进行音频受众分析:

  1. 初始化插件

在你的应用的主入口文件(通常是main.dart)中,初始化mbaudience插件。

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

void main() {
  // 初始化MBAudience插件
  MBAudience.initialize(
    apiKey: '你的API密钥',  // 替换为你的实际API密钥
    onInitializationComplete: (success) {
      if (success) {
        print('MBAudience 初始化成功');
      } else {
        print('MBAudience 初始化失败');
      }
    },
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Audio Audience Analysis',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}
  1. 播放音频并监控受众行为

在你的主页面或其他合适的组件中,播放音频并使用mbaudience插件来监控受众行为。

import 'package:flutter/material.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:mbaudience/mbaudience.dart';

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final AudioPlayer _audioPlayer = AudioPlayer();

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

    // 播放音频文件
    _audioPlayer.play('你的音频文件URL');

    // 监控音频播放事件(例如,播放开始、暂停、停止等)
    _audioPlayer.onPlayerStateChanged.listen((event) {
      if (event == AudioPlayerState.PLAYING) {
        MBAudience.trackEvent(eventName: 'audio_started_playing');
      } else if (event == AudioPlayerState.PAUSED) {
        MBAudience.trackEvent(eventName: 'audio_paused');
      } else if (event == AudioPlayerState.STOPPED || event == AudioPlayerState.COMPLETED) {
        MBAudience.trackEvent(eventName: 'audio_stopped');
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Audio Audience Analysis'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () {
                _audioPlayer.play('你的音频文件URL');
              },
              child: Text('播放音频'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                _audioPlayer.pause();
              },
              child: Text('暂停音频'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                _audioPlayer.stop();
              },
              child: Text('停止音频'),
            ),
          ],
        ),
      ),
    );
  }

  @override
  void dispose() {
    _audioPlayer.dispose();
    super.dispose();
  }
}

在上面的代码中,我们使用了audioplayers插件来播放音频,并通过监听AudioPlayer的状态变化来触发MBAudience的事件跟踪。

请注意,MBAudience.trackEvent方法用于跟踪自定义事件,你可以根据需要调整事件名称和参数。同时,确保你已经正确配置了MBAudience的初始化参数,包括API密钥等。

这个示例代码展示了如何在Flutter应用中使用mbaudience插件进行基本的音频受众分析。根据你的具体需求,你可能需要扩展和自定义这些功能。

回到顶部