Flutter个性化推荐插件segmentify_flutter_sdk的使用
Flutter个性化推荐插件segmentify_flutter_sdk的使用
Segmentify Flutter SDK
🏠 首页
✨ 描述
我们的创新Flutter应用旨在改变电子商务个性化和细分领域的格局。基于强大的Flutter框架构建,该应用为iOS和Android用户提供无缝跨平台体验。它旨在帮助电子商务企业提升客户参与度和留存策略。通过此应用,过去的一刀切营销方式已成为历史。它帮助企业深入理解客户,根据个人偏好和行为定制产品推荐,从而为更个性化和有效的营销活动铺平道路。
关键特性
-
个性化推荐: 我们的应用利用先进的算法和机器学习技术分析用户行为、购买历史和偏好。基于这些洞察,生成个性化的产品推荐并在应用内展示。这有助于企业增强用户体验、提高转化率并推动客户忠诚度。
-
动态内容: 向正确的人群传递正确的信息对于吸引用户的注意力至关重要。我们的应用允许企业根据用户分段动态更新和自定义应用内容。无论是展示定向横幅、促销优惠还是专属内容,我们的应用确保每位用户看到与其兴趣和需求相关的相关内容。
-
搜索功能: 我们的应用包含一个强大的搜索功能,允许用户根据其偏好快速找到产品。用户可以通过关键词、过滤器、类别或其他相关属性进行搜索。搜索结果实时显示,确保流畅高效的用户体验。企业还可以利用搜索分析来获得热门搜索词、用户偏好等方面的见解,并优化其产品供应。
-
用户细分: 了解你的受众是有效营销的关键。我们的应用使企业能够使用多种标准对用户群体进行细分,包括人口统计学、购买历史、参与水平等。这种细分能力让企业可以创建高度针对性的营销活动,并针对特定用户群定制其信息,从而提高参与度和转化率。
-
A/B测试: 利用我们的A/B测试功能轻松优化用户体验和营销策略。企业可以创建应用组件(如布局、UI元素或促销内容)的多个版本,并与不同的用户群体进行测试。通过衡量和分析用户互动和转化率,企业可以做出数据驱动的决策,持续改进其应用性能和用户满意度。
-
无缝集成: 我们的Flutter应用与现有的电子商务平台无缝集成,确保实施过程顺畅无阻。无论你使用的是流行的电子商务平台(如Shopify或WooCommerce),我们的应用都可以轻松集成到现有基础设施中,让你无需中断当前运营即可利用个性化和细分的力量。
-
分析和洞察: 深入的分析和报告为企业提供了宝贵的用户行为、偏好和活动表现的见解。我们的应用提供详细的分析仪表板,使企业能够跟踪关键指标、监控个性化努力的成功情况,并基于数据做出优化营销策略的决定。
-
推送通知: 我们的应用允许企业向用户发送个性化推送通知。企业可以根据用户细分(如位置、人口统计学或购买历史)创建自定义推送通知。这使得企业能够向特定用户群体发送有针对性的信息,从而提高参与度和转化率。
借助我们的Flutter应用,将您的电子商务业务推向新的高度。以个性化和细分为核心,与用户建立个人联系,提供相关的内容,并以前所未有的方式推动转化。领先于竞争对手,与客户建立持久的关系。
前提条件
flutter >= v2.8
安装
flutter pub add segmentify-sdk
使用
配置
segmentifyConfig
包含以下属性:
apiKey
: 字符串(必需)dataCenterUrl
: 字符串(必需)dataCenterPushUrl
: 字符串(可选)subDomain
: 字符串(必需)language
: 字符串(必需)
这是你可以从Segmentify获取的配置:
const Map<String, dynamic> segmentifyConfig = {
'sgm_config': {
'apiKey': 'your-api-key',
'dataCenterUrl': 'https://per.segmentify.com',
'subDomain': 'https://www.yoursite.com',
'dataCenterPushUrl': 'https://psh.segmentify.com',
'isApnsEnabled': false,
'language': 'TR',
},
'sgm_user': {
'userId': '',
'sessionId': '',
},
};
用户流是灵活的。你也可以这样使用。这种方式下,Segmentify会为你生成 userId
和 sessionId
。
Segmentify初始化
在Flutter应用中,首先使用别名 Segmentify
导入 segmentify_flutter_sdk
包。然后,在主方法中调用 Segmentify.SegmentifyInitializer
并传入你在 segmentifyConfig
中提供的具体配置设置。这一步骤准备了包在整个应用中的使用。
import 'package:segmentify_flutter_sdk/main.dart' as Segmentify;
import 'config.dart';
void main() async {
Segmentify.SegmentifyInitializer(segmentifyConfig: segmentifyConfig);
runApp(const MyApp());
}
与Segmentify交互
如果你有访问Segmentify Web Push产品的权限,你需要额外步骤来将Segmentify SDK集成到你的应用中。有关更多信息,请参阅这里。
SegmentifyEvent
类包含用于向Segmentify发送事件的各种函数。要使用这些函数,你需要导入 SegmentifyTypes
模块中的类型。
要使用Segmentify事件,你必须像这样导入 Segmentify
和 SegmentifyTypes
模块:
import 'package:segmentify_flutter_sdk/main.dart' as Segmentify;
import 'package:segmentify_flutter_sdk/models/event_types.dart' as SegmentifyTypes;
以下是使用 Segmentify
事件的示例。当你创建模型时,可以看到所需的参数。例如,使用 SegmentifyTypes.PageViewModel
创建一个 pageView
事件并通过 Segmentify.segmentifyEvent
发送到Segmentify。变量 responseOfEvent
捕获此事件的响应:
final segmentifyEvent = await Segmentify.segmentifyEvent();
final pageViewPayload = SegmentifyTypes.PageViewModel(category: 'Home Page');
final responseOfEvent = await segmentifyEvent.pageView(pageViewPayload);
集成推送通知
安装指南
flutter pub add firebase_core
flutter pub add firebase_messaging
在使用任何其他Firebase服务之前,必须安装 firebase_core
和 firebase_messaging
模块。
Android设置
生成Android凭证
在Firebase控制台上添加一个新的Android应用程序并输入项目详情。Android package name
必须匹配本地项目的包名称,可以在项目的 /android/app/src/main/AndroidManifest.xml
文件中的 manifest
标签内找到。
下载 google-services.json
文件并放置在项目中的以下位置:/android/app/google-services.json
。
配置Firebase与Android凭证
为了允许Firebase在Android上使用凭证,必须在项目中启用 google-services
插件。这需要修改Android目录下的两个文件。
首先,在 /android/build.gradle
文件内的依赖项中添加 google-services
插件:
buildscript {
dependencies {
// ... 其他依赖
classpath 'com.google.gms:google-services:4.3.15'
// 添加我 --- /\
}
}
最后,在 /android/app/build.gradle
文件中添加以下内容:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services' // 添加这一行
iOS设置
生成iOS凭证
在Firebase控制台上添加一个新的iOS应用程序并输入项目详情。iOS bundle ID
必须匹配本地项目的Bundle ID。Bundle ID可以在使用Xcode打开项目时在“General”标签页中找到。
下载 GoogleService-Info.plist
文件。
使用Xcode,打开项目的 /ios/{projectName}.xcodeproj
文件(如果使用Pods,则为 /ios/{projectName}.xcworkspace
)。
右击项目名称并选择“Add Files”,如下所示:
从计算机中选择下载的 GoogleService-Info.plist
文件,并确保勾选“Copy items if needed”。
配置Firebase与iOS凭证
为了让Firebase在iOS上使用凭证,必须在应用启动阶段配置Firebase iOS SDK。
为此,打开你的 /ios/{projectName}/AppDelegate.mm
文件,并添加以下内容:
在文件顶部,导入Firebase SDK,紧接在 #import "AppDelegate.h"
之后:
#import <Firebase.h>
然后,在 didFinishLaunchingWithOptions
方法中添加以下内容:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 添加我 --- \/
[FIRApp configure];
// 添加我 --- /\
// ...
}
更新Pods
flutter pub get
cd ios/
pod install --repo-update
cd ..
flutter run
一旦成功连接并重建,你的应用将使用 firebase_core
Flutter模块连接到Firebase。该模块本身不提供广泛的功能,因此要利用其他Firebase服务,你需要为每个Firebase服务安装单独的模块。
强烈建议
在你的Flutter项目中立即安装Segmentify和Firebase后,建议运行以下命令以确保一切设置正确。 这对于iOS尤为重要:
cd ios/
rm -rf Pods
pod deintegrate
pod install --repo-update
cd ..
flutter clean
flutter pub get
flutter run
这些命令清理并设置了Flutter项目的iOS部分,然后确保所有Flutter依赖项正确获取,应用准备就绪。
集成Segmentify用于推送
FirebaseOptions
首先,你需要创建 FirebaseOptions
以便在Firebase初始化步骤中使用。
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
import 'package:flutter/foundation.dart'
show defaultTargetPlatform, TargetPlatform;
FirebaseOptions get firebaseOptions {
if (defaultTargetPlatform == TargetPlatform.android) {
return const FirebaseOptions(
appId:
'android_appId', // google-services.json -> client -> client_info -> mobilesdk_app_id
apiKey:
'android_apiKey', // google-services.json -> client -> api_key -> current
projectId:
'android_projectId', // google-services.json -> project_info -> project_id
messagingSenderId:
'android_messagingSenderId', // google-services.json -> project_info -> project_number
);
}
if (defaultTargetPlatform == TargetPlatform.iOS) {
return const FirebaseOptions(
appId:
'ios_appId', // GoogleService-Info.plist -> CLIENT_ID -> REVERSED_CLIENT_ID
apiKey:
'ios_apiKey', // GoogleService-Info.plist -> API_KEY -> CURRENT_KEY (or API_KEY)
projectId:
'ios_projectId', // GoogleService-Info.plist -> PROJECT_ID (or PROJECT_NUMBER)
messagingSenderId:
'ios_messagingSenderId', // GoogleService-Info.plist -> PROJECT_NUMBER (or SENDER_ID)
);
}
throw UnsupportedError('Unsupported platform');
}
Segmentify初始化与推送
Segmentify需要你的 Firebase
和 Firebase Messaging
实例传递给 SegmentifyInitializer
来自动执行推送流程。
import 'package:segmentify_flutter_sdk/main.dart' as Segmentify;
import 'package:segmentify_flutter_sdk/models/event_types.dart' as SegmentifyTypes;
import 'config.dart';
import 'firebase_options.dart';
void main() async {
// 初始化Flutter
WidgetsFlutterBinding.ensureInitialized();
// 初始化Firebase
await Firebase.initializeApp(options: firebaseOptions);
// 初始化Segmentify
messagingCallback(messageData) {
// 当点击推送通知时调用
print('回调函数被调用');
print('消息数据: $messageData');
print('消息数据正文: ${messageData['body']}');
print('消息数据标题: ${messageData['title']}');
}
FirebaseMessaging messaging = FirebaseMessaging.instance;
Segmentify.SegmentifyInitializer(
segmentifyConfig: segmentifyConfig,
messaging: messaging,
messagingCallback: messagingCallback);
runApp(const MyApp());
}
示例应用
Segmentify Demo 应用
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:segmentify_flutter_sdk/main.dart' as Segmentify;
import 'package:segmentify_flutter_sdk/models/event_types.dart'
as SegmentifyTypes;
import 'config.dart';
import 'firebase_options.dart';
void main() async {
// 初始化Flutter
WidgetsFlutterBinding.ensureInitialized();
// 初始化Firebase
await Firebase.initializeApp(options: firebaseOptions);
// 初始化Segmentify
messagingCallback(messageData) {
// 当点击推送通知时调用
print('回调函数被调用');
print('消息数据: $messageData');
print('消息数据正文: ${messageData['body']}');
print('消息数据标题: ${messageData['title']}');
}
FirebaseMessaging messaging = FirebaseMessaging.instance;
Segmentify.SegmentifyInitializer(
segmentifyConfig: segmentifyConfig,
messaging: messaging,
messagingCallback: messagingCallback);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Segmentify Flutter SDK Demo'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() async {
final segmentifyEvent = await Segmentify.segmentifyEvent();
final pageViewPayload = SegmentifyTypes.PageViewModel(category: 'Home Page');
segmentifyEvent.pageView(pageViewPayload);
final interactionPayload = SegmentifyTypes.InteractionModel(
type: SegmentifyTypes.InteractionTypes.widgetView,
interactionId: '1',
instanceId: '1');
segmentifyEvent.interaction(interactionPayload);
final productViewPayload = SegmentifyTypes.ProductViewModel(
productId: '123',
title: 'Segmentify Saat',
price: 129.99,
url: 'https://www.segmentify.com/saat-123');
segmentifyEvent.productView(productViewPayload);
final searchClockPayload = SegmentifyTypes.SearchModel(query: 'saat');
segmentifyEvent.search(searchClockPayload);
final searchPayload = SegmentifyTypes.SearchModel(query: '');
segmentifyEvent.search(searchPayload);
final basketOperationPayload = SegmentifyTypes.BasketOperationModel(
step: SegmentifyTypes.BasketOperationSteps.ADD,
productId: '32652',
quantity: 1,
price: 100);
segmentifyEvent.basketOperation(basketOperationPayload);
final checkoutPayload = SegmentifyTypes.CheckoutModel(
step: SegmentifyTypes.CheckoutSteps.PURCHASE,
totalPrice: 359.99,
productList: [
SegmentifyTypes.CheckoutProductModel(
productId: '32652', price: 100, quantity: 1),
SegmentifyTypes.CheckoutProductModel(
productId: '12365', price: 259.99, quantity: 2),
],
orderNo: 'order123',
currency: SegmentifyTypes.CurrencyTypes.TRY,
);
segmentifyEvent.checkout(checkoutPayload);
final customPayload = SegmentifyTypes.CustomEventModel(
type: 'Custom Event', params: {'param1': 'param1', 'param2': 'param2'});
segmentifyEvent.custom(customPayload);
final userOperationPayload = SegmentifyTypes.UserOperationModel(
step: SegmentifyTypes.UserOperationSteps.SIGN_UP,
username: 'John Doe',
email: 'john@doe.com',
age: '25');
segmentifyEvent.userOperation(userOperationPayload);
final userChangePayload = SegmentifyTypes.UserChangeModel(
oldUserId: 'oldUserId', userId: 'newUserId');
segmentifyEvent.userChange(userChangePayload);
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'你已经按下了按钮多少次:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: '增加',
child: const Icon(Icons.add),
),
);
}
}
更多关于Flutter个性化推荐插件segmentify_flutter_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter个性化推荐插件segmentify_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
segmentify_flutter_sdk
是一个用于在 Flutter 应用中集成 Segmentify 个性化推荐功能的插件。Segmentify 是一个强大的个性化推荐引擎,可以帮助你根据用户行为和偏好提供个性化的内容和产品推荐。
以下是如何在 Flutter 项目中使用 segmentify_flutter_sdk
的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 segmentify_flutter_sdk
的依赖。
dependencies:
segmentify_flutter_sdk: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化 SDK
在你的 Flutter 应用中,你需要在应用启动时初始化 segmentify_flutter_sdk
。通常可以在 main.dart
文件中进行初始化。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Segmentify SDK
await Segmentify.init(
apiKey: 'YOUR_API_KEY', // 替换为你的 API Key
dataCenterUrl: 'YOUR_DATA_CENTER_URL', // 替换为你的数据中心 URL
);
runApp(MyApp());
}
3. 发送用户事件
你可以使用 Segmentify
来发送用户事件,例如页面浏览、产品查看、添加到购物车等。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void sendUserEvent() {
Segmentify.sendEvent(
event: Event(
type: EventType.PAGE_VIEW,
userId: 'USER_ID', // 替换为用户 ID
sessionId: 'SESSION_ID', // 替换为会话 ID
pageUrl: 'https://example.com', // 替换为页面 URL
),
);
}
4. 获取个性化推荐
你可以使用 Segmentify
来获取个性化推荐内容。例如,获取推荐的产品列表。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void getRecommendations() async {
final response = await Segmentify.getRecommendations(
recommendationType: RecommendationType.PRODUCT, // 推荐类型
userId: 'USER_ID', // 替换为用户 ID
sessionId: 'SESSION_ID', // 替换为会话 ID
);
if (response.success) {
final products = response.data;
// 处理推荐的产品列表
} else {
// 处理错误
}
}
5. 处理用户交互
你还可以处理用户的交互事件,例如点击推荐产品、添加到购物车等。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void handleProductClick(String productId) {
Segmentify.sendEvent(
event: Event(
type: EventType.PRODUCT_CLICK,
userId: 'USER_ID', // 替换为用户 ID
sessionId: 'SESSION_ID', // 替换为会话 ID
productId: productId, // 替换为产品 ID
),
);
}
6. 监听 SDK 事件
你可以监听 SDK 的事件,例如推荐内容加载完成、错误发生等。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void listenToSdkEvents() {
Segmentify.onRecommendationLoaded.listen((response) {
if (response.success) {
final products = response.data;
// 处理推荐的产品列表
} else {
// 处理错误
}
});
Segmentify.onError.listen((error) {
// 处理 SDK 错误
});
}
7. 处理用户身份
当用户登录或注销时,你需要更新用户的身份信息。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void updateUserIdentity(String userId) {
Segmentify.updateUserIdentity(
userId: userId, // 替换为用户 ID
);
}
8. 处理用户属性
你可以设置或更新用户的属性信息,例如姓名、电子邮件、性别等。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserAttributes() {
Segmentify.setUserAttributes(
attributes: {
'name': 'John Doe',
'email': 'john.doe@example.com',
'gender': 'male',
},
);
}
9. 处理用户会话
你可以处理用户的会话信息,例如会话开始、会话结束等。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void startSession(String sessionId) {
Segmentify.startSession(
sessionId: sessionId, // 替换为会话 ID
);
}
void endSession() {
Segmentify.endSession();
}
10. 处理用户位置
你可以设置或更新用户的位置信息。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserLocation(double latitude, double longitude) {
Segmentify.setUserLocation(
latitude: latitude,
longitude: longitude,
);
}
11. 处理用户设备信息
你可以设置或更新用户的设备信息,例如设备类型、操作系统、浏览器等。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserDeviceInfo() {
Segmentify.setUserDeviceInfo(
deviceInfo: {
'deviceType': 'mobile',
'os': 'android',
'browser': 'chrome',
},
);
}
12. 处理用户语言
你可以设置或更新用户的语言信息。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserLanguage(String language) {
Segmentify.setUserLanguage(
language: language,
);
}
13. 处理用户时区
你可以设置或更新用户的时区信息。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserTimezone(String timezone) {
Segmentify.setUserTimezone(
timezone: timezone,
);
}
14. 处理用户 IP 地址
你可以设置或更新用户的 IP 地址信息。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserIpAddress(String ipAddress) {
Segmentify.setUserIpAddress(
ipAddress: ipAddress,
);
}
15. 处理用户代理
你可以设置或更新用户的代理信息。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserAgent(String userAgent) {
Segmentify.setUserAgent(
userAgent: userAgent,
);
}
16. 处理用户自定义事件
你可以发送自定义事件到 Segmentify。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void sendCustomEvent() {
Segmentify.sendEvent(
event: Event(
type: EventType.CUSTOM,
userId: 'USER_ID', // 替换为用户 ID
sessionId: 'SESSION_ID', // 替换为会话 ID
customEventName: 'CUSTOM_EVENT_NAME', // 替换为自定义事件名称
customEventData: {
'key1': 'value1',
'key2': 'value2',
},
),
);
}
17. 处理用户自定义属性
你可以设置或更新用户的自定义属性。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserCustomAttributes() {
Segmentify.setUserCustomAttributes(
customAttributes: {
'key1': 'value1',
'key2': 'value2',
},
);
}
18. 处理用户自定义标签
你可以设置或更新用户的自定义标签。
import 'package:segmentify_flutter_sdk/segmentify_flutter_sdk.dart';
void setUserCustomTags() {
Segmentify.setUserCustomTags(
customTags: ['tag1', 'tag2'],
);
}