{"id":19935641,"url":"https://github.com/gameanalytics/ga-sdk-android","last_synced_at":"2025-09-10T17:34:59.157Z","repository":{"id":29393153,"uuid":"32928327","full_name":"GameAnalytics/GA-SDK-ANDROID","owner":"GameAnalytics","description":"Public repository for the Android SDK.","archived":false,"fork":false,"pushed_at":"2025-02-05T10:20:25.000Z","size":49230,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-07T15:54:41.421Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GameAnalytics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-26T13:18:09.000Z","updated_at":"2025-02-05T10:20:28.000Z","dependencies_parsed_at":"2023-10-10T13:34:48.780Z","dependency_job_id":"2b02096f-880d-4eb4-912a-9d6f78ba7633","html_url":"https://github.com/GameAnalytics/GA-SDK-ANDROID","commit_stats":null,"previous_names":[],"tags_count":133,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameAnalytics%2FGA-SDK-ANDROID","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameAnalytics%2FGA-SDK-ANDROID/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameAnalytics%2FGA-SDK-ANDROID/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameAnalytics%2FGA-SDK-ANDROID/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GameAnalytics","download_url":"https://codeload.github.com/GameAnalytics/GA-SDK-ANDROID/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252190966,"owners_count":21708987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T23:21:10.470Z","updated_at":"2025-09-10T17:34:59.106Z","avatar_url":"https://github.com/GameAnalytics.png","language":"C++","readme":"GA-SDK-ANDROID\n==========\n\nGameAnalytics native Android SDK.\n\nDocumentation can be found [here](https://gameanalytics.com/docs/android-sdk).\n\nIf you have any issues or feedback regarding the SDK, please contact our friendly support team [here](https://gameanalytics.com/contact).\n\n\u003e :information_source:\n\u003e Requirements:   \n\u003e **Android:** Jelly Bean 4.1 (API level 16) and up   \n\u003e   \n\u003e **Build size:**   \n\u003e Note that download size differ from the actual build size. The SDK build size is only around **49Kb** and the dependencies take up to **820Kb** depending if your app already uses some of the same dependencies.\n\nChangelog\n---------\n\u003c!--(CHANGELOG_TOP)--\u003e\n**7.0.0**\n* remote configs v3 with json support\n* improved fps tracking for the health event\n* added playmetrics tracking, getElapsedSessionTime and getElapsedTimeFromAllSessions\n\n**6.7.0**\n* bugfix: setGAIDTracking now properly affects OAID\n* added identifier type and reworked user id retrieval logic\n\n**6.6.3**\n* bugfix for GetUserId\n* updated to java 11\n\n**6.6.2**\n* increased SDK target version\n* health event bugfix for unreal engine builds\n\n**6.6.1**\n* removed com.google.android.gms.games dependency:removed redundant exception logs\n\n**6.6.0**\n* added checks to safely upgrade from 6.4.0 without having any impact on existing metrics\n* last used SDK version will be cached\n\n**6.5.2**\n* removed WAKE_LOCK permission\n\n**6.5.1**\n* calculate app boot metric more accurately\n\n**6.5.0**\n* added optional session performance metrics collection\n* added optional app boot-time metric collection\n\n**6.4.3**\n* increased resource currency limit from 20 to 50\n* added external user id\n* bug fixes\n\n**6.4.2**\n* fixed an important bug when generating user ids which could affect metrics\n\n**6.4.1**\n* added optional local event caching for disabled submission\n* support for app open ads\n\n**6.4.0**\n* possibility to opt out of GAID tracking\n* bug fixes\n\n**6.3.4**\n* new version of the health event\n* better internal error tracking\n* additonal validation for the impression events\n* various bug fixes\n\n**6.3.3**\n* Temporary removal of FPS tracking due to rare issues observed. FPS tracking will be reintroduced in the future once the cause is identified and fixed.\n\n**6.3.2**\n* bugfix for health event error reporting\n\n**6.3.1**\n* fixed fps crash if the SDK doesn't run on the main thread (will output an error instead)\n\n**6.3.0**\n* Added health event\n* Includes FPS data measurement automatically sent at the end of the session\n\n**6.2.10**\n* small changes\n\n**6.2.9**\n* small correct for event uuid field name\n\n**6.2.8**\n* changed event uuid field name\n\n**6.2.7**\n* added event uuid to events sent\n\n**6.2.6**\n* changed target sdk to be 30 instead of 31\n\n**6.2.5**\n* removed imei identifiers and other alternative identifiers from user identifier logic\n\n**6.2.4**\n* fixed impression event methods for wrapper SDKs\n\n**6.2.3**\n* added app set id to events when it is available\n\n**6.2.2**\n* added error events to be sent for invalid custom event fields used\n* added optional mergeFields argument to event methods to merge with global custom fields instead of overwrite them\n\n**6.2.1**\n* fixed missing custom event fields for when trying to fix missing session end events\n\n**6.2.0**\n* added global custom event fields function to allow to add custom fields to events sent automatically by the SDK\n\n**6.1.1**\n* added missing function for impression events\n* added functionality to force a new user in a/b testing without having to uninstall app first, simply use custom user id function to set a new user id which hasn't been used yet\n\n**6.1.0**\n* added custom events fields feature\n\n**6.0.1**\n* added flutter to sdk version validator\n\n**6.0.0**\n* Changed user identifier logic in preparation for Google changes to GAID. User id for a new install is now a randomised GUID. Existing installs that update SDK will continue using previous identifier logic. It is recommended to update as soon as possible to reduce impact on calculated metrics.\n\n**5.4.4**\n* prepared for google advertising identifier changes (will not use google advertising identifier when user has opted out)\n\n**5.4.3**\n* added support for max and aequus for impression events\n\n**5.4.2**\n* added helper methods for topon and hyperbid impression events\n\n**5.4.1**\n* fix for OAID logic\n\n**5.4.0**\n* added support for OAID\n* renamed a lot of function names in the gameanalytics api so this might break your build\n\n**5.3.7**\n* correction in validator for client ts\n\n**5.3.6**\n* fix to validator for client ts\n\n**5.3.5**\n* updated validator for client ts\n\n**5.3.4**\n* removed memory info in crash log for automatic crash reproting\n\n**5.3.3**\n* fixed C++ wrapper\n\n**5.3.2**\n* corrected ad event annotation\n\n**5.3.1**\n* updated validator for impression events\n\n**5.3.0**\n* added ad network version as argument for impression events\n\n**5.2.7**\n* improved user identifier flow\n\n**5.2.6**\n* fixed google ad id not updating after reset id only if you totally kill the app and then restart it, now it will update after starting a new session\n\n**5.2.5**\n* removed android:allowBackup=\"true\" from manifest file since the value by default is true anyway\n\n**5.2.4**\n* fixed progression events with scores\n\n**5.2.3**\n* added godot engine version validator\n\n**5.2.2**\n* fix instant app bug\n\n**5.2.1**\n* fix to instant app fallback\n\n**5.2.0**\n* added new impression event, see documentation for more info\n\n**5.1.4**\n* added support for instant apps\n\n**5.1.3**\n* improved event processing queue thread\n\n**5.1.2**\n* added session_num init requests\n\n**5.1.1**\n* removed gender, birth year and facebook methods\n\n**5.1.0**\n* added option to auto detect app version to use for build field\n\n**5.0.2**\n* small remote configs fix\n\n**5.0.1**\n* corrected naming of function\n\n**5.0.0**\n* Remote Config calls have been updated and the old calls have deprecated. Please see GA documentation for the new SDK calls and migration guide\n* A/B testing support added\n* new ad event added\n\n**4.4.0**\n* improved device identifier flow\n* OPS: refactored IMEI code out into a seperate library, please check the documentation page for how to use it now (only relevant for apps using IMEI ids)\n* removed dependency to google play services\n\n**4.3.4**\n* correct urls for events\n\n**4.3.3**\n* added more internal error logging\n\n**4.3.2**\n* added better internal error logging\n\n**4.3.1**\n* removed unused fabric vesion file\n\n**4.3.0**\n* added enable/disable event submission function\n\n**4.2.0**\n* added automatic error reporting\n\n**4.1.2**\n* fixed validation for business events\n\n**4.1.1**\n* fixes to c++ wrapper\n\n**4.1.0**\n* added generic c++ wrapper\n\n**4.0.1**\n* updated google play services version\n\n**4.0.0**\n* added command center functionality\n\n**3.6.3**\n* fix to collecting channel id\n\n**3.6.2**\n* added stencyl version validator\n\n**3.6.1**\n* added custom dimensions to design and error events\n\n**3.6.0**\n* fixes for session handling\n\n**3.5.12**\n* events are now prevented from being added to internal database when no session has started yet\n* fixed bug which could potentially skew session length metrics\n\n**3.5.11**\n* fixed various bugs\n* updated version of google play services library that the SDK is compiled against\n\n**3.5.10**\n* added 'construct' to version validator\n\n**3.5.9**\n* added 'cordova' value to version validator\n\n**3.5.8**\n* 'install' field added to session start events when called for the first time\n\n**3.5.7**\n* added 'nativescript' value to version validator\n\n**3.5.6**\n* added more general exception around http requests\n\n**3.5.5**\n* small correction to use int instead of double for session num\n\n**3.5.4**\n* small fix to IMEI request code\n\n**3.5.3**\n* fixed IMEI request code to be within a valid range (16-bits)\n\n**3.5.2**\n* added defold version validator\n\n**3.5.1**\n* stop sending events http request if there is no events to send\n\n**3.5.0**\n* changed the behaviour of using IMEI with the 'READ_PHONE_STATE' permission to guarantee precise analytics for certain regions\n\n**3.4.18**\n* updated to v10.2.1 of Google Play Services libraries\n\n**3.4.17**\n* added fallback if sdk is used without google play services libraries\n\n**3.4.16**\n* bug fix for end session when using manual session handling\n\n**3.4.15**\n* minor fix for app version validation\n\n**3.4.14**\n* session length precision improvement\n\n**3.4.13**\n* validator bug fixes\n\n**3.4.12**\n* version validator updated with gamemaker\n\n**3.4.11**\n* bug fix to google AID fallback\n\n**3.4.10**\n* added app signature and channel id (which app store was the app installed from)\n* added IMEI as fallback option for identifier when Google AID and Android ID is not available on the device (requires to add optional READ_PHONE_STATE permission)\n\n**3.4.9**\n* updated to use https instead of http for sending events\n\n**3.4.8**\n* added bundle_id, app version and app build tracking\n\n**3.4.7**\n* fixed onstop crash when using manual session handling\n\n**3.4.6**\n* possible to set custom dimensions and demographics before initialising sdk\n\n**3.4.5**\n* fixed bug when using manual session handling\n\n**3.4.4**\n* allowing not to send value with design events instead of sending 0\n\n**3.4.3**\n* bug fix to design events sent without value\n\n**3.4.2**\n* changed from using com.google.android.gms:play-services-basement:9.4.0 and com.google.android.gms:play-services-ads:9.4.0 to only use com.google.android.gms:play-services-base:9.4.0 dependency\n\n**3.4.1**\n* small fix related to manual session handling\n\n**3.4.0**\n* updated google play services libraries to 9.4.0\n\n**3.3.1**\n* fixed bug for client timestamp handling and session length in certain edge cases\n\n**3.3.0**\n* manual session handling functionality added\n\n**3.2.6**\n* external storage read and write permissions are now optional\n\n**3.2.5**\n* fixed validator to allow 'cocos2d' as sdk wrapper\n\n**3.2.4**\n* fixed the AndroidManifest.xml inside the .aar file\n\n**3.2.3**\n* fixed bug related to network changes for Android API level 23 and above\n\n**3.2.2**\n* updated google play services libraries to 8.4.0\n\n**3.2.1**\n* moved custom id from initialize method to separate configuration method\n\n**3.2.0**\n* added custom user id option\n* minor refactoring\n\n**3.1.0**\n* modified session end detection when using third party ads\n* minor bug fixes\n\n**3.0.1**\n* fix issue for offline initialization\n\n**3.0.0**\n* new java-only implementation\n* install size reduced\n\n**2.3.1**\n* android.permission.WRITE_EXTERNAL_STORAGE not needed anymore\n\n**2.3.0**\n* fixed tracking bug with ad opt out enabled\n\n**2.2.2**\n* no network connection bug fix\n\n**2.2.1**\n* fix related to connection changes\n\n**2.2.0**\n* 'Receiver not registered' bug fix\n\n**2.1.0**\n* improved code structure\n* added new (optional) initialization process (see wiki documentation)\n* minor bug fixes\n\n**2.0.4**\n* increased allowed character count to 64 for many parameters\n\n**2.0.4**\n* increased allowed character count to 64 for many parameters\n\n**2.0.3**\n* fix for session length\n\n**2.0.2**\n* improved session handling\n* GAPlatform.initializeWithContext(Context context) is now deprecated use GAPlatform.initializeWithActivity(Activity activity) instead, see https://github.com/GameAnalytics/GA-SDK-ANDROID/wiki/Using-the-SDK for more details\n* minor bug fixes\n\n**2.0.1**\n* minor bug fixes\n\n**2.0.0**\n* Android SDK for V2 api\n* progression event\n* validated business event\n* resource event\n* custom dimensions\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameanalytics%2Fga-sdk-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgameanalytics%2Fga-sdk-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameanalytics%2Fga-sdk-android/lists"}