GameAnalytics | A fully-managed pipeline for game analytics | Continous Integration library
kandi X-RAY | GameAnalytics Summary
kandi X-RAY | GameAnalytics Summary
A fully-managed pipeline for game analytics
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Sends a batch of events to the PubSub topic
- Publish an event to the Analytics endpoint
- Starts the publisher
- Shuts down the publisher
- Creates a streaming dataflow pipeline
- Handles a failure
GameAnalytics Key Features
GameAnalytics Examples and Code Snippets
Community Discussions
Trending Discussions on GameAnalytics
QUESTION
ANSWER
Answered 2021-Sep-30 at 03:21I see the problem is within your fromJson
method:
When creating named constructors, you have 2 possible syntaxes to it:
1. Quick define some params with initializers, without access tothis
In this situation, imagine you have a subclass called PickUpGameDetails.noReview
where you'd create a fixed userReview
object.
In this case, you wouldn't process any extra params, only simplify the constructor using initialiser for some params. For this to work, you would add the initialiser before the {
, using the :
, being something like this (in this case you wouldn't even need to create the context with { }
, unless you want to do extra operations besides the initialisers):
QUESTION
I am trying to setup my GameAnalytics dashboard so that data from both my iOS build and Android build are displayed together.
However, it doesn't seem possible.
It appears as though GameAnaltyics requires a different dashboard per game per platform.
Has anyone found a way around this?
I really don't want to have to duplicate every dashboard change I ever make.
Also, I want to be able to view all my graphs with that combined data of both platforms.
Thank you for your time
...ANSWER
Answered 2022-Jan-20 at 14:55I'm a support engineer from GameAnalytics. The optimal way of creating games is to separate platforms with different keys for each one. There are a few benefits, the main one being the ability to link your game to the store and implement purchase validation. Since you can only link a pair of keys to 1 game in the store (Google Play or Appstore), that would also mean that you would also only be able to implement purchase validation for the game you linked. For example if you decided to link the Android version, you wouldn't be able to verify purchases of the iOS one.
Another benefit is that it makes it easier to debug any issues. It's just generally cleaner to separate the platforms and some SDKs don't even allow the use of the same pair of keys for multiple platforms (e.g. Unity), so it's not supported by default. They would either have to modify the SDK (not recommended) or use the collection API potentially.
QUESTION
- Unity editor version: 2019.3.15f1
- Firebase Unity SDK version: firebase_unity_sdk_6.15.2
- Additional SDKs im using: Unity IAP, Gamesparks, Ironsource, Facebook, Appsflyer, GameAnalytics
- Platform im using the Unity editor on: Windows
- Platform im targeting: Android
- Scripting Runtime: IL2CPP
Problem
I am getting data on firebase analytics, but I cannot get crashlytics to report anything. Im stuck on this...
Steps to reproduce:
Add the firebase analytics and crashlytics sdks.
Add the google-services.json GoogleService-Info.plist files somewhere in assets folder
Add this code to initialise the firebase
...
ANSWER
Answered 2020-Oct-20 at 04:57Update Oct 19, 2020:
Today a developer updated the issue I linked in this answer saying the Firebase team fixed a backend bug last Friday (Oct 16) that was affecting some new Unity Android apps registering w/ Firebase - likely the bug behind your issue. I had already solved the issue in my own project using the below solution, but if you haven't yet updated your project, I recommend running it again and seeing if Crashlytics is working for you now..
I've been dealing with the same issue this week in Unity 2019.4.11f1 - i see the same error message about not being able to retrieve settings, but with my specific project and appIds in the URL.
I found a solution in this Github issue, which suggests the problem is caused by the version of an android library that is a dependency for the Unity Firebase Crashlytics package. My rough understanding is that the firebase-crashlytics-unity
library is a wrapper around android library firebase:firebase-crashlytics
, and the unity package allows the underlying native Android code to be used from Unity. Version com.google.firebase:firebase-crashlytics:17.10.0
has issues with getting the settings for some Firebase projects on Android. Myself and several others following this issue found forcing Unity to use this specific dependency at version 17.1.1 resolved the issue.
Someone else with the same issue in the thread contacted Firebase support and was told:
The error you are seeing "Failed to retrieve settings" is related to the SDK version being used. If you go to "Assets > Firebase > Editor> CrashlyticsDependencies" you can manually update the SDK to point to the latest Crashlytics SDK version 17.2.2. Please give it a try and if you continue having issues, let me know.
It turned out this advice wasn't quite right - some of us following the thread then experienced a different issue when using the Android Crashlytics SDK version 17.2.2 with Unity crashlytics version 6.16.0. So I'd specifically recommend trying out the below suggestion or other solutions in the thread to set your Android crashlytics library to v17.1.1.
Changes I made in my project to address this:
- First, I updated my unity firebase packages in the package manager to use version 6.16.0. In my project 4 packages were installed - core, analytics, crashlytics, and messaging.
- Then I searched for the the Crashlytics package's dependency file -
Crashlytics-Dependencies.xml
(found by searching project - was in/Library/PackageCache/com.google.firebase.crashlytics@6.16.0/Firebase/Editor/
for me). This file initally had "com.google.firebase:firebase-crashlytics:17.0.0" listed, which I updated to be: "com.google.firebase:firebase-crashlytics:17.1.1". - As an extra precaution, I also added created a
MyProject-Dependencies.xml
file, as was suggested by a user in the thread - this file also specifies version "com.google.firebase:firebase-crashlytics:17.1.1". - Next, I modified the Unity build process to use a custom
mainTemplate.gradle
file to specify dependencies, rather than using the External Dependency Resolver to manage and embed unity packages (option in Build Settings > PlayerSettings > Android). - I also updated the settings on the External Dependency Manager Android Ressolver:
- Disabled AutoResolve and Disabled Resolve on Build (we dont want EDM updating dependencies without our knowledge when building)
- I also turned disabled
AndroidPackageInstallationEnabled
- this has made the resolution process much faster and removed a bunch of.aar
files from the android dependencies list, and hasn't caused any problems in my project.
- I then ran External Dependency Resolver > Android > Force Resolve, which after the settings changes above, should now embed a list of the dependencies for the Android build into the
mainTemplate.gradle
file - Check this file (its in Assets/Plugins/Android) and you should now seecom.google.firebase:firebase-crashlytics:17.1.1
in that list.
Also, I recommend reading this article about managing Unity Firebase dependencies from one of the Firebase developer advocates, Patrick Martin. It helped me wrap my head around how Android dependency management in Unity works, as well as how the Android gradle build process works.
QUESTION
The application presents a crash 2~5 seconds after it's terminated by the user (i.e. force kill the app). This happens only on iOS builds on multiple unity versions (see details below). Most of the crashes reports are not arriving on Crashlytics. There are very few crashes on the console, even though we're consistently reproducing this error on a daily basis. The Android builds don't present the same error.
Steps to reproduce- Open the game
- Wait until the loading scene is about to finish or until the game scene is fully loaded
- Kill the application
- Wait 2~5 seconds and see the crash report window
- Reproduction rate: 80%
- Devices used to test: iPhone SE, iPhone 7, iPhone 8, iPad Mini 4
- Also observed the crash on: iPhone XS, iPhone XR
- The issue is iOS specific. We have the same build on Android working without issues.
- Crash reports are not being captured by Crashlytics on most cases (see some of the crashes below).
- Crashes happen only on the final steps of the loading, where the external SDKs are being initialized.
- On TestFlight, the crash count is 0 for almost all builds, including the ones the users are reporting the crashes.
- Using a debug button that calls the Application.Quit() method of Unity doesn't cause the application to crash, even though it takes a while to close.
- The crash seems to be invariante to OS version and iOS device.
- Unity version: 2019.2.17f1. Also reproduced with 2019.2.0f1 and 2019.3.10f1.
- External plugins are listed here.
- Crash reports
Here's a list of all solution attempts without success so far:
- Remove GameAnalytics plugin
- Remove IronSource plugin
- Remove UnityIAP plugin
- Workaround on PostProcess iOS
- Set minimum OS version to 9.0
- Comment all OnApplicationPause/Quit implementations (plugins included)
- Enable Bitcode
ANSWER
Answered 2020-Apr-27 at 15:59Description: The general problem is to have any piece of code that blocks the Main Thread on iOS when the application is finalizing (see this document for more information). In our case it is happening because of ongoing requests when the player kills the application. As we save the player progress on the server when the application is terminated (using Dispose()
method), the request blocked the main thread, causing the crash. The solution is to remove this particular save. We tested a build including this fix and, so far, we have no crashes on 20 attempts of killing the game after the Game Scene is loaded. We haven't thought about this before because this piece of code is there since August of 2019 and it hasn't been touched since then. The problem started to happen only in February of 2020.
More information: Since the piece of problematic code was in the project since August of 2019 and the problem started to happen only on February of 2020, it's possible that the iOS version has something to do with it. We haven't investigate the changelog yet, but the oldest iOS version presenting the crash so far is iOS 13.2, released on October 28th, 2019.
Another possibility is that some change on our backend code caused the request to hang. As we use BestHTTP, by default all requests are aborted when the application is terminated. We haven't investigate if the execution order of Dispose
vs. OnDisable/OnApplicationQuit
can be the issue. Also, by default, the requests aborted by BestHTTP during Application Quit still call the callbacks. In our case, the callback for that Save Player is null
, so this might not be the problem.
Related crashes: We're still facing some crashes on the loading scene. As far as we've seen, they happen when there's a request going on. The reproduction rate of those issues are way lower than the problem on Game Scene.
Hints: We had difficulty to retrieve the logs on Crashlytics, because most of them weren't being send. Here's a step-by-step of how to retrieve the log from the iOS device itself:
- Open the Settings app on your iPhone/iPad device
- Go to Privacy (appears below Battery on iOS 13)
- Scroll to the bottom and open Analytics & Improvements
- Open Analytics Data
- Find the logs for the desired application
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install GameAnalytics
You can use GameAnalytics like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the GameAnalytics component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page