我目前正在试用Firebase分析套装,但是,我遇到了一个小问题,我的应用程序分发在谷歌播放和亚马逊商店(不支持谷歌播放服务),所以对于我想要的亚马逊风味删除对Firebase的依赖(我已经知道该怎么做),但是,我还需要删除Firebase插件,这样它在构建时不会抛出异常.
这就是我现在所拥有的:
productFlavors {
google {
applicationId 'google app id'
}
amazon {
applicationId 'amazon app id'
}
}
dependencies {
googleCompile 'com.google.firebase:firebase-analytics:9.0.0'
amazonCompile 'com.amazonaws:aws-android-sdk-mobileanalytics:2.2.12'
amazonCompile('com.crashlytics.sdk.android:crashlytics:2.5.1@aar') {
transitive = true;
}
}
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
但是,我需要删除插件只有亚马逊风味.
这甚至可能吗?或者至少有一些我能尝试的东西吗?
更新:
根据史蒂夫的要求,我去亚马逊Kindle平板电脑上尝试使用Firebase的版本,即使你没有安装Google Play服务也能正常工作.
android firebase android-gradle-plugin gradle-plugin firebase-analytics
我已经上传了一个带有firebase分析的应用程序,但是,SELECT_CONTENT事件没有显示"Not set"作为名称,而不是我在开发期间指定的名称.
这是我在代码上设置的事件之一:
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "4");
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "ClickedShareSocialMedia");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
我使用Firebase Analytics,我的应用程序使用以下代码记录一些事件:
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "SOME_ID")
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "SOME_TYPE");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
Run Code Online (Sandbox Code Playgroud)
它似乎在大多数时候都很好用.在logcat我有这样的事情:
Logging event (FE): select_content, Bundle[{_o=app, content_type=SOME_TYPE, item_id=SOME_ID}]
Run Code Online (Sandbox Code Playgroud)
但对于我收到的一些事件
Logging event (FE): select_content, Bundle[{_o=app, _ev=item_id, _err=4, content_type=SOME_TYPE}]
Run Code Online (Sandbox Code Playgroud)
显然,_err = 4是某种错误代码.这是什么意思?
在那种有错误的情况下,我item_id是一个很长的字符串(20-30个符号).也许这个长度有限制item_id?
由于它在下面的控制台输出中可见,因此应用程序通常需要7-10秒来处理服务,并且通常无法执行此操作.每次启动都会发生这种情况
为什么需要这么长时间?是因为服务在放弃之前尝试连接多次?此外,这个输出背后的逻辑究竟是什么?
注意:我的应用程序中没有任何FirebaseAnalytics代码
09-26 23:34:48.998 /package V/FA: Processing queued up service tasks: 1
09-26 23:34:54.009 /package V/FA: Inactivity, disconnecting from AppMeasurementService
09-26 23:34:57.357 /package V/FA: Activity paused, time: 89152495
09-26 23:34:57.383 /package V/FA: onActivityCreated
Run Code Online (Sandbox Code Playgroud)
的build.gradle(APP)
//Firebase
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.firebase:firebase-invites:9.4.0'
compile 'com.firebase:geofire-android:2.0.0'
compile 'com.firebaseui:firebase-ui:0.5.1'
Run Code Online (Sandbox Code Playgroud) 我们是否可以获得自定义事件,例如在Xamarin Forms项目中使用Firebase Analytics按下按钮1?
我的Android应用通过Google Analytics for Firebase收集数据.出于隐私原因,用户必须能够从Firebase服务器上擦除其数据,如果他们选择这样做的话.
该应用通过将其Firebase转发APP_INSTANCE_ID到我自己的服务器来请求删除.此服务器已预先准备好我的个人Google帐户(通过oauth2)的凭据,用于管理Firebase项目.服务器使用www.googleapis.com,并使用提供的身份验证APP_INSTANCE_ID调用upsert.
如文档所述,通用Google AnalyticsAPI适用于此任务.
在一些初始问题(b/c我没有正确的auth范围,并且未正确启用Analytics API)之后,googleapis.com现在为每个upsert请求返回HTTP 200.(顺便APP_INSTANCE_ID说一句,即使你提供虚假,它也会返回200.)
这是来自upsert的示例响应,它没有显示任何错误:
{ kind: 'analytics#userDeletionRequest',
id:
{ type: 'APP_INSTANCE_ID',
userId: (REDACTED 32-char hexidecimal string) },
firebaseProjectId: (REDACTED),
deletionRequestTime: '2018-08-28T12:46:30.874Z' }
Run Code Online (Sandbox Code Playgroud)
我知道这firebaseProjectId是正确的,因为如果我改变它,我会收到错误.我已经验证了它APP_INSTANCE_ID是正确的,并且一直稳定到重置之前resetAnalyticsData().
为了测试删除,我使用以下程序填充了Firebase的几个自定义事件(Nexus 5X模拟器,没有Google Play,没有配置Google帐户,但这不应该有任何区别):
FirebaseAnalytics.logEvent)FirebaseAnalytics.resetAnalyticsData(清除设备上缓存的任何事件数据)但是,即使24小时后,事件表中仍然存在100%的Firebase事件.由于upserts,Firebase服务器上没有发生可辨别的状态更改.
那么,我做错了什么?如何从Google Analytics for Firebase成功删除用户数据?
编辑
这是我用来发出请求的代码(来自node.js):
const request = require( 'request' );
... …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的应用中记录屏幕名称,但我在 Firebase Analytics 中没有设置 95%。
为了onAppear我的观点Analytics.setScreenName("screenName", screenClass: "screenName")
我应该以不同的方式这样做吗?看起来 Analytics for iOS 可以与UIViewControllers结合使用,但由于这是一个 SwiftUI 应用程序,并且没有关于如何使用它的文档。
我们Android和iOS应用的Firebase Analytics中的所有归因来源都是"(直接)",即使我们从Google Analytics迁移到Firebase Analytics后仍有超过250,000个first_open事件出现.
我们需要配置哪些东西来正确注册,或者我没有正确使用控制台报告,还是其他什么?
我期待至少一些基本的来源,如"有机搜索"出现.
当我的应用加载有任何引起关注的问题时,是否有以下消息.如果我残疾FirebaseAutomaticScreenReportingEnabled,那有什么后果吗?关于这个在线信息不多.
Firebase自动屏幕报告已启用.调用+ [FIRAnalytics setScreenName:setScreenClass:]设置屏幕名称或覆盖默认屏幕类名称.要禁用自动屏幕报告,请在Info.plist中将标志FirebaseAutomaticScreenReportingEnabled设置为NO
我将Firebase和GTM集成在cocoapods上:
pod 'Firebase/Core'
pod 'GoogleTagManager', '~> 5.0'
Run Code Online (Sandbox Code Playgroud)
Podfile.lock用于使用的版本:
- Firebase/Core(3.12.0):
- FirebaseAnalytics(= 3.6.0)
- FirebaseCore(= 3.4.7)
- FirebaseAnalytics(3.6.0):
- FirebaseCore(〜> 3.4)
- FirebaseInstanceID(〜> 1.0)
- GoogleInterchangeUtilities(〜> 1.2)
- GoogleSymbolUtilities(〜> 1.1)
- GoogleToolboxForMac/NSData + zlib(〜> 2.1)
- FirebaseCore(3.4.7):
- GoogleInterchangeUtilities(〜> 1.2)
- GoogleSymbolUtilities(〜> 1.1)
- GoogleToolboxForMac/NSData + zlib(〜> 2.1)
- FirebaseInstanceID(1.0.8)
- GoogleAnalytics(3.17.0)
- GoogleInterchangeUtilities(1.2.2):
- GoogleSymbolUtilities(〜> 1.1)
- GoogleSymbolUtilities(1.1.2)
- GoogleTagManager(5.0.8):
- FirebaseAnalytics(〜> 3.0)
- GoogleAnalytics(〜> 3.0)
- GoogleUtilities(〜> 1.3.0)
- GoogleToolboxForMac/Defines(2.1.1)
- GoogleToolboxForMac/NSData + zlib(2.1.1):
- GoogleToolboxForMac/Defines(= 2.1.1)
- GoogleUtilities(1.3.2):
- GoogleSymbolUtilities(〜> 1.1)
并按照集成文档中的步骤进行操作,但我发出了不间断的警告:
GoogleTagManager info: Processing logged event: (null) with parameters: (null)
<FIRAnalytics/WARNING> Attempted to log nil event
Run Code Online (Sandbox Code Playgroud)
从应用开始的完整日志:
Firebase automatic screen reporting is disabled. …Run Code Online (Sandbox Code Playgroud) google-analytics ios firebase google-tag-manager firebase-analytics