private static void TestEmitRewardedVideoReceivedRewardEvent(string adUnitId, string label, object amount, bool shouldFail = false) { const string successMessage = "OnRewardedVideoReceivedRewardEvent triggered."; Action <string, string, float> successHandler = (_adUnitId, _label, _amount) => { Assert.That(_adUnitId, Is.EqualTo(adUnitId)); Assert.That(_label, Is.EqualTo(label)); Assert.That(_amount, Is.EqualTo(amount)); Debug.Log(successMessage); }; const string failureMessage = "OnRewardedVideoFailedEvent triggered."; Action <string, string> failureHandler = (_adUnitId, _error) => { Assert.That(_adUnitId, Is.EqualTo(adUnitId)); Debug.Log(failureMessage); }; MoPubManager.OnRewardedVideoReceivedRewardEvent += successHandler; MoPubManager.OnRewardedVideoFailedEvent += failureHandler; try { var mpm = new MoPubManager(); mpm.EmitRewardedVideoReceivedRewardEvent(MoPubUtils.EncodeArgs(adUnitId, label, amount.ToString())); LogAssert.Expect(LogType.Log, shouldFail ? failureMessage : successMessage); } finally { MoPubManager.OnRewardedVideoReceivedRewardEvent -= successHandler; MoPubManager.OnRewardedVideoFailedEvent -= failureHandler; } }
// Banner Listeners public void EmitAdLoadedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 3); var adUnitId = args[0]; var width = args[1]; var height = args[2]; float parsedHeight; var parseSucceeded = float.TryParse(height, NumberStyles.Float, CultureInfo.InvariantCulture, out parsedHeight); MoPubLog.Log("EmitAdLoadedEvent", MoPubLog.AdLogEvent.LoadSuccess); MoPubLog.Log("EmitAdLoadedEvent", "Size received: {0}x{1}", width, height); MoPubLog.Log("EmitAdLoadedEvent", MoPubLog.AdLogEvent.ShowSuccess); if (!parseSucceeded) { EmitAdFailedEvent(MoPubUtils.EncodeArgs(adUnitId, "Failed to parse AdLoadedEvent due to invalid ad " + "height: (" + height + ")")); return; } var evt = OnAdLoadedEvent; if (evt != null) { evt(adUnitId, parsedHeight); } }
private static void EmitImpressionTrackedEventHandler(string argsJson, bool background = false) { var args = MoPubUtils.DecodeArgs(argsJson, min: 1); var adUnitId = args[0]; var impressionData = new MoPub.ImpressionData(); if (args.Length > 1) { if (background || OnImpressionTrackedEventBg == null) // Only include data on *one* event. { impressionData = MoPub.ImpressionData.FromJson(args[1]); } else if (OnImpressionTrackedEvent != null) // Only log if user is subscribed to *both* events. { Debug.Log("Suppressing impression data from `OnImpressionTrackedEvent` since it was already delivered" + " to `OnImpressionTrackedEventBg`."); } } var evt = background ? OnImpressionTrackedEventBg : OnImpressionTrackedEvent; if (evt != null) { evt(adUnitId, impressionData); } }
public void EmitRewardedVideoReceivedRewardEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 3); var adUnitId = args[0]; var label = args[1]; var amount = args[2]; float parsedAmount; var parseSucceeded = float.TryParse(amount, NumberStyles.Float, CultureInfo.InvariantCulture, out parsedAmount); MoPubLog.Log("EmitRewardedVideoReceivedRewardEvent", MoPubLog.AdLogEvent.ShouldReward, label, amount); if (!parseSucceeded) { EmitRewardedVideoFailedEvent(MoPubUtils.EncodeArgs(adUnitId, "Failed to parse RewardedVideoReceivedRewardEvent due to invalid rewarded amount: (" + amount + ")." + " Please ensure the reward info is configured properly on your advertising dashboard.")); return; } var evt = OnRewardedVideoReceivedRewardEvent; if (evt != null) { evt(adUnitId, label, parsedAmount); } }
private static void TestEmitAdLoadedEvent(string adUnitId, object width, object height, bool shouldFail = false) { const string successMessage = "OnAdLoadedEvent triggered."; Action <string, float> successHandler = (_adUnitId, _height) => { Assert.That(_adUnitId, Is.EqualTo(adUnitId)); Assert.That(_height, Is.EqualTo(height)); Debug.Log(successMessage); }; const string failureMessage = "OnAdFailedEvent triggered."; Action <string, string> failureHandler = (_adUnitId, _error) => { Assert.That(_adUnitId, Is.EqualTo(adUnitId)); Debug.Log(failureMessage); }; MoPubManager.OnAdLoadedEvent += successHandler; MoPubManager.OnAdFailedEvent += failureHandler; try { var mpm = new MoPubManager(); mpm.EmitAdLoadedEvent(MoPubUtils.EncodeArgs(adUnitId, width.ToString(), height.ToString())); LogAssert.Expect(LogType.Log, shouldFail ? failureMessage : successMessage); } finally { MoPubManager.OnAdLoadedEvent -= successHandler; MoPubManager.OnAdFailedEvent -= failureHandler; } }
public void EmitSdkInitializedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 1); var adUnitId = args[0]; var logLevel = MoPub.LogLevel.None; if (args.Length > 1) { try { logLevel = (MoPub.LogLevel)Enum.Parse(typeof(MoPub.LogLevel), args[1]); } catch (ArgumentException) { Debug.LogWarning("Invalid LogLevel received: " + args[1]); } } else { Debug.LogWarning("No LogLevel received"); } MoPubLog.Log("EmitSdkInitializedEvent", MoPubLog.SdkLogEvent.InitFinished, logLevel); var evt = OnSdkInitializedEvent; if (evt != null) { evt(adUnitId); } }
public void CompareVersionsWithFirstSmaller() { Assert.That(MoPubUtils.CompareVersions("0", "1"), Is.EqualTo(-1)); Assert.That(MoPubUtils.CompareVersions("0.9", "1.0"), Is.EqualTo(-1)); Assert.That(MoPubUtils.CompareVersions("0.9.99", "1.0.0"), Is.EqualTo(-1)); Assert.That(MoPubUtils.CompareVersions("0.9.99", "0.10.0"), Is.EqualTo(-1)); Assert.That(MoPubUtils.CompareVersions("0.9.99", "0.9.100"), Is.EqualTo(-1)); }
public void DecodeArgsWithValueShouldYieldListWithValue() { var res = MoPubUtils.DecodeArgs("[\"a\"]", 0); Assert.That(res, Is.Not.Null); Assert.That(res.Length, Is.EqualTo(1)); Assert.That(res[0], Is.EqualTo("a")); }
public void DecodeArgsWithInvalidShouldErrorAndYieldEmptyList() { var res = MoPubUtils.DecodeArgs("{\"a\"]", 0); LogAssert.Expect(LogType.Error, "Invalid JSON data: {\"a\"]"); Assert.That(res, Is.Not.Null); Assert.That(res.Length, Is.EqualTo(0)); }
public void EmitNativeLoadEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 2); var adUnitId = args[0]; var data = AbstractNativeAd.Data.FromJson(args[1]); MoPubLog.Log("EmitNativeLoadEvent", MoPubLog.AdLogEvent.LoadSuccess); EmitNativeLoadEvent(adUnitId, data); }
public void CompareVersionsWithEmptyValues() { Assert.That(MoPubUtils.CompareVersions("", ""), Is.EqualTo(0)); Assert.That(MoPubUtils.CompareVersions("", "1"), Is.EqualTo(-1)); Assert.That(MoPubUtils.CompareVersions("1", ""), Is.EqualTo(1)); Assert.That(MoPubUtils.CompareVersions(null, null), Is.EqualTo(0)); Assert.That(MoPubUtils.CompareVersions(null, "1"), Is.EqualTo(-1)); Assert.That(MoPubUtils.CompareVersions("1", null), Is.EqualTo(1)); }
public void DecodeArgsWithExpectedValuesShouldYieldListWithDesiredValues() { var res = MoPubUtils.DecodeArgs("[\"a\", \"b\", \"c\"]", 3); Assert.That(res, Is.Not.Null); Assert.That(res.Length, Is.EqualTo(3)); Assert.That(res[0], Is.EqualTo("a")); Assert.That(res[1], Is.EqualTo("b")); Assert.That(res[2], Is.EqualTo("c")); }
public void DecodeArgsWithoutMinimumValuesShouldErrorAndYieldListWithDesiredLength() { var res = MoPubUtils.DecodeArgs("[\"a\", \"b\"]", 3); LogAssert.Expect(LogType.Error, "Missing one or more values: [\"a\", \"b\"] (expected 3)"); Assert.That(res, Is.Not.Null); Assert.That(res.Length, Is.EqualTo(3)); Assert.That(res[0], Is.EqualTo("a")); Assert.That(res[1], Is.EqualTo("b")); Assert.That(res[2], Is.EqualTo("")); }
public void EmitRewardedVideoLeavingApplicationEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 1); var adUnitId = args[0]; var evt = OnRewardedVideoLeavingApplicationEvent; if (evt != null) { evt(adUnitId); } }
/// <summary> /// Sends off an asynchronous network request to load the MoPub consent dialog. The two possible resulting events /// are <see cref="MoPubManager.OnConsentDialogLoadedEvent"/> and /// <see cref="MoPubManager.OnConsentDialogFailedEvent"/>. /// </summary> public static void LoadConsentDialog() { if (IsGdprApplicable ?? false) { MoPubLog.Log("LoadConsentDialog", MoPubLog.ConsentLogEvent.LoadAttempted); MoPubManager.MoPubPlatformApi.LoadConsentDialog(); } else { MoPubManager.Instance.EmitConsentDialogFailedEvent(MoPubUtils.EncodeArgs("GDPR does not apply.")); } }
public void EmitRewardedVideoClosedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 1); var adUnitId = args[0]; MoPubLog.Log("EmitRewardedVideoClosedEvent", MoPubLog.AdLogEvent.Dismissed); var evt = OnRewardedVideoClosedEvent; if (evt != null) { evt(adUnitId); } }
public void EmitRewardedVideoFailedToPlayEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 2); var adUnitId = args[0]; var error = args[1]; var evt = OnRewardedVideoFailedToPlayEvent; if (evt != null) { evt(adUnitId, error); } }
public void EmitInterstitialClickedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 1); var adUnitId = args[0]; MoPubLog.Log("EmitInterstitialClickedEvent", MoPubLog.AdLogEvent.Tapped); var evt = OnInterstitialClickedEvent; if (evt != null) { evt(adUnitId); } }
public void EmitAdCollapsedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 1); var adUnitId = args[0]; MoPubLog.Log("EmitAdCollapsedEvent", MoPubLog.AdLogEvent.Collapsed); var evt = OnAdCollapsedEvent; if (evt != null) { evt(adUnitId); } }
public void EmitConsentDialogFailedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 1); var err = args[0]; MoPubLog.Log("EmitConsentDialogFailedEvent", MoPubLog.ConsentLogEvent.LoadFailed, err); var evt = OnConsentDialogFailedEvent; if (evt != null) { evt(err); } }
public void EmitNativeFailEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 2); var adUnitId = args[0]; var error = args[1]; MoPubLog.Log("EmitNativeFailEvent", MoPubLog.AdLogEvent.LoadFailed, adUnitId, error); var evt = OnNativeFailEvent; if (evt != null) { evt(adUnitId, error); } }
public void EmitRewardedVideoReceivedRewardEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 3); var adUnitId = args[0]; var label = args[1]; var amountStr = args[2]; MoPubLog.Log("EmitRewardedVideoReceivedRewardEvent", MoPubLog.AdLogEvent.ShouldReward, label, amountStr); var evt = OnRewardedVideoReceivedRewardEvent; if (evt != null) { evt(adUnitId, label, Single.Parse(amountStr, CultureInfo.InvariantCulture)); } }
public void EmitImpressionTrackedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 1); var adUnitId = args[0]; var impressionData = args.Length > 1 ? MoPub.ImpressionData.FromJson(args[1]) : new MoPub.ImpressionData(); var evt = OnImpressionTrackedEvent; if (evt != null) { evt(adUnitId, impressionData); } }
public void EmitConsentStatusChangedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 3); var oldConsent = MoPub.Consent.FromString(args[0]); var newConsent = MoPub.Consent.FromString(args[1]); var canCollectPersonalInfo = args[2].ToLower() == "true"; MoPubLog.Log("EmitConsentStatusChangedEvent", MoPubLog.ConsentLogEvent.Updated, oldConsent, newConsent, canCollectPersonalInfo ? "" : "not", "unknown"); var evt = OnConsentStatusChangedEvent; if (evt != null) { evt(oldConsent, newConsent, canCollectPersonalInfo); } }
// Banner Listeners public void EmitAdLoadedEvent(string argsJson) { var args = MoPubUtils.DecodeArgs(argsJson, min: 3); var adUnitId = args[0]; var width = args[1]; var height = args[2]; MoPubLog.Log("EmitAdLoadedEvent", MoPubLog.AdLogEvent.LoadSuccess); MoPubLog.Log("EmitAdLoadedEvent", "Size received: {0}x{1}", width, height); MoPubLog.Log("EmitAdLoadedEvent", MoPubLog.AdLogEvent.ShowSuccess); var evt = OnAdLoadedEvent; if (evt != null) { evt(adUnitId, Single.Parse(height, CultureInfo.InvariantCulture)); } }
private static string GetJsonEntry(string key, object value) { return(value != null ? "\"" + key + "\":\"" + MoPubUtils.InvariantCultureToString(value) + "\"," : ""); }
private void SdkRow(SdkInfo info, Func <bool, bool> customButton = null) { var lat = info.LatestVersion; var cur = info.CurrentVersion; var isInst = !string.IsNullOrEmpty(cur); var canInst = !string.IsNullOrEmpty(lat) && (!isInst || MoPubUtils.CompareVersions(cur, lat) < 0); // Is any async job in progress? var stillWorking = coroutine != null || downloader != null; string tooltip = string.Empty; if (isInst && (MoPubUtils.CompareVersions(cur, lat) != 0 || testing)) { tooltip += "\n Installed: " + cur; } if (info.NetworkVersions != null) { string version; if (info.NetworkVersions.TryGetValue(PackageConfig.Platform.ANDROID, out version)) { tooltip += "\n Android SDK: " + version; } if (info.NetworkVersions.TryGetValue(PackageConfig.Platform.IOS, out version)) { tooltip += "\n iOS SDK: " + version; } } if (!string.IsNullOrEmpty(tooltip)) { tooltip = info.Name + "\n Package: " + (lat ?? "n/a") + tooltip; } GUILayout.Space(4); using (new EditorGUILayout.HorizontalScope(GUILayout.ExpandWidth(false))) { GUILayout.Space(10); EditorGUILayout.LabelField(new GUIContent { text = info.Name, tooltip = tooltip }); GUILayout.Button(new GUIContent { text = lat ?? "--", tooltip = tooltip }, canInst ? EditorStyles.boldLabel : EditorStyles.label); GUILayout.Space(3); if (customButton == null || !customButton(canInst)) { GUI.enabled = !stillWorking && (canInst || testing); if (GUILayout.Button(new GUIContent { text = isInst ? "Upgrade" : "Install", tooltip = tooltip }, fieldWidth)) { this.StartCoroutine(DownloadSDK(info)); } GUI.enabled = true; } if (!string.IsNullOrEmpty(info.Instructions) && (info.Instructions != helpLink || testing)) { if (GUILayout.Button("?", GUILayout.ExpandWidth(false))) { Application.OpenURL(info.Instructions); } } else { // Need to fill space so that the Install/Upgrade buttons all line up nicely. GUILayout.Button(" ", EditorStyles.label, GUILayout.Width(17)); } GUILayout.Space(5); } GUILayout.Space(4); }
public static ImpressionData FromJson(string json) { var impData = new ImpressionData(); if (string.IsNullOrEmpty(json)) { return(impData); } var fields = MJ.Json.Deserialize(json) as Dictionary <string, object>; if (fields == null) { return(impData); } object obj; double parsedDouble; int parsedInt; if (fields.TryGetValue("app_version", out obj) && obj != null) { impData.AppVersion = obj.ToString(); } if (fields.TryGetValue("adunit_id", out obj) && obj != null) { impData.AdUnitId = obj.ToString(); } if (fields.TryGetValue("adunit_name", out obj) && obj != null) { impData.AdUnitName = obj.ToString(); } if (fields.TryGetValue("adunit_format", out obj) && obj != null) { impData.AdUnitFormat = obj.ToString(); } if (fields.TryGetValue("id", out obj) && obj != null) { impData.ImpressionId = obj.ToString(); } if (fields.TryGetValue("currency", out obj) && obj != null) { impData.Currency = obj.ToString(); } if (fields.TryGetValue("publisher_revenue", out obj) && obj != null && double.TryParse(MoPubUtils.InvariantCultureToString(obj), NumberStyles.Any, CultureInfo.InvariantCulture, out parsedDouble)) { impData.PublisherRevenue = parsedDouble; } if (fields.TryGetValue("adgroup_id", out obj) && obj != null) { impData.AdGroupId = obj.ToString(); } if (fields.TryGetValue("adgroup_name", out obj) && obj != null) { impData.AdGroupName = obj.ToString(); } if (fields.TryGetValue("adgroup_type", out obj) && obj != null) { impData.AdGroupType = obj.ToString(); } if (fields.TryGetValue("adgroup_priority", out obj) && obj != null && int.TryParse(MoPubUtils.InvariantCultureToString(obj), NumberStyles.Any, CultureInfo.InvariantCulture, out parsedInt)) { impData.AdGroupPriority = parsedInt; } if (fields.TryGetValue("country", out obj) && obj != null) { impData.Country = obj.ToString(); } if (fields.TryGetValue("precision", out obj) && obj != null) { impData.Precision = obj.ToString(); } if (fields.TryGetValue("network_name", out obj) && obj != null) { impData.NetworkName = obj.ToString(); } if (fields.TryGetValue("network_placement_id", out obj) && obj != null) { impData.NetworkPlacementId = obj.ToString(); } impData.JsonRepresentation = json; return(impData); }
public void CompareVersionsWithEqual() { Assert.That(MoPubUtils.CompareVersions("1", "1"), Is.EqualTo(0)); Assert.That(MoPubUtils.CompareVersions("1.0", "1.0"), Is.EqualTo(0)); Assert.That(MoPubUtils.CompareVersions("1.0.0", "1.0.0"), Is.EqualTo(0)); }