Flutter Facebook应用事件追踪插件facebook_app_events的使用

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

Flutter Facebook应用事件追踪插件facebook_app_events的使用

facebook_app_events

pub package

Flutter plugin for Facebook App Events

应用事件是在您的应用程序或网页中发生的操作,例如某人安装了您的应用程序或完成了一次购买。Facebook App Events 允许您跟踪这些事件以衡量广告效果,并为广告定位构建受众群体。

这是一个用于Facebook App Events的Flutter插件,它提供了一个洞察应用程序使用情况和用户参与度的应用测量解决方案。

设置环境

您必须首先在Facebook开发者平台创建一个应用:https://developers.facebook.com/

  1. 获取您的应用ID(下文称为[APP_ID]
  2. 获取您的客户端令牌(下文称为[CLIENT_TOKEN])。更多关于如何获取的信息请参阅Facebook文档: 客户端令牌

配置Android

请阅读开始使用App Events (Android)开始使用Facebook SDK for Android 教程。特别是按照更新您的清单文件步骤,在android/app/src/main/res/values/strings.xml中添加以下内容(或者在相应的debugrelease构建版本中)

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="facebook_app_id">[APP_ID]</string>
  <string name="facebook_client_token">[CLIENT_TOKEN]</string>
  <string name="fb_login_protocol_scheme">fb[APP_ID]</string>
  <string name="app_name">[APP_NAME]</string>
</resources>

之后,将字符串资源引用添加到主AndroidManifest.xml文件中,在<application>标签内。

<application android:label="@string/app_name" ...>
    ...
   	<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
   	<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
    ...
</application>

配置iOS

请阅读开始使用App Events for iOS教程,特别是按照第5步配置项目步骤,打开info.plist "As Source Code"并添加以下内容

如果代码没有CFBundleURLTypes,在最后一个</dict>元素之前添加以下内容:

<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>fb[APP_ID]</string>
  </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>[APP_ID]</string>
<key>FacebookClientToken</key>
<string>[CLIENT_TOKEN]</string>
<key>FacebookDisplayName</key>
<string>[APP_NAME]</string>

如果代码已经包含CFBundleURLTypes,插入以下内容:

<array>
 <dict>
 <key>CFBundleURLSchemes</key>
 <array>
   <string>fb[APP_ID]</string>
 </array>
 </dict>
</array>
<key>FacebookAppID</key>
<string>[APP_ID]</string>
<key>FacebookClientToken</key>
<string>[CLIENT_TOKEN]</string>
<key>FacebookDisplayName</key>
<string>[APP_NAME]</string>

关于Facebook App Events

有关iOS和Android正确和预期行为,请参阅官方SDK文档:

如果您发现任何不符合官方文档的行为,请报告问题

示例代码

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

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  static final facebookAppEvents = FacebookAppEvents();
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              FutureBuilder(
                future: facebookAppEvents.getAnonymousId(),
                builder: (context, snapshot) {
                  final id = snapshot.data ?? '???';
                  return Text('匿名ID: $id');
                },
              ),
              MaterialButton(
                child: Text("点击我!"),
                onPressed: () {
                  facebookAppEvents.logEvent(
                    name: 'button_clicked',
                    parameters: {
                      'button_id': 'the_clickme_button',
                    },
                  );
                },
              ),
              MaterialButton(
                child: Text("设置用户数据"),
                onPressed: () {
                  facebookAppEvents.setUserData(
                    email: 'opensource@oddbit.id',
                    firstName: 'Oddbit',
                    dateOfBirth: '2019-10-19',
                    city: 'Denpasar',
                    country: 'Indonesia',
                  );
                },
              ),
              MaterialButton(
                child: Text("测试logAddToCart"),
                onPressed: () {
                  facebookAppEvents.logAddToCart(
                    id: '1',
                    type: 'product',
                    price: 99.0,
                    currency: 'TRY',
                  );
                },
              ),
              MaterialButton(
                child: Text("测试购买!"),
                onPressed: () {
                  facebookAppEvents.logPurchase(amount: 1, currency: "USD");
                },
              ),
              MaterialButton(
                child: Text("启用广告跟踪!"),
                onPressed: () {
                  facebookAppEvents.setAdvertiserTracking(enabled: true);
                },
              ),
              MaterialButton(
                child: Text("禁用广告跟踪!"),
                onPressed: () {
                  facebookAppEvents.setAdvertiserTracking(enabled: false);
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

这个示例展示了如何初始化FacebookAppEvents对象、记录事件、设置用户数据、记录添加购物车事件、记录购买事件以及设置广告跟踪状态。通过这些按钮,您可以测试不同的功能。


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

1 回复

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


当然,以下是一个关于如何在Flutter应用中使用facebook_app_events插件进行Facebook应用事件追踪的示例代码。这个插件允许你向Facebook发送应用内事件,从而帮助你在Facebook Analytics中分析用户行为。

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

dependencies:
  flutter:
    sdk: flutter
  facebook_app_events: ^0.x.x  # 请检查最新版本号并替换

然后,运行flutter pub get来获取依赖。

接下来,在你的Flutter应用中,你需要按照以下步骤配置和使用facebook_app_events插件:

  1. 初始化Facebook App Events

    在应用启动时,初始化Facebook App Events。通常这会在main.dart文件的_MyAppState类的initState方法中进行。

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

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

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
    // 初始化Facebook App Events
    FacebookAppEvents.activateApp();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Facebook App Events Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _logPurchaseEvent,
          child: Text('Log Purchase Event'),
        ),
      ),
    );
  }

  void _logPurchaseEvent() {
    // 日志购买事件,包含货币和金额
    final Map<String, dynamic> parameters = {
      'fb_currency': 'USD',
      'fb_value': 10.0,
      'content_type': 'product',
      'content_ids': ['1234'], // 产品ID
    };
    FacebookAppEvents.logPurchase(parameters: parameters);
  }
}
  1. 日志自定义事件

    你可以根据需要日志自定义事件。例如,当用户完成某个特定动作时,你可以发送一个自定义事件。

void _logCustomEvent() {
  // 日志自定义事件,包含事件名称和参数
  final Map<String, dynamic> parameters = {
    '_eventName': 'custom_event_name', // 事件名称
    'custom_parameter': 'value', // 自定义参数
  };
  FacebookAppEvents.logEvent(name: '_eventName', parameters: parameters);
}
  1. 处理激活和停用

    除了在应用启动时激活App Events,你可能还需要在应用进入后台或前台时进行相应的处理。

@override
void dispose() {
  // 当应用进入后台时,可以调用此方法停用App Events(可选)
  FacebookAppEvents.deactivateApp();
  super.dispose();
}

注意:

  • 确保你的Facebook应用ID已经正确配置在你的Android和iOS项目中。
  • 查阅最新的facebook_app_events插件文档,因为API可能会随着版本更新而变化。
  • 在实际使用中,确保遵守Facebook的数据政策和隐私条款。

这个示例展示了如何在Flutter应用中初始化并使用facebook_app_events插件来追踪应用事件。根据你的具体需求,你可以扩展和修改这些代码。

回到顶部