protected override void TestLeaderboard(AN_Leaderboard leaderboard, AN_LeaderboardsClient client)
        {
            foreach (var variant in leaderboard.Variants)
            {
                if (variant.Collection == AN_Leaderboard.Collection.Public && variant.TimeSpan == AN_Leaderboard.TimeSpan.AllTime)
                {
                    long score = variant.RawPlayerScore;
                    score++;

                    client.SubmitScoreImmediate(leaderboard.LeaderboardId, score, "Test_tag", (submitResult) => {
                        if (submitResult.IsSucceeded)
                        {
                            var scoreSubmissionData = submitResult.Data;
                            AN_Logger.Log("SubmitScoreImmediate completed");
                            AN_Logger.Log("scoreSubmissionData.PlayerId: " + scoreSubmissionData.PlayerId);
                            AN_Logger.Log("scoreSubmissionData.LeaderboardId: " + scoreSubmissionData.LeaderboardId);

                            foreach (AN_Leaderboard.TimeSpan span in (AN_Leaderboard.TimeSpan[])System.Enum.GetValues(typeof(AN_Leaderboard.TimeSpan)))
                            {
                                var scoreSubmissionResult = scoreSubmissionData.GetScoreResult(span);
                                AN_Logger.Log("scoreSubmissionData.FormattedScore: " + scoreSubmissionResult.FormattedScore);
                                AN_Logger.Log("scoreSubmissionData.NewBest: " + scoreSubmissionResult.NewBest);
                                AN_Logger.Log("scoreSubmissionData.RawScore: " + scoreSubmissionResult.RawScore);
                                AN_Logger.Log("scoreSubmissionData.ScoreTag: " + scoreSubmissionResult.ScoreTag);
                            }
                        }

                        SetAPIResult(submitResult);
                    });
                    return;
                }
            }
        }
        /// <summary>
        /// use this to submit leader board data, with call back
        /// </summary>
        public void SubmitLeaderboardImmediate(string leaderboardId, int incrementalData, string scoreTag,
                                               [CanBeNull] string leaderboardName = null)
        {
            if (!CheckGPlayReady())
            {
                Debug.Log("GMS api not available...");
                return;
            }

            _leaderBoardsClient.SubmitScoreImmediate(leaderboardId, incrementalData, scoreTag, (result) =>
            {
                if (result.IsSucceeded)
                {
                    var scoreSubmissionData = result.Data;
                    Debug.Log("SubmitScoreImmediate completed");
                    Debug.Log("scoreSubmissionData.PlayerId: " + scoreSubmissionData.PlayerId);
                    Debug.Log("scoreSubmissionData.LeaderboardId: " + scoreSubmissionData.LeaderboardId);

                    foreach (AN_Leaderboard.TimeSpan span in (AN_Leaderboard.TimeSpan[])System.Enum.GetValues(
                                 typeof(AN_Leaderboard.TimeSpan)))
                    {
                        var scoreSubmissionResult = scoreSubmissionData.GetScoreResult(span);
                        Debug.Log("scoreSubmissionData.FormattedScore: " + scoreSubmissionResult.FormattedScore);
                        Debug.Log("scoreSubmissionData.NewBest: " + scoreSubmissionResult.NewBest);
                        Debug.Log("scoreSubmissionData.RawScore: " + scoreSubmissionResult.RawScore);
                        Debug.Log("scoreSubmissionData.ScoreTag: " + scoreSubmissionResult.ScoreTag);
                    }
                }
                else
                {
                    Debug.Log("Failed to Submit Score Immediate " + result.Error.FullMessage);
                }
            });

            //Debug.Log("Leaderboard Submit -> " + (leaderboardName ?? leaderboardId) + ", value: " + incrementalData);
        }