Flutter游戏数据分析插件gameanalytics_sdk的使用
Flutter游戏数据分析插件gameanalytics_sdk的使用
GA-SDK-FLUTTER
GameAnalytics SDK for Flutter。
文档位于 此处。
如果您在SDK使用过程中遇到任何问题或有反馈,请联系我们的客服团队 此处。
ℹ️
Flutter SDK 支持 iOS、Android 和 Web 平台。
示例代码
以下是使用 gameanalytics_sdk
插件的一个完整示例:
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:gameanalytics_sdk/gameanalytics.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
// 启用信息日志和详细日志
GameAnalytics.setEnabledInfoLog(true);
GameAnalytics.setEnabledVerboseLog(true);
// 配置可用的自定义维度
GameAnalytics.configureAvailableCustomDimensions01(["ninja", "samurai"]);
GameAnalytics.configureAvailableCustomDimensions02(["whale", "dolphin"]);
GameAnalytics.configureAvailableCustomDimensions03(["horde", "alliance"]);
// 配置可用资源货币和资源类型
GameAnalytics.configureAvailableResourceCurrencies(["gems", "gold"]);
GameAnalytics.configureAvailableResourceItemTypes(["boost", "lives"]);
// 配置构建版本
GameAnalytics.configureBuild("0.1.0");
GameAnalytics.configureAutoDetectAppVersion(true);
// 初始化 SDK
GameAnalytics.initialize(
"c6cfc80ff69d1e7316bf1e0c8194eda6",
"e0ae4809f70e2fa96916c7060f417ae53895f18d"
);
// 设置自定义维度
GameAnalytics.setCustomDimension01("ninja");
GameAnalytics.setCustomDimension02("dolphin");
GameAnalytics.setCustomDimension03("alliance");
// 添加商业事件
GameAnalytics.addBusinessEvent({
"currency": "USD",
"amount": 99,
"itemType": "weapons",
"itemId": "shotgun",
"cartType": "end_of_level"
});
GameAnalytics.addBusinessEvent({
"currency": "USD",
"amount": 99,
"itemType": "weapons",
"itemId": "shotgun",
"cartType": "end_of_level",
"receipt": "test_receipt",
"signature": "test_signature"
});
// 添加资源事件
GameAnalytics.addResourceEvent({
"flowType": GAResourceFlowType.Source,
"currency": "gems",
"amount": 100,
"itemType": "lives",
"itemId": "5lives"
});
// 添加进度事件
GameAnalytics.addProgressionEvent({
"progressionStatus": GAProgressionStatus.Start,
"progression01": "world01",
"progression02": "level01",
"progression03": "phase01",
"itemId": "5lives"
});
GameAnalytics.addProgressionEvent({
"progressionStatus": GAProgressionStatus.Complete,
"progression01": "world01",
"progression02": "level01",
"progression03": "phase01",
"score": 666
});
// 添加设计事件
GameAnalytics.addDesignEvent({"eventId": "some:event"});
GameAnalytics.addDesignEvent({"eventId": "some:other:event", "value": 666});
// 添加错误事件
GameAnalytics.addErrorEvent({
"severity": GAErrorSeverity.Error,
"message": "This is an error message!!!"
});
// 添加广告事件
GameAnalytics.addAdEvent({
"adAction": GAAdAction.Show,
"adType": GAAdType.Interstitial,
"adSdkName": "mopub",
"adPlacement": "end_of_level"
});
}
Future<void> printRemoteConfigsInfo() async {
// 获取远程配置内容
String content = await GameAnalytics.getRemoteConfigsContentAsString() ?? "";
print("content=" + content);
// 检查远程配置是否已准备好
bool isReady = await GameAnalytics.isRemoteConfigsReady();
print("isReady=" + isReady.toString());
// 获取远程配置值
String value = await GameAnalytics.getRemoteConfigsValueAsString(
"unicode_key", "null") ??
"null";
print("value=" + value);
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('插件示例应用'),
),
body: Center(
child: TextButton(
child: Text('测试'),
onPressed: () {
printRemoteConfigsInfo();
}),
),
),
);
}
}
更多关于Flutter游戏数据分析插件gameanalytics_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter游戏数据分析插件gameanalytics_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用gameanalytics_sdk
插件来进行游戏数据分析的示例代码。这个插件允许你集成GameAnalytics的服务,以收集和分析游戏玩家的行为数据。
首先,确保你已经在pubspec.yaml
文件中添加了gameanalytics_sdk
依赖:
dependencies:
flutter:
sdk: flutter
gameanalytics_sdk: ^最新版本号 # 请替换为实际的最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,你需要配置GameAnalytics的初始化参数。这通常包括你的游戏密钥和密钥集。以下是一个完整的示例,展示如何在Flutter应用中初始化和使用gameanalytics_sdk
:
import 'package:flutter/material.dart';
import 'package:gameanalytics_sdk/gameanalytics_sdk.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化GameAnalytics SDK
GameAnalytics.initialize(
gameKey: '你的游戏密钥', // 替换为你的GameAnalytics游戏密钥
secretKey: '你的密钥集', // 替换为你的GameAnalytics密钥集
)
..then((_) {
runApp(MyApp());
})
..catchError((error) {
print('GameAnalytics initialization failed: $error');
// 处理初始化失败的情况
runApp(MyApp()); // 或者显示错误页面
});
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Game Analytics Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
void _startSession() {
// 开始一个新的会话(通常不需要手动调用,SDK会自动管理会话)
GameAnalytics.newSession();
}
void _businessEvent() {
// 发送一个商业事件,例如购买
GameAnalytics.addEvent(
eventKey: 'purchase',
currency: 'USD',
amount: 9.99,
itemType: 'in_app_purchase',
itemId: 'sword_upgrade',
);
}
void _progressEvent() {
// 发送一个进度事件,例如关卡完成
GameAnalytics.addEvent(
eventKey: 'level_complete',
progressionStatus: GameAnalyticsProgressionStatus.complete,
level: 3, // 当前关卡
score: 1500, // 当前得分
);
}
void _designEvent() {
// 发送一个设计事件,例如广告查看
GameAnalytics.addEvent(
eventKey: 'ad_viewed',
adType: 'video',
adPlacement: 'level_start',
);
}
void _addErrorEvent() {
// 发送一个错误事件
GameAnalytics.addErrorEvent(
errorMessage: 'Failed to load resources',
severity: GameAnalyticsSeverity.error,
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Game Analytics Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: _startSession,
child: Text('Start Session'),
),
ElevatedButton(
onPressed: _businessEvent,
child: Text('Business Event'),
),
ElevatedButton(
onPressed: _progressEvent,
child: Text('Progress Event'),
),
ElevatedButton(
onPressed: _designEvent,
child: Text('Design Event'),
),
ElevatedButton(
onPressed: _addErrorEvent,
child: Text('Error Event'),
),
],
),
),
);
}
}
在这个示例中,我们展示了如何初始化GameAnalytics SDK,并发送几种不同类型的事件:商业事件、进度事件、设计事件和错误事件。你可以根据你的游戏需求,添加更多的事件和自定义参数。
请确保你替换了你的游戏密钥
和你的密钥集
为实际的GameAnalytics密钥。此外,根据你的具体需求,你可能需要调整事件参数和调用时机。
这个示例提供了一个基础框架,你可以在这个基础上进一步扩展和优化你的游戏数据分析功能。