             {
                 function RecursiveWrap():void { CheckAdvertIdSuccess(count + 1); }
 
-                var timer:Timer = new Timer(50, 1);
+                var timer:Timer = new Timer(50, 1); // timer takes a delay, which in this case re-tests the successful send of the AdvertisingId.  It needs to be high enough to guarantee regular-case success, but low enough to fail within a reasonable time-limit
                 timer.addEventListener(TimerEvent.TIMER, Wrap(RecursiveWrap, "RecursiveWrap_" + count));
                 timer.start();
             }

            // Try to login, but if we fail, just fall-back and try to create character
            PlayFabClientAPI.LoginWithEmailAddress(loginRequest, Wrap(LoginWithAdvertisingId_LoginSuccess, "LoginWithAdvertisingId"), Wrap(Shared_ApiCallFailure, "LoginWithAdvertisingId"));
            function RecursiveWrap():void { CheckAdvertIdSuccess(-1); }
            Wrap(RecursiveWrap, "RecursiveWrap_First")();
        }
        private function LoginWithAdvertisingId_LoginSuccess(result:com.playfab.ClientModels.LoginResult) : void
        {

        private function CheckAdvertIdSuccess(count:Number) : void
        {
            TickTestHandler();
            if (count > 20) // count is the number of attempts to test the successful send of the AdvertisingId.  It needs to be high enough to guarantee regular-case success, but low enough to fail within a reasonable time-limit
            {
                ASyncAssert.Fail("AdvertisingId not sent properly: " + PlayFabSettings.AdvertisingIdType);
            }
