IEnumerator RequestAd(VreoAdCanvas.MediaType mediaType, VreoAdCanvas.Category category, string spotId, bool isClickable, RandomAdRequestCallback callback = null) { // request and wait for advertiser id RequestAdvertisingIdentifier(); yield return(new WaitWhile(() => HasAdvertiserId && _advertiserIdSupportEnabled)); // create new request var randomAdRequest = new AdRequest { ID_GameDev = developerId, str_DevAccessToken = developerAccessToken, ID_Game = developerGameId, ID_MediaType = (int)mediaType, ID_Category = (int)category, ID_Spot = spotId, str_Device = DeviceId, dat_Timestamp = GetTimestampString() }; if (LocationServiceHelper.Instance.LocationReceived) { randomAdRequest.dec_Latitude = LocationServiceHelper.Instance.LastLocation.latitude; randomAdRequest.dec_Longitude = LocationServiceHelper.Instance.LastLocation.longitude; } var jsonString = JsonUtility.ToJson(randomAdRequest); var pData = System.Text.Encoding.ASCII.GetBytes(jsonString.ToCharArray()); var request = CreateWebRequest(isClickable ? RequestRandomClickableAdUrl : RequestRandomAdUrl, pData); // Wait until the response is returned yield return(request.SendWebRequest()); if (!string.IsNullOrEmpty(request.error)) { if (Debug.isDebugBuild) { print("Error response: " + request.error); print("Error Message: " + request.downloadHandler.text); } var randomVreoResponse = new VreoResponse { success = false, result = new Result { ID_MediaType = randomAdRequest.ID_MediaType } }; callback?.Invoke(randomVreoResponse); } else { var randomVreoResponse = JsonUtility.FromJson <VreoResponse>(request.downloadHandler.text); callback?.Invoke(randomVreoResponse); } }
// ============================================================================== // RequestRandomAd // ============================================================================== public static void RequestRandomAd(VreoAdCanvas.MediaType mediaType, VreoAdCanvas.Category category, string spotId, bool isClickable, RandomAdRequestCallback callback) { Instance.StartCoroutine(Instance.RequestAd(mediaType, category, spotId, isClickable, callback)); }