flurry 使用

https://dev.flurry.com/

注册完后会有引导

文档路径:

https://developer.yahoo.com/flurry/docs/analytics/gettingstarted/events/android/

http://flurry.github.io/flurry-android-sdk/analytics/com/flurry/android/FlurryAgent.html


Getting the Flurry SDK into your app is easy. Just include the following in your build.gradle file:


// In your main app's Gradle config file:
dependencies {
compile 'com.flurry.android:analytics:12.3.0@aar'
/*
* Optional library to help monetizing your app with ads.
* If you include the ads library, you do not need to include
* the analytics library as it is a transitive dependency.
*/;
// compile 'com.flurry.android:ads:12.3.0@aar';
// ... other dependencies
}



Flurry使用笔记

 

Flurry是一家专门为移动应用提供数据统计和分析的公司。他们的数据统计分析SDK支持的平台包括iPhone, iPad, Android, Windows Phone, Java ME和BlackBerry。利用Flurry提供的分析平台,我们可以很容易地自动统计出应用的使用情况,例如:

  • 每天(每周或每月)登录用户数,应用使用次数
  • 每天(每周或每月)新用户数,活跃用户数
  • 用户的所在地、年龄、性别的分布情况
  • 用户的点击等触发行为

下面简要说明一下Android开发过程中集成Flurry。

配置

1. 在 Flurry 后台新建项目

参见 官方文档

2. 配置 SDK

配置 build.gradle 文件:


// 根目录下的 build.gradle 文件:
buildscript {
repositories {
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
}
}

apply plugin: 'com.android.application'

repositories {
jcenter()
}

// module 下的 build.gradle 文件:
dependencies {
// Flurry 统计分析
compile 'com.flurry.android:analytics:6.7.0'
}

注意:

  • Flurry 最新版本号根据 后台 来确定,文档中的版本号仅作参考
  • 使用 Eclipse 开发配置参考官方文档
  • 应用使用 Google Play Service 时,需要添加相应的库,参考官方文档
  • 我们的项目不需要使用 Flurry 的 AD 功能,本文档直接删除了相关的配置。
3. 配置 AndroidManifest 和 ProGuard 文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.flurry.sample"
>

<!-- Required permissions - Internet access -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- Recommended permission - External memory pre-caching -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Optional permission - Location based ad targeting -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

...

</application>
</manifest>

proguard-rules.pro


# Required to preserve the Flurry SDK
-keep class com.flurry.** { *; }
-dontwarn com.flurry.**
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepclasseswithmembers class * {
public (android.content.Context, android.util.AttributeSet, int);
}
4. 初始化 Flurry

public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();

new FlurryAgent.Builder()
.withLogEnabled(true)
.build(this, FLURRY_API_KEY);
}
}

事件上报

自定义事件
事件有两级结构

最高级别是具体的事件,例如记录文章阅读数。

1
FlurryAgent.logEvent("Article_Read");

每个 APP 可以追踪300个不同的事件。Flurry 可以根据事件来建立用户在 APP 中的行为路径。

捕获事件参数

事件结构中的第二个级别是事件参数。这些是事件本身或执行它的用户的特征。


// Capture author info & user status
Map<String, String> articleParams = new HashMap<String, String>();

//param keys and values have to be of String type
articleParams.put("Author", "John Q");
articleParams.put("User_Status", "Registered");

//up to 10 params can be logged with each event
FlurryAgent.logEvent("Article_Read", articleParams);

每个事件最多可以有10个参数,并且每个参数可以具有与其相关联的无数个值。
例如,对于“作者”参数,可能有1,000位作者都写了一篇文章。 我们可以通过这个单一的参数跟踪每个作者。

捕获事件持续时间

您还可以将时间维度添加到您跟踪的任何事件。 Flurry会自动记录事件的持续时间,并按照会话和用户提供整体平均事件长度的指标


13
//追踪作者信息和用户状态
Map<String, String> articleParams = new HashMap<String, String>();
articleParams.put("Author", "John Q");
articleParams.put("User_Status", "Registered");

//当用户开始阅读文章时,记录定时事件
//将第三个参数设置为true会创建一个定时事件
FlurryAgent.logEvent("Article_Read", articleParams, true);

//...

//当用户导航离开文章,结束定时事件
FlurryAgent.endTimedEvent("Article_Read");

确保在应用程序的适当位置结束定时事件。 在定时事件未被明确结束的情况下,当会话完成时(即,当用户离开应用时)SDK会终止它。

测试事件集成

将事件集成到代码中后,您需要测试它们是否正常触发。
在测试会话中检查 Flurry 门户中的事件数据的第一个位置是事件日志页面。
要导航到此页面:

1.Select your app in the Flurry portal.
2.Select Events from the left navigation menu.
3.Click Event Logs.
事件日志应该在测试会话的几分钟内更新,这意味着您可以使用它来调试事件工具,只有轻微的延迟。 您将看到会话的时间戳,它来自的设备,以及在会话期间触发的所有事件(及相关参数)的列表。
请注意,此页面仅显示记录事件的会话。
有关 Flurry 门户中的事件日志和事件报告的信息,请参阅事件和事件报告

事件最佳实践

以下是实现事件时的一些其他最佳做法:

  • 概述您的业务目标和您想要回答的问题,然后将事件映射到跟踪每个需要测量的操作。
  • 为您的事件命名,以便轻松识别和分类。 如果您有多个具有类似“事件”的应用,请在各个应用中将其命名为相同,以便您可以更轻松地比较效果。
  • 在适用的每个事件上添加事件参数。
  • 在相关时使用定时事件。 Flurry 会自动将使用分成时间段,因此您可以毫不费力地获取有价值的信息。
  • 您随时可以在应用程式中新增更多事件。 但是,您需要重新提交到应用商店,以便您的用户拥有带有这些标记的事件的应用版本。

重要:记录个人身份信息,如用户的UDID,电子邮件地址等,这是违反Flurry 的 TOS。 如果您有一个要与会话和事件数据关联的用户登录,则应使用SetUserID 函数。 如果您选择在参数中记录任何类型的用户标识,则必须在调用该方法之前使用散列函数(例如MD5或SHA256)对数据进行匿名化。

最后一步:配置 Flurry Analytics 高级功能

高级功能

Flurry为Android开发者提供了许多高级功能,使您能够更深入地了解用户。
例如,您可以跟踪

  • 用户的地理位置
  • 年龄和性别
  • 用户名
  • 错误
  • 页面视图

建议初始化前设置的信息有:

  • 用户的地理位置
  • 年龄和性别
  • 用户ID相关
  • FlurryAgent.setVersionName(String versionName)
追踪地理位置

注意权限:


<!--required permission-->
<uses-permission android:name="android.permission.INTERNET" />
<!--optional permission - highly recommended-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--optional permission -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

要停用详细的位置报告,调用:


FlurryAgent.setReportLocation(false) 
//before calling FlurryAgent.onStartSession() and no detailed location information will be sent.

可以直接设置具体的坐标来减少定位的电池损耗:


FlurryAgent.setLocation(float latitude, float longitude)
用户 ID

FlurryAgent.setUserId(SHA256userID);

使用此选项可以记录用户在系统中分配的ID或用户名。

警告 : 使用此方法发送到Flurry的用户登录,必须在调用此方法之前使用散列函数(如MD5或SHA256)对数据进行匿名化。


//年龄
FlurryAgent.setAge(22); // 0~109
//性别
FlurryAgent.setGender(FlurryGender.FEMALE); //有效输入为Constants.MALE或Constants.FEMALE
跟踪错误

使用onError报告错误。 Flurry会报告每个会话中发生的前10个错误。


FlurryAgent.onError(String errorId, String message, Throwable exception)

FlurryAgent还会通知未捕获的异常。


FlurryAgent.setCaptureUncaughtExceptions(false);

用于允许/禁止Flurry SDK报告未捕获的异常。 默认情况下启用此功能,如果要禁用此行为,必须在调用init之前调用此功能。

跟踪页面访问量

FlurryAgent.onPageView();

使用onPageView报告页面浏览次数。 要增加总计数,您应该在向用户显示新页面时调用此方法

附加功能

以下是Flurry SDK中提供的其他功能。

方法
描述

FlurryAgent.getReleaseVersion()
返回一个包含当前Flurry SDK版本的字符串

FlurryAgent.setVersionName(String versionName)
设置应用程序的版本名称 此名称将出现在http://dev.flurry.com由版本过滤选项 这应该在init之前调用

FlurryAgent.getAgentVersion()
获取Flurry SDK的版本

FlurryAgent.setLogEnabled(boolean isEnabled)
FlurryAgent.setLogEnabled(boolean isEnabled)

FlurryAgent.setLogLevel(int logLevel)
设置内部Flurry SDK日志的日志级别 有效输入为Log.VERBOSE Log.WARN等 默认日志级别为Log.WARN 这应该在init之前调用

FlurryAgent.setLogEvents(boolean logEvents)
使用setLogEvents启用/禁用事件日志记录 这应该在init之前调用


posted on 2020-06-16 17:16  katago  阅读(1112)  评论(0编辑  收藏  举报