Flutter互动功能增强插件engage的使用

Flutter互动功能增强插件engage的使用

Engage是一款帮助你通过电子邮件、短信和应用内消息传递个性化客户信息和营销自动化的工具。该Flutter插件使你可以轻松地识别用户、同步用户数据(属性、事件和设备令牌)到Engage仪表板,并向设备发送应用内消息。

功能

  • 识别用户
  • 更新用户属性
  • 跟踪用户事件
  • 跟踪设备令牌

开始使用

  1. Engage官网创建一个Engage账户并设置账户以获取你的公共API密钥。
  2. 了解如何将用户数据连接到Engage。
  3. 将Engage Flutter插件添加到你的项目中。
    flutter pub add engage
    

初始化插件

首先,导入package:engage/engage.dart并初始化插件。

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

void main() async {
  // 在初始化Engage插件之前运行此代码
  WidgetsFlutterBinding.ensureInitialized();
  // 初始化插件
  await Engage.init('your_public_key_here');
  
  runApp(MyApp());
}

识别用户和更新属性

插件使用用户的唯一标识符(通常是用户表中的id字段)来更新用户属性、跟踪事件和其他用户相关操作。以下是如何更新一组用户属性的示例代码:

Engage.addAttributes('uniqueUserId', {
  'plan': 'Pro'
});

addAttributes方法会在用户资料中添加属性(如果不存在)或更新已存在的属性。你应该在应用中用户属性更新的地方调用此方法。例如,在成功登录后添加last_login日期属性,你需要在代码中调用addAttributes

void logIn() async {
  // ...
  Engage.addAttributes('user_id_1234', {
    'last_login': DateTime.now()
  });
}

为了更好地识别用户(而不仅仅是ID),我们建议你跟踪一些额外的用户属性。这可以是任何东西,取决于你在产品中请求的用户属性。例如:locationgenderplan。这些是我们已经在Engage中标准化的一些属性:first_namelast_nameemailnumber(用户电话号码)、tz(用户时区)。我们称它们为标准属性。但是,记住你可以跟踪其他非标准属性。

你只需要跟踪一次属性,除非它们发生变化并使用addAttributes方法更新它们。我们称之为“识别”用户。

// 这会将用户ID user_id_1234映射到Opeyemi O.
Engage.identify('user_id_1234', {
  'first_name': 'Opeyemi',
  'last_name': 'O.'
});

我们建议你在两个地方执行此操作:

  1. 登录后 - 这有助于识别已经向Engage发送数据但尚未被识别的老用户。
  2. 注册时 - 这有助于识别新用户。

默认情况下,Engage将新识别用户的注册日期设置为当前时间戳。可以通过created_at参数更改此设置。

Engage.identify('user_id_1234', {
  'first_name': 'Opeyemi',
  'last_name': 'O.',
  'created_at': '2021-09-14'
});

匿名ID

有时,你想在识别用户之前跟踪用户事件。例如,用户可能下载了你的应用并探索了一些可用的功能,然后才注册并获得一个唯一的ID。我们称这种用户为匿名用户。你可以使用任何随机ID(我们称为匿名ID)来为匿名用户跟踪事件,并在识别时将其与实际用户合并。

如果需要在用户识别前跟踪事件:

// 导入 'package:uuid/uuid.dart';

// 生成一个随机唯一ID
var anonId = uuid.v4();
Engage.trackEvents(anonId, 'Launched app');
// ... 在其他地方,使用相同的ID
Engage.trackEvents(anonId, 'Opened gallery');

一旦用户被识别:

void logIn() async {
  // ...
  // User user = User.fromJson(result);
  // 将匿名ID与已识别用户合并
  Engage.merge(anonId, user.id);
}

跟踪事件

要跟踪用户事件,使用trackEvents方法。以下是其最基本的形式:

Engage.trackEvents('user_id_1234', 'Sign up');

事件可以有值:

Engage.trackEvents('user_id_1234', 'Paid', 35);
Engage.trackEvents('user_id_1234', 'Clicked', 'pro_course_3');

或者具有属性:

Engage.trackEvents('user_id_1234', 'Transfer', {
  'to': 'user_id_6789',
  'amount': 345.50,
  'deliver_on': DateTime.now()
});

默认情况下,事件的时间戳由当前时间戳标记。要使用自定义日期,可以添加日期参数。

Engage.trackEvents('user_id_1234', 'Sign up', DateTime.now());

推送通知和设置设备令牌

最后,要使用Engage进行推送通知,我们需要你将用户的设备令牌添加到他们的个人资料中。要将此信息发送给Engage,获取令牌并调用setDeviceToken方法。(你需要安装并配置Firebase才能获取设备令牌)。我们建议你在每次应用程序启动时调用setDeviceToken,这样如果设备令牌发生任何意外变化,它将在Engage上得到更新。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Engage.init('your_public_key_here');
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform
  );
  FirebaseMessaging.instance
    .getToken()
    .then((String? token) {
      if (token != null) {
        Engage.setDeviceToken('user_id_1334', token);
      }
    });
  runApp(MyApp());
}

要从用户的个人资料中删除设备令牌,使用logout方法。你应该在用户注销应用程序时执行此操作,以便他们在未登录时不会继续收到推送通知。

Engage.logout()

logout方法不带任何参数假定之前已经调用了setDeviceToken方法。如果没有,则可以传递用户的ID和设备令牌到方法。

Engage.logout('user_id_1334', token)

更多关于Flutter互动功能增强插件engage的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter互动功能增强插件engage的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


engage 是一个用于增强 Flutter 应用互动功能的插件,它可以帮助开发者轻松实现用户互动、反馈收集、用户行为分析等功能。以下是如何使用 engage 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 engage 插件的依赖项:

dependencies:
  flutter:
    sdk: flutter
  engage: ^1.0.0  # 请根据实际版本号填写

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

2. 初始化 engage

在你的 Flutter 应用中初始化 engage 插件。通常可以在 main.dart 文件中进行初始化:

import 'package:engage/engage.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 engage
  await Engage.initialize(
    apiKey: 'YOUR_API_KEY',  // 替换为你的 API Key
    appId: 'YOUR_APP_ID',    // 替换为你的 App ID
  );

  runApp(MyApp());
}

3. 使用 engage 功能

engage 提供了多种功能来增强用户互动,以下是一些常见的使用示例:

3.1 用户反馈

你可以使用 engage 来收集用户反馈:

import 'package:engage/engage.dart';

void showFeedbackDialog() {
  Engage.showFeedbackDialog(
    context: context,
    title: '请告诉我们您的想法',
    hintText: '请描述您的体验...',
    onFeedbackSubmitted: (feedback) {
      print('用户反馈: $feedback');
      // 处理用户反馈
    },
  );
}

3.2 用户行为追踪

你可以使用 engage 来追踪用户行为,例如按钮点击、页面浏览等:

import 'package:engage/engage.dart';

void trackUserAction() {
  Engage.trackEvent(
    eventName: 'button_click',
    properties: {
      'button_id': 'submit_button',
      'timestamp': DateTime.now().toString(),
    },
  );
}

3.3 用户属性设置

你可以设置用户属性,以便更好地分析用户行为:

import 'package:engage/engage.dart';

void setUserAttributes() {
  Engage.setUserAttributes(
    attributes: {
      'name': 'John Doe',
      'email': 'john.doe@example.com',
      'age': 30,
    },
  );
}

4. 高级功能

engage 还提供了一些高级功能,例如 A/B 测试、推送通知等。你可以根据项目需求进行集成和使用。

5. 调试与日志

在开发过程中,你可以启用调试模式来查看 engage 的日志输出:

Engage.setDebugMode(true);

6. 处理用户隐私

确保在收集用户数据时遵守相关隐私政策和法律法规。你可以在用户同意的情况下启用数据收集:

Engage.setUserConsent(consent: true);
回到顶部