/// <summary> /// Use to create multiple Ads. /// </summary> /// <param name="descs">Your AdDesc settings.</param> /// <param name="createdCallback">The callback that fires when done.</param> /// <returns>Returns array of Ad objects</returns> public static Ad[] CreateAd(AdDesc[] descs, AdCreatedCallbackMethod createdCallback) { if (creatingAds) { Debug.LogError("You must wait for the last ads to finish being created!"); if (createdCallback != null) { createdCallback(false); } return(null); } creatingAds = true; AdManager.createdCallback = createdCallback; int startLength = plugins.Count; for (int i = 0; i != descs.Length; ++i) { plugins.Add(AdPluginAPI.New(descs[i], async_CreatedCallback)); } var ads = new Ad[descs.Length]; for (int i = 0, i2 = startLength; i != descs.Length; ++i, ++i2) { ads[i] = new Ad(plugins[i2]); } return(ads); }
public DFP_AdPlugin_iOS(AdDesc desc, AdCreatedCallbackMethod createdCallback) { #if !IOS_DISABLE_GOOGLE_ADS bool pass = true; try { eventCallback = desc.EventCallback; native = DFP_InitAd(desc.Testing); int gravity = convertGravity(desc.iOS_DFP_AdGravity); DFP_CreateAd(native, gravity, convertAdSize(desc.iOS_DFP_AdSize), desc.iOS_DFP_UnitID); Visible = desc.Visible; } catch (Exception e) { Debug.LogError(e.Message); pass = false; } if (createdCallback != null) { createdCallback(pass); } #endif }
/// <summary> /// Dumy constructor. /// </summary> /// <param name="desc"></param> /// <param name="createdCallback"></param> public Dumy_AdPlugin(AdDesc desc, AdCreatedCallbackMethod createdCallback) { Visible = desc.Visible; if (createdCallback != null) { createdCallback(true); } }
public iAd_AdPlugin_iOS(AdDesc desc, AdCreatedCallbackMethod createdCallback) { eventCallback = desc.EventCallback; native = iAd_InitAd(desc.Testing); int gravity = convertGravity(desc.iOS_iAd_AdGravity); iAd_CreateAd(native, gravity); Visible = desc.Visible; if (createdCallback != null) createdCallback(true); }
public iAd_AdPlugin_iOS(AdDesc desc, AdCreatedCallbackMethod createdCallback) { eventCallback = desc.EventCallback; native = iAd_InitAd(desc.Testing); int gravity = convertGravity(desc.iOS_iAd_AdGravity); iAd_CreateAd(native, gravity); Visible = desc.Visible; if (createdCallback != null) { createdCallback(true); } }
public AdPlugin(AdDesc desc, AdCreatedCallbackMethod createdCallback) { bool pass = true; try { this.desc = desc; if (!desc.UseClassicGUI) { // Create Ad Canvas adCanvas = new GameObject("Editor Ad"); GameObject.DontDestroyOnLoad(adCanvas); adCanvas.AddComponent <RectTransform>(); var canvas = adCanvas.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvas.sortingOrder = desc.UnityUI_SortIndex; adCanvas.AddComponent <CanvasScaler>(); adCanvas.AddComponent <GraphicRaycaster>(); // Create ad var ad = new GameObject("AdButtonImage"); ad.transform.parent = adCanvas.transform; adRect = ad.AddComponent <RectTransform>(); adImage = ad.AddComponent <Image>(); adImage.sprite = Resources.Load <Sprite>("Reign/Ads/DemoAd"); adImage.preserveAspect = true; var button = ad.AddComponent <Button>(); button.onClick.AddListener(adClicked); } // set default visible state and gravity Visible = desc.Visible; SetGravity(desc.Editor_AdGravity); // set screen size changed callback ReignServices.ScreenSizeChangedCallback += ReignServices_ScreenSizeChangedCallback; } catch (Exception e) { Debug.LogError(e.Message); pass = false; } if (createdCallback != null) { createdCallback(pass); } }
public DFP_AdPlugin_Android(AdDesc desc, AdCreatedCallbackMethod createdCallback) { this.createdCallback = createdCallback; try { eventCallback = desc.EventCallback; native = new AndroidJavaClass("com.reignstudios.reignnative.DFP_AdsNative"); visible = desc.Visible; id = Guid.NewGuid().ToString(); native.CallStatic("CreateAd", desc.Android_DFP_UnitID, desc.Testing, desc.Visible, convertGravity(desc.Android_DFP_AdGravity), convertAdSize(desc.Android_DFP_AdSize), id); } catch (Exception e) { Debug.LogError(e.Message); if (createdCallback != null) createdCallback(false); } }
/// <summary> /// Use to create a single Ad. /// </summary> /// <param name="desc">Your AdDesc settings.</param> /// <param name="createdCallback">The callback that fires when done.</param> /// <returns>Returns Ad object</returns> public static Ad CreateAd(AdDesc desc, AdCreatedCallbackMethod createdCallback) { if (creatingAds) { Debug.LogError("You must wait for the last ad to finish being created!"); if (createdCallback != null) { createdCallback(false); } return(null); } creatingAds = true; AdManager.createdCallback = createdCallback; plugins.Add(AdPluginAPI.New(desc, async_CreatedCallback)); return(new Ad(plugins[plugins.Count - 1])); }
public AdPlugin(AdDesc desc, AdCreatedCallbackMethod createdCallback) { bool pass = true; try { this.desc = desc; if (!desc.UseClassicGUI) { // Create Ad Canvas adCanvas = new GameObject("Editor Ad"); GameObject.DontDestroyOnLoad(adCanvas); adCanvas.AddComponent<RectTransform>(); var canvas = adCanvas.AddComponent<Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvas.sortingOrder = desc.UnityUI_SortIndex; adCanvas.AddComponent<CanvasScaler>(); adCanvas.AddComponent<GraphicRaycaster>(); // Create ad var ad = new GameObject("AdButtonImage"); ad.transform.parent = adCanvas.transform; adRect = ad.AddComponent<RectTransform>(); adImage = ad.AddComponent<Image>(); adImage.sprite = Resources.Load<Sprite>("Reign/Ads/DemoAd"); adImage.preserveAspect = (desc.Editor_FixedWidthOverride <= 0 || desc.Editor_FixedHeightOverride <= 0); var button = ad.AddComponent<Button>(); button.onClick.AddListener(adClicked); } // set default visible state and gravity Visible = desc.Visible; SetGravity(desc.Editor_AdGravity); // set screen size changed callback ReignServices.ScreenSizeChangedCallback += ReignServices_ScreenSizeChangedCallback; } catch (Exception e) { Debug.LogError(e.Message); pass = false; } if (createdCallback != null) createdCallback(pass); }
public AdMob_AdPlugin_iOS(AdDesc desc, AdCreatedCallbackMethod createdCallback) { bool pass = true; try { eventCallback = desc.EventCallback; native = AdMob_InitAd(desc.Testing); int gravity = convertGravity(desc.iOS_AdMob_AdGravity); AdMob_CreateAd(native, gravity, convertAdSize(desc.iOS_AdMob_AdSize), desc.iOS_AdMob_UnitID); Visible = desc.Visible; } catch (Exception e) { Debug.LogError(e.Message); pass = false; } if (createdCallback != null) createdCallback(pass); }
public Amazon_AdPlugin_Android(AdDesc desc, AdCreatedCallbackMethod createdCallback) { this.createdCallback = createdCallback; try { eventCallback = desc.EventCallback; native = new AndroidJavaClass("com.reignstudios.reignnative.Amazon_AdsNative"); visible = desc.Visible; id = Guid.NewGuid().ToString(); native.CallStatic("CreateAd", desc.Android_AmazonAds_ApplicationKey, desc.Testing, desc.Visible, convertGravity(desc.Android_AmazonAds_AdGravity), convertAdSize(desc.Android_AmazonAds_AdSize), desc.Android_AmazonAds_RefreshRate, id); } catch (Exception e) { Debug.LogError(e.Message); if (createdCallback != null) { createdCallback(false); } } }
public AdMob_AdPlugin_Native(AdDesc desc, AdCreatedCallbackMethod createdCallback) { eventCallback = desc.EventCallback; testing = desc.Testing; WinRTPlugin.Dispatcher.BeginInvoke(delegate() { bool pass = true; try { adView = new AdView(); setGravity(desc.WP8_AdMob_AdGravity); adView.AdUnitID = desc.WP8_AdMob_UnitID; adView.Format = desc.WP8_AdMob_AdSize == WP8_AdMob_AdSize.Banner ? AdFormats.Banner : AdFormats.SmartBanner; setVisible(desc.Visible); adView.ReceivedAd += adView_ReceivedAd; adView.FailedToReceiveAd += adView_FailedToReceiveAd; WinRTPlugin.AdGrid.Children.Add(adView); AdRequest request = new AdRequest(); //request.ForceTesting = desc.Testing;// Looks like there is a bug in AdMob if this is enabled. adView.LoadAd(request); Debug.Log("Created Ad of AdUnitID: " + adView.AdUnitID); } catch (Exception e) { pass = false; Debug.LogError(e.Message); } if (createdCallback != null) { createdCallback(pass); } }); }
public DFP_AdPlugin_iOS(AdDesc desc, AdCreatedCallbackMethod createdCallback) { #if !IOS_DISABLE_GOOGLE_ADS bool pass = true; try { eventCallback = desc.EventCallback; native = DFP_InitAd(desc.Testing); int gravity = convertGravity(desc.iOS_DFP_AdGravity); DFP_CreateAd(native, gravity, convertAdSize(desc.iOS_DFP_AdSize), desc.iOS_DFP_UnitID); Visible = desc.Visible; } catch (Exception e) { Debug.LogError(e.Message); pass = false; } if (createdCallback != null) createdCallback(pass); #endif }
public AdMob_AdPlugin_Native(AdDesc desc, AdCreatedCallbackMethod createdCallback) { eventCallback = desc.EventCallback; testing = desc.Testing; WinRTPlugin.Dispatcher.BeginInvoke(delegate() { bool pass = true; try { adView = new AdView(); setGravity(desc.WP8_AdMob_AdGravity); adView.AdUnitID = desc.WP8_AdMob_UnitID; adView.Format = desc.WP8_AdMob_AdSize == WP8_AdMob_AdSize.Banner ? AdFormats.Banner : AdFormats.SmartBanner; setVisible(desc.Visible); adView.ReceivedAd += adView_ReceivedAd; adView.FailedToReceiveAd += adView_FailedToReceiveAd; WinRTPlugin.AdGrid.Children.Add(adView); AdRequest request = new AdRequest(); //request.ForceTesting = desc.Testing;// Looks like there is a bug in AdMob if this is enabled. adView.LoadAd(request); Debug.Log("Created Ad of AdUnitID: " + adView.AdUnitID); } catch (Exception e) { pass = false; Debug.LogError(e.Message); } if (createdCallback != null) createdCallback(pass); }); }
public AdMob_AdPlugin_iOS(AdDesc desc, AdCreatedCallbackMethod createdCallback) { bool pass = true; try { eventCallback = desc.EventCallback; native = AdMob_InitAd(desc.Testing); int gravity = convertGravity(desc.iOS_AdMob_AdGravity); AdMob_CreateAd(native, gravity, convertAdSize(desc.iOS_AdMob_AdSize), desc.iOS_AdMob_UnitID); Visible = desc.Visible; } catch (Exception e) { Debug.LogError(e.Message); pass = false; } if (createdCallback != null) { createdCallback(pass); } }
private IEnumerator asyncRefresh(AdCreatedCallbackMethod createdCallback) { if (!Visible) { yield break; } string url = "http://ads.mp.mydas.mobi/getAd?"; url += "&apid=" + apid; // ID url += "&auid=" + deviceID; // Device UID Hash HEX value url += "&ua=" + userAgent; url += "&uip=" + externalIP; Debug.Log("Ad Request URL: " + url); var www = new WWW(url); yield return(www); if (!string.IsNullOrEmpty(www.error)) { Debug.LogError(www.error); if (createdCallback != null) { createdCallback(false); } else if (adEvent != null) { adEvent(AdEvents.Error, www.error); } yield break; } if (www.text.Contains(@"""error""")) { Debug.LogError(www.text); if (createdCallback != null) { createdCallback(false); } else if (adEvent != null) { adEvent(AdEvents.Error, www.text); } yield break; } //Debug.Log("Request Text: " + www.text); if (string.IsNullOrEmpty(www.text)) { string error = "Invalid server responce! No data!"; Debug.LogError(error); if (createdCallback != null) { createdCallback(false); } else if (adEvent != null) { adEvent(AdEvents.Error, error); } yield break; } try { var xml = new XmlSerializer(typeof(Reign.MM_AdXML.Ad)); #if UNITY_WINRT var str = System.Text.Reign.Encoding.Singleton.GetString(www.bytes, 0, www.bytes.Length).Replace(@"[:_mm_campaignid:]&[:_mm_advertiserid:]?", ""); #else var str = System.Text.Encoding.Default.GetString(www.bytes).Replace(@"[:_mm_campaignid:]&[:_mm_advertiserid:]?", ""); #endif using (var stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(str))) { adMeta = (Reign.MM_AdXML.Ad)xml.Deserialize(stream); } } catch (Exception e) { Debug.LogError(e.Message); Debug.LogError("Responce Text: " + www.text); if (adEvent != null) { adEvent(AdEvents.Error, e.Message); } yield break; } string imageURL = adMeta.image.url.Content; Debug.Log("MMWeb Ad ImageURL: " + imageURL); www = new WWW(imageURL); yield return(www); if (gifImage != null) { gifImage.Dispose(); gifImage = null; } gifImage = new TextureGIF(www.bytes, frameUpdatedCallback); if (desc.UseClassicGUI) { guiTexture = gifImage.CurrentFrame.Texture; } else { adImage.sprite = gifImage.CurrentFrame.Sprite; } var texture = gifImage.CurrentFrame.Texture; Debug.Log(string.Format("Ad Image Size: {0}x{1}", texture.width, texture.height)); SetGravity(gravity); if (adEvent != null) { adEvent(AdEvents.Refreshed, null); } }
private IEnumerator init(AdCreatedCallbackMethod createdCallback) { // request Ad if (testing) { var www = new WWW("http://media.mydas.mobi/images/rich/T/test_mm/collapsed.gif"); yield return(www); var data = www.bytes; if (data == null || data.Length == 0) { Debug.LogError("Test Ad failed to loadb"); if (createdCallback != null) { createdCallback(false); } yield break; } gifImage = new TextureGIF(data, frameUpdatedCallback); if (desc.UseClassicGUI) { guiTexture = gifImage.CurrentFrame.Texture; } else { adImage.sprite = gifImage.CurrentFrame.Sprite; } SetGravity(gravity); var texture = gifImage.CurrentFrame.Texture; Debug.Log(string.Format("Ad Image Size: {0}x{1}", texture.width, texture.height)); if (createdCallback != null) { createdCallback(true); } if (adEvent != null) { adEvent(AdEvents.Refreshed, null); } } else { // get external IP address var ipWWW = new WWW("http://checkip.dyndns.org/"); yield return(ipWWW); var match = Regex.Match(ipWWW.text, @"Current IP Address\: (\d*\.\d*\.\d*\.\d*)"); if (!match.Success) { if (createdCallback != null) { createdCallback(false); } yield break; } externalIP = match.Groups[1].Value; Debug.Log("External IP: " + externalIP); // load ad service.StartCoroutine(asyncRefresh(createdCallback)); } }
public MM_AdPlugin(AdDesc desc, AdCreatedCallbackMethod createdCallback, MonoBehaviour service) { this.service = service; try { this.desc = desc; testing = desc.Testing; adEvent = desc.EventCallback; gravity = AdGravity.CenterScreen; #if !DISABLE_REIGN #if UNITY_EDITOR refreshRate = desc.Editor_MillennialMediaAdvertising_RefreshRate; apid = desc.Editor_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.Editor_MillennialMediaAdvertising_AdGravity; uiScale = desc.Editor_AdScale; #elif UNITY_BLACKBERRY refreshRate = desc.BB10_MillennialMediaAdvertising_RefreshRate; apid = desc.BB10_MillennialMediaAdvertising_APID; IntPtr handle = IntPtr.Zero; if (Common.deviceinfo_get_details(ref handle) != 0) { throw new Exception("Failed: deviceinfo_get_details"); } string deviceType = Common.deviceinfo_details_get_keyboard(handle) == 0 ? "Touch" : "Kbd"; Common.deviceinfo_free_details(ref handle); string osVersion = System.Text.RegularExpressions.Regex.Match(SystemInfo.operatingSystem, @"\d*\.\d*\.\d*\.\d*").Groups[0].Value; userAgent = WWW.EscapeURL("Mozilla/5.0 (BB10; " + deviceType + ") AppleWebKit/537.10+ (KHTML, like Gecko) Version/" + osVersion + " Mobile Safari/537.10+"); gravity = desc.BB10_MillennialMediaAdvertising_AdGravity; uiScale = desc.BB10_AdScale; #elif UNITY_WP8 refreshRate = desc.WP8_MillennialMediaAdvertising_RefreshRate; apid = desc.WP8_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.WP8_MillennialMediaAdvertising_AdGravity; uiScale = desc.WP8_AdScale; #elif UNITY_METRO refreshRate = desc.WinRT_MillennialMediaAdvertising_RefreshRate; apid = desc.WinRT_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.WinRT_MillennialMediaAdvertising_AdGravity; uiScale = desc.WinRT_AdScale; #elif UNITY_IOS refreshRate = desc.iOS_MillennialMediaAdvertising_RefreshRate; apid = desc.iOS_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.iOS_MillennialMediaAdvertising_AdGravity; uiScale = desc.iOS_AdScale; #elif UNITY_ANDROID refreshRate = desc.Android_MillennialMediaAdvertising_RefreshRate; apid = desc.Android_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.Android_MillennialMediaAdvertising_AdGravity; uiScale = desc.Android_AdScale; #elif UNITY_STANDALONE_WIN refreshRate = desc.Win32_MillennialMediaAdvertising_RefreshRate; apid = desc.Win32_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.Win32_MillennialMediaAdvertising_AdGravity; uiScale = desc.Win32_AdScale; #elif UNITY_STANDALONE_OSX refreshRate = desc.OSX_MillennialMediaAdvertising_RefreshRate; apid = desc.OSX_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.OSX_MillennialMediaAdvertising_AdGravity; uiScale = desc.OSX_AdScale; #elif UNITY_STANDALONE_LINUX refreshRate = desc.Linux_MillennialMediaAdvertising_RefreshRate; apid = desc.Linux_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.Linux_MillennialMediaAdvertising_AdGravity; uiScale = desc.Linux_AdScale; #endif #endif // make sure ad refresh rate doesn't go under 1 min if (refreshRate < 60) { refreshRate = 60; } // create or get device ID if (PlayerPrefs.HasKey("Reign_MMWebAds_DeviceID")) { deviceID = PlayerPrefs.GetString("Reign_MMWebAds_DeviceID"); } else { #if UNITY_EDITOR || UNITY_STANDALONE var hash = new SHA1CryptoServiceProvider().ComputeHash(Guid.NewGuid().ToByteArray()); deviceID = BitConverter.ToString(hash).ToLower(); #else deviceID = Guid.NewGuid().ToString().Replace("-", "0").ToLower() + "0000"; #endif PlayerPrefs.SetString("Reign_MMWebAds_DeviceID", deviceID); } if (desc.UseClassicGUI) { guiSytle = new GUIStyle() { stretchWidth = true, stretchHeight = true }; } else { // Create Ad Canvas adCanvas = new GameObject("MM Ad"); GameObject.DontDestroyOnLoad(adCanvas); adCanvas.AddComponent <RectTransform>(); var canvas = adCanvas.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvas.sortingOrder = 1000; adCanvas.AddComponent <CanvasScaler>(); adCanvas.AddComponent <GraphicRaycaster>(); // Create ad var ad = new GameObject("AdButtonImage"); ad.transform.parent = adCanvas.transform; adRect = ad.AddComponent <RectTransform>(); adImage = ad.AddComponent <Image>(); adImage.sprite = Resources.Load <Sprite>("Reign/Ads/AdLoading"); adImage.preserveAspect = true; var button = ad.AddComponent <Button>(); button.onClick.AddListener(adClicked); } // set default visible state Visible = desc.Visible; SetGravity(gravity); // load ad service.StartCoroutine(init(createdCallback)); // set screen size changed callback ReignServices.ScreenSizeChangedCallback += ReignServices_ScreenSizeChangedCallback; } catch (Exception e) { Debug.LogError(e.Message); if (createdCallback != null) { createdCallback(false); } } }
public MicrosoftAdvertising_AdPlugin_Native(AdDesc desc, AdCreatedCallbackMethod createdCallback) { init(desc, createdCallback); }
private async void init(AdDesc desc, AdCreatedCallbackMethod createdCallback) #endif { if (WinRTPlugin.AdGrid == null) { if (createdCallback != null) createdCallback(false); return; } #if WINDOWS_PHONE WinRTPlugin.Dispatcher.BeginInvoke(delegate() #else await WinRTPlugin.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, delegate() #endif { bool pass = true; try { adControl = new AdControl(); #if WINDOWS_PHONE || UNITY_WP_8_1 adControl.IsAutoRefreshEnabled = desc.WP8_MicrosoftAdvertising_UseBuiltInRefresh; if (!desc.WP8_MicrosoftAdvertising_UseBuiltInRefresh) { manualRefreshTimer = new DispatcherTimer(); manualRefreshTimer.Interval = TimeSpan.FromSeconds(desc.WP8_MicrosoftAdvertising_RefreshRate); manualRefreshTimer.Tick += timer_Tick; manualRefreshTimer.Start(); } adControl.IsEngagedChanged += adControl_IsEngagedChanged; adControl.AdRefreshed += adControl_AdRefreshed; #else adControl.IsAutoRefreshEnabled = desc.WinRT_MicrosoftAdvertising_UseBuiltInRefresh; if (!desc.WinRT_MicrosoftAdvertising_UseBuiltInRefresh) { manualRefreshTimer = new DispatcherTimer(); manualRefreshTimer.Interval = TimeSpan.FromSeconds(desc.WinRT_MicrosoftAdvertising_RefreshRate); manualRefreshTimer.Tick += timer_Tick; manualRefreshTimer.Start(); } adControl.IsEngagedChanged += adControl_IsEngagedChanged; adControl.AdRefreshed += adControl_AdRefreshed; #endif adControl.ErrorOccurred += adControl_ErrorOccurred; #if WINDOWS_PHONE adControl.SetValue(System.Windows.Controls.Canvas.ZIndexProperty, 98); #else adControl.SetValue(Windows.UI.Xaml.Controls.Canvas.ZIndexProperty, 98); #endif #if WINDOWS_PHONE || UNITY_WP_8_1 adControl.ApplicationId = desc.Testing ? "test_client" : desc.WP8_MicrosoftAdvertising_ApplicationID; adControl.AdUnitId = desc.WP8_MicrosoftAdvertising_UnitID; switch (desc.WP8_MicrosoftAdvertising_AdSize) { case WP8_MicrosoftAdvertising_AdSize.Wide_640x100: adControl.Width = 640; adControl.Height = 100; if (desc.Testing) adControl.AdUnitId = "Image640_100"; break; case WP8_MicrosoftAdvertising_AdSize.Wide_480x80: adControl.Width = 480; adControl.Height = 80; if (desc.Testing) adControl.AdUnitId = "Image480_80"; break; case WP8_MicrosoftAdvertising_AdSize.Wide_320x50: adControl.Width = 320; adControl.Height = 50; if (desc.Testing) adControl.AdUnitId = "Image320_50"; break; case WP8_MicrosoftAdvertising_AdSize.Wide_300x50: adControl.Width = 300; adControl.Height = 50; if (desc.Testing) adControl.AdUnitId = "Image300_50"; break; default: Debug.LogError("AdPlugin: Unsuported Ad size"); break; } #elif UNITY_METRO adControl.ApplicationId = desc.Testing ? "d25517cb-12d4-4699-8bdc-52040c712cab" : desc.WinRT_MicrosoftAdvertising_ApplicationID; adControl.AdUnitId = desc.WinRT_MicrosoftAdvertising_UnitID; switch (desc.WinRT_MicrosoftAdvertising_AdSize) { case WinRT_MicrosoftAdvertising_AdSize.Tall_160x600: adControl.Width = 160; adControl.Height = 600; if (desc.Testing) adControl.AdUnitId = "10043134"; break; case WinRT_MicrosoftAdvertising_AdSize.Tall_300x600: adControl.Width = 300; adControl.Height = 600; if (desc.Testing) adControl.AdUnitId = "10043030"; break; case WinRT_MicrosoftAdvertising_AdSize.Wide_300x250: adControl.Width = 300; adControl.Height = 250; if (desc.Testing) adControl.AdUnitId = "10043008"; break; case WinRT_MicrosoftAdvertising_AdSize.Wide_728x90: adControl.Width = 728; adControl.Height = 90; if (desc.Testing) adControl.AdUnitId = "10042998"; break; case WinRT_MicrosoftAdvertising_AdSize.Square_250x250: adControl.Width = 250; adControl.Height = 250; if (desc.Testing) adControl.AdUnitId = "10043105"; break; default: Debug.LogError("AdPlugin: Unsuported Ad size"); break; } #endif #if WINDOWS_PHONE || UNITY_WP_8_1 setGravity(desc.WP8_MicrosoftAdvertising_AdGravity); #else setGravity(desc.WinRT_MicrosoftAdvertising_AdGravity); #endif eventCallback = desc.EventCallback; WinRTPlugin.AdGrid.Children.Add(adControl); setVisible(desc.Visible); Debug.Log("Created Ad of ApplicationID: " + adControl.ApplicationId + " AdUnitID" + adControl.AdUnitId); } catch (Exception e) { adControl = null; Debug.LogError(e.Message); } ReignServices.InvokeOnUnityThread(delegate { if (createdCallback != null) createdCallback(pass); }); }); }
/// <summary> /// Use to create multiple Ads. /// </summary> /// <param name="descs">Your AdDesc settings.</param> /// <param name="createdCallback">The callback that fires when done.</param> /// <returns>Returns array of Ad objects</returns> public static Ad[] CreateAd(AdDesc[] descs, AdCreatedCallbackMethod createdCallback) { if (creatingAds) { Debug.LogError("You must wait for the last ads to finish being created!"); if (createdCallback != null) createdCallback(false); return null; } creatingAds = true; AdManager.createdCallback = createdCallback; int startLength = plugins.Count; for (int i = 0; i != descs.Length; ++i) plugins.Add(AdPluginAPI.New(descs[i], async_CreatedCallback)); var ads = new Ad[descs.Length]; for (int i = 0, i2 = startLength; i != descs.Length; ++i, ++i2) ads[i] = new Ad(plugins[i2]); return ads; }
/// <summary> /// Used by the Reign plugin. /// </summary> /// <param name="desc">The Ad desc.</param> /// <param name="callback">The callback fired when done.</param> /// <returns>Returns Ad interface</returns> public static IAdPlugin New(AdDesc desc, AdCreatedCallbackMethod callback) { #if DISABLE_REIGN return new Dumy_AdPlugin(desc, callback); #elif UNITY_EDITOR if (desc.Editor_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.Editor_AdAPI == AdAPIs.EditorTestAd) return new AdPlugin(desc, callback); else if (desc.Editor_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else throw new Exception("Unsuported Editor_AdAPI: " + desc.Editor_AdAPI); #elif UNITY_WP8 if (desc.WP8_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.WP8_AdAPI == AdAPIs.MicrosoftAdvertising) return new MicrosoftAdvertising_AdPlugin_WinRT(desc, callback); else if (desc.WP8_AdAPI == AdAPIs.AdMob) return new AdMob_AdPlugin_WP8(desc, callback); else if (desc.WP8_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else throw new Exception("Unsuported WP8_AdAPI: " + desc.WP8_AdAPI); #elif UNITY_METRO if (desc.WinRT_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.WinRT_AdAPI == AdAPIs.MicrosoftAdvertising) return new MicrosoftAdvertising_AdPlugin_WinRT(desc, callback); else if (desc.WinRT_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else if (desc.WinRT_AdAPI == AdAPIs.AdDuplex) return new AdDuplex_AdPlugin_WinRT(desc, callback); else throw new Exception("Unsuported WinRT_AdAPI: " + desc.WinRT_AdAPI); #elif UNITY_BLACKBERRY if (desc.BB10_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.BB10_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else throw new Exception("Unsuported BB10_AdAPI: " + desc.BB10_AdAPI); #elif UNITY_IOS if (desc.iOS_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.iOS_AdAPI == AdAPIs.iAd) return new iAd_AdPlugin_iOS(desc, callback); else if (desc.iOS_AdAPI == AdAPIs.AdMob) return new AdMob_AdPlugin_iOS(desc, callback); else if (desc.iOS_AdAPI == AdAPIs.DFP) return new DFP_AdPlugin_iOS(desc, callback); else if (desc.iOS_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else throw new Exception("Unsuported iOS_AdAPI: " + desc.iOS_AdAPI); #elif UNITY_ANDROID if (desc.Android_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.Android_AdAPI == AdAPIs.AdMob) return new AdMob_AdPlugin_Android(desc, callback); else if (desc.Android_AdAPI == AdAPIs.DFP) return new DFP_AdPlugin_Android(desc, callback); else if (desc.Android_AdAPI == AdAPIs.Amazon) return new Amazon_AdPlugin_Android(desc, callback); else if (desc.Android_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else throw new Exception("Unsuported Android_AdAPI: " + desc.Android_AdAPI); #elif UNITY_STANDALONE_WIN if (desc.Win32_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.Win32_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else throw new Exception("Unsuported Win32_AdAPI: " + desc.Win32_AdAPI); #elif UNITY_STANDALONE_OSX if (desc.OSX_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.OSX_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else throw new Exception("Unsuported OSX_AdAPI: " + desc.OSX_AdAPI); #elif UNITY_STANDALONE_LINUX if (desc.Linux_AdAPI == AdAPIs.None) return new Dumy_AdPlugin(desc, callback); else if (desc.Linux_AdAPI == AdAPIs.MillennialMediaAdvertising) return new MM_AdPlugin(desc, callback, ReignServices.Singleton); else throw new Exception("Unsuported Linux_AdAPI: " + desc.Linux_AdAPI); #else return new Dumy_AdPlugin(desc, callback); #endif }
public AdDuplex_AdPlugin_WinRT(AdDesc desc, AdCreatedCallbackMethod createdCallback) { InitNative(this, desc, createdCallback); }
public AdDuplex_AdPlugin_Native(AdDesc desc, AdCreatedCallbackMethod createdCallback) { init(desc, createdCallback); }
private async void init(AdDesc desc, AdCreatedCallbackMethod createdCallback) { if (WinRTPlugin.AdGrid == null) { if (createdCallback != null) createdCallback(false); return; } await WinRTPlugin.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, delegate() { bool pass = true; try { adControl = new AdControl(); adControl.AdClick += adControl_Clicked; adControl.AdLoaded += adControl_AdRefreshed; adControl.AdLoadingError += adControl_ErrorOccurred; adControl.AdCovered += adControl_AdCovered; adControl.NoAd += adControl_NoAd; adControl.IsTest = desc.Testing; adControl.CollapseOnError = true; adControl.SetValue(Windows.UI.Xaml.Controls.Canvas.ZIndexProperty, 98); #if UNITY_WP_8_1 adControl.RefreshInterval = desc.WP8_AdDuplex_RefreshRate; adControl.AppKey = desc.WP8_AdDuplex_ApplicationKey; adControl.AdUnitId = desc.WP8_AdDuplex_UnitID; #else adControl.RefreshInterval = desc.WinRT_AdDuplex_RefreshRate; adControl.AppKey = desc.WinRT_AdDuplex_ApplicationKey; adControl.AdUnitId = desc.WinRT_AdDuplex_UnitID; switch (desc.WinRT_AdDuplex_AdSize) { case WinRT_AdDuplex_AdSize.Tall_160x600: adControl.Size = "160x600"; break; case WinRT_AdDuplex_AdSize.Wide_250x125: adControl.Size = "250x125"; break; case WinRT_AdDuplex_AdSize.Wide_292x60: adControl.Size = "292x60"; break; case WinRT_AdDuplex_AdSize.Wide_300x250: adControl.Size = "300x250"; break; case WinRT_AdDuplex_AdSize.Wide_500x130: adControl.Size = "500x130"; break; case WinRT_AdDuplex_AdSize.Wide_728x90: adControl.Size = "728x90"; break; case WinRT_AdDuplex_AdSize.Square_250x250: adControl.Size = "250x250"; break; default: Debug.LogError("AdPlugin: Unsuported Ad size"); break; } #endif #if UNITY_WP_8_1 setGravity(desc.WP8_AdDuplex_AdGravity); #else setGravity(desc.WinRT_AdDuplex_AdGravity); #endif eventCallback = desc.EventCallback; WinRTPlugin.AdGrid.Children.Add(adControl); setVisible(desc.Visible); Debug.Log("Created Ad of AppKey: " + adControl.AppKey + " AdUnitID" + adControl.AdUnitId); } catch (Exception e) { adControl = null; Debug.LogError(e.Message); } UnityEngine.WSA.Application.InvokeOnAppThread(()=> { if (createdCallback != null) createdCallback(pass); }, false); }); }
private async void init(AdDesc desc, AdCreatedCallbackMethod createdCallback) #endif { if (WinRTPlugin.AdGrid == null) { if (createdCallback != null) { createdCallback(false); } return; } #if WINDOWS_PHONE WinRTPlugin.Dispatcher.BeginInvoke(delegate() #else await WinRTPlugin.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, delegate() #endif { bool pass = true; try { adControl = new AdControl(); #if WINDOWS_PHONE || UNITY_WP_8_1 adControl.IsAutoRefreshEnabled = desc.WP8_MicrosoftAdvertising_UseBuiltInRefresh; if (!desc.WP8_MicrosoftAdvertising_UseBuiltInRefresh) { manualRefreshTimer = new DispatcherTimer(); manualRefreshTimer.Interval = TimeSpan.FromSeconds(desc.WP8_MicrosoftAdvertising_RefreshRate); manualRefreshTimer.Tick += timer_Tick; manualRefreshTimer.Start(); } adControl.IsEngagedChanged += adControl_IsEngagedChanged; adControl.AdRefreshed += adControl_AdRefreshed; #else adControl.IsAutoRefreshEnabled = desc.WinRT_MicrosoftAdvertising_UseBuiltInRefresh; if (!desc.WinRT_MicrosoftAdvertising_UseBuiltInRefresh) { manualRefreshTimer = new DispatcherTimer(); manualRefreshTimer.Interval = TimeSpan.FromSeconds(desc.WinRT_MicrosoftAdvertising_RefreshRate); manualRefreshTimer.Tick += timer_Tick; manualRefreshTimer.Start(); } adControl.IsEngagedChanged += adControl_IsEngagedChanged; adControl.AdRefreshed += adControl_AdRefreshed; #endif adControl.ErrorOccurred += adControl_ErrorOccurred; #if WINDOWS_PHONE adControl.SetValue(System.Windows.Controls.Canvas.ZIndexProperty, 98); #else adControl.SetValue(Windows.UI.Xaml.Controls.Canvas.ZIndexProperty, 98); #endif #if WINDOWS_PHONE || UNITY_WP_8_1 adControl.ApplicationId = desc.Testing ? "test_client" : desc.WP8_MicrosoftAdvertising_ApplicationID; adControl.AdUnitId = desc.WP8_MicrosoftAdvertising_UnitID; switch (desc.WP8_MicrosoftAdvertising_AdSize) { case WP8_MicrosoftAdvertising_AdSize.Wide_640x100: adControl.Width = 640; adControl.Height = 100; if (desc.Testing) { adControl.AdUnitId = "Image640_100"; } break; case WP8_MicrosoftAdvertising_AdSize.Wide_480x80: adControl.Width = 480; adControl.Height = 80; if (desc.Testing) { adControl.AdUnitId = "Image480_80"; } break; case WP8_MicrosoftAdvertising_AdSize.Wide_320x50: adControl.Width = 320; adControl.Height = 50; if (desc.Testing) { adControl.AdUnitId = "Image320_50"; } break; case WP8_MicrosoftAdvertising_AdSize.Wide_300x50: adControl.Width = 300; adControl.Height = 50; if (desc.Testing) { adControl.AdUnitId = "Image300_50"; } break; default: Debug.LogError("AdPlugin: Unsuported Ad size"); break; } #elif UNITY_METRO adControl.ApplicationId = desc.Testing ? "d25517cb-12d4-4699-8bdc-52040c712cab" : desc.WinRT_MicrosoftAdvertising_ApplicationID; adControl.AdUnitId = desc.WinRT_MicrosoftAdvertising_UnitID; switch (desc.WinRT_MicrosoftAdvertising_AdSize) { case WinRT_MicrosoftAdvertising_AdSize.Tall_160x600: adControl.Width = 160; adControl.Height = 600; if (desc.Testing) { adControl.AdUnitId = "10043134"; } break; case WinRT_MicrosoftAdvertising_AdSize.Tall_300x600: adControl.Width = 300; adControl.Height = 600; if (desc.Testing) { adControl.AdUnitId = "10043030"; } break; case WinRT_MicrosoftAdvertising_AdSize.Wide_300x250: adControl.Width = 300; adControl.Height = 250; if (desc.Testing) { adControl.AdUnitId = "10043008"; } break; case WinRT_MicrosoftAdvertising_AdSize.Wide_728x90: adControl.Width = 728; adControl.Height = 90; if (desc.Testing) { adControl.AdUnitId = "10042998"; } break; case WinRT_MicrosoftAdvertising_AdSize.Square_250x250: adControl.Width = 250; adControl.Height = 250; if (desc.Testing) { adControl.AdUnitId = "10043105"; } break; default: Debug.LogError("AdPlugin: Unsuported Ad size"); break; } #endif #if WINDOWS_PHONE || UNITY_WP_8_1 setGravity(desc.WP8_MicrosoftAdvertising_AdGravity); #else setGravity(desc.WinRT_MicrosoftAdvertising_AdGravity); #endif eventCallback = desc.EventCallback; WinRTPlugin.AdGrid.Children.Add(adControl); setVisible(desc.Visible); Debug.Log("Created Ad of ApplicationID: " + adControl.ApplicationId + " AdUnitID" + adControl.AdUnitId); } catch (Exception e) { adControl = null; Debug.LogError(e.Message); } ReignServices.InvokeOnUnityThread(delegate { if (createdCallback != null) { createdCallback(pass); } }); }); }
private void init(AdDesc desc, AdCreatedCallbackMethod createdCallback)
/// <summary> /// Used by the Reign plugin. /// </summary> /// <param name="desc">The Ad desc.</param> /// <param name="callback">The callback fired when done.</param> /// <returns>Returns Ad interface</returns> public static IAdPlugin New(AdDesc desc, AdCreatedCallbackMethod callback) { #if DISABLE_REIGN return(new Dumy_AdPlugin(desc, callback)); #elif UNITY_EDITOR if (desc.Editor_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.Editor_AdAPI == AdAPIs.EditorTestAd) { return(new AdPlugin(desc, callback)); } else if (desc.Editor_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported Editor_AdAPI: " + desc.Editor_AdAPI); } #elif UNITY_WP8 if (desc.WP8_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.WP8_AdAPI == AdAPIs.MicrosoftAdvertising) { return(new MicrosoftAdvertising_AdPlugin_WinRT(desc, callback)); } else if (desc.WP8_AdAPI == AdAPIs.AdMob) { return(new AdMob_AdPlugin_WP8(desc, callback)); } else if (desc.WP8_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported WP8_AdAPI: " + desc.WP8_AdAPI); } #elif UNITY_METRO if (desc.WinRT_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.WinRT_AdAPI == AdAPIs.MicrosoftAdvertising) { return(new MicrosoftAdvertising_AdPlugin_WinRT(desc, callback)); } else if (desc.WinRT_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported WinRT_AdAPI: " + desc.WinRT_AdAPI); } #elif UNITY_BLACKBERRY if (desc.BB10_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.BB10_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported BB10_AdAPI: " + desc.BB10_AdAPI); } #elif UNITY_IOS if (desc.iOS_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.iOS_AdAPI == AdAPIs.iAd) { return(new iAd_AdPlugin_iOS(desc, callback)); } else if (desc.iOS_AdAPI == AdAPIs.AdMob) { return(new AdMob_AdPlugin_iOS(desc, callback)); } else if (desc.iOS_AdAPI == AdAPIs.DFP) { return(new DFP_AdPlugin_iOS(desc, callback)); } else if (desc.iOS_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported iOS_AdAPI: " + desc.iOS_AdAPI); } #elif UNITY_ANDROID if (desc.Android_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.Android_AdAPI == AdAPIs.AdMob) { return(new AdMob_AdPlugin_Android(desc, callback)); } else if (desc.Android_AdAPI == AdAPIs.DFP) { return(new DFP_AdPlugin_Android(desc, callback)); } else if (desc.Android_AdAPI == AdAPIs.Amazon) { return(new Amazon_AdPlugin_Android(desc, callback)); } else if (desc.Android_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported Android_AdAPI: " + desc.Android_AdAPI); } #elif UNITY_STANDALONE_WIN if (desc.Win32_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.Win32_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported Win32_AdAPI: " + desc.Win32_AdAPI); } #elif UNITY_STANDALONE_OSX if (desc.OSX_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.OSX_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported OSX_AdAPI: " + desc.OSX_AdAPI); } #elif UNITY_STANDALONE_LINUX if (desc.Linux_AdAPI == AdAPIs.None) { return(new Dumy_AdPlugin(desc, callback)); } else if (desc.Linux_AdAPI == AdAPIs.MillennialMediaAdvertising) { return(new MM_AdPlugin(desc, callback, ReignServices.Singleton)); } else { throw new Exception("Unsuported Linux_AdAPI: " + desc.Linux_AdAPI); } #else return(new Dumy_AdPlugin(desc, callback)); #endif }
public AdMob_AdPlugin_WP8(AdDesc desc, AdCreatedCallbackMethod createdCallback) { InitNative(this, desc, createdCallback); }
private static void init_MicrosoftAdvertising_AdPlugin(MicrosoftAdvertising_AdPlugin_WinRT plugin, AdDesc desc, AdCreatedCallbackMethod createdCallback) { plugin.Native = new MicrosoftAdvertising_AdPlugin_Native(desc, createdCallback); }
/// <summary> /// Dumy constructor. /// </summary> /// <param name="desc"></param> /// <param name="createdCallback"></param> public Dumy_AdPlugin(AdDesc desc, AdCreatedCallbackMethod createdCallback) { Visible = desc.Visible; if (createdCallback != null) createdCallback(true); }
private IEnumerator asyncRefresh(AdCreatedCallbackMethod createdCallback) { if (!Visible) yield break; string url = "http://ads.mp.mydas.mobi/getAd?"; url += "&apid=" + apid;// ID url += "&auid=" + deviceID;// Device UID Hash HEX value url += "&ua=" + userAgent; url += "&uip=" + externalIP; Debug.Log("Ad Request URL: " + url); var www = new WWW(url); yield return www; if (!string.IsNullOrEmpty(www.error)) { Debug.LogError(www.error); if (createdCallback != null) createdCallback(false); else if (adEvent != null) adEvent(AdEvents.Error, www.error); yield break; } if (www.text.Contains(@"""error""")) { Debug.LogError(www.text); if (createdCallback != null) createdCallback(false); else if (adEvent != null) adEvent(AdEvents.Error, www.text); yield break; } //Debug.Log("Request Text: " + www.text); if (string.IsNullOrEmpty(www.text)) { string error = "Invalid server responce! No data!"; Debug.LogError(error); if (createdCallback != null) createdCallback(false); else if (adEvent != null) adEvent(AdEvents.Error, error); yield break; } try { var xml = new XmlSerializer(typeof(Reign.MM_AdXML.Ad)); #if UNITY_WINRT var str = System.Text.Reign.Encoding.Singleton.GetString(www.bytes, 0, www.bytes.Length).Replace(@"[:_mm_campaignid:]&[:_mm_advertiserid:]?", ""); #else var str = System.Text.Encoding.Default.GetString(www.bytes).Replace(@"[:_mm_campaignid:]&[:_mm_advertiserid:]?", ""); #endif using (var stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(str))) { adMeta = (Reign.MM_AdXML.Ad)xml.Deserialize(stream); } } catch (Exception e) { Debug.LogError(e.Message); Debug.LogError("Responce Text: " + www.text); if (adEvent != null) adEvent(AdEvents.Error, e.Message); yield break; } string imageURL = adMeta.image.url.Content; Debug.Log("MMWeb Ad ImageURL: " + imageURL); www = new WWW(imageURL); yield return www; if (gifImage != null) { gifImage.Dispose(); gifImage = null; } gifImage = new TextureGIF(www.bytes, frameUpdatedCallback); if (desc.UseClassicGUI) guiTexture = gifImage.CurrentFrame.Texture; else adImage.sprite = gifImage.CurrentFrame.Sprite; var texture = gifImage.CurrentFrame.Texture; Debug.Log(string.Format("Ad Image Size: {0}x{1}", texture.width, texture.height)); SetGravity(gravity); if (adEvent != null) adEvent(AdEvents.Refreshed, null); }
public MicrosoftAdvertising_AdPlugin_WinRT(AdDesc desc, AdCreatedCallbackMethod createdCallback) { InitNative(this, desc, createdCallback); }
private static void init_AdMob_AdPlugin(AdMob_AdPlugin_WP8 plugin, AdDesc desc, AdCreatedCallbackMethod createdCallback) { #if !WINRT_DISABLE_GOOGLE_ADS plugin.Native = new AdMob_AdPlugin_Native(desc, createdCallback); #endif }
private static void init_AdDuplex_AdPlugin(AdDuplex_AdPlugin_WinRT plugin, AdDesc desc, AdCreatedCallbackMethod createdCallback) { #if !WINRT_DISABLE_ADDUPLEX_ADS plugin.Native = new AdDuplex_AdPlugin_Native(desc, createdCallback); #endif }
private IEnumerator asyncRefresh(AdCreatedCallbackMethod createdCallback) { if (!Visible) { yield break; } string url = "http://ads.mp.mydas.mobi/getAd?"; url += "&apid=" + apid; // ID url += "&auid=" + deviceID; // Device UID Hash HEX value url += "&ua=" + userAgent; url += "&uip=" + externalIP; Debug.Log("Ad Request URL: " + url); var www = new WWW(url); yield return(www); if (!string.IsNullOrEmpty(www.error)) { Debug.LogError(www.error); if (createdCallback != null) { createdCallback(false); } else if (adEvent != null) { adEvent(AdEvents.Error, www.error); } yield break; } if (www.text.Contains(@"""error""")) { Debug.LogError(www.text); if (createdCallback != null) { createdCallback(false); } else if (adEvent != null) { adEvent(AdEvents.Error, www.text); } yield break; } //Debug.Log("Request Text: " + www.text); if (string.IsNullOrEmpty(www.text)) { string error = "Invalid server responce! No data!"; Debug.LogError(error); if (createdCallback != null) { createdCallback(false); } else if (adEvent != null) { adEvent(AdEvents.Error, error); } yield break; } var xml = new XmlSerializer(typeof(Reign.MM_AdXML.Ad)); using (var data = new MemoryStream(www.bytes)) { adMeta = (Reign.MM_AdXML.Ad)xml.Deserialize(data); } string imageURL = adMeta.image.url.Content; Debug.Log("MMWeb Ad ImageURL: " + imageURL); www = new WWW(imageURL); yield return(www); if (gifImage != null) { gifImage.Dispose(); gifImage = null; } gifImage = new TextureGIF(www.bytes, frameUpdatedCallback); if (desc.UseClassicGUI) { guiTexture = gifImage.CurrentFrame.Texture; } else { adImage.sprite = gifImage.CurrentFrame.Sprite; } var texture = gifImage.CurrentFrame.Texture; Debug.Log(string.Format("Ad Image Size: {0}x{1}", texture.width, texture.height)); SetGravity(gravity); if (adEvent != null) { adEvent(AdEvents.Refreshed, null); } }
private static void init_MicrosoftAdvertising_AdPlugin(MicrosoftAdvertising_AdPlugin_WinRT plugin, AdDesc desc, AdCreatedCallbackMethod createdCallback) { #if !WINRT_DISABLE_MS_ADS plugin.Native = new MicrosoftAdvertising_AdPlugin_Native(desc, createdCallback); #endif }
private static void init_AdMob_AdPlugin(AdMob_AdPlugin_WP8 plugin, AdDesc desc, AdCreatedCallbackMethod createdCallback) { plugin.Native = new AdMob_AdPlugin_Native(desc, createdCallback); }
public MM_AdPlugin(AdDesc desc, AdCreatedCallbackMethod createdCallback, MonoBehaviour service) { this.service = service; try { this.desc = desc; testing = desc.Testing; adEvent = desc.EventCallback; gravity = AdGravity.CenterScreen; #if !DISABLE_REIGN #if UNITY_EDITOR refreshRate = desc.Editor_MillennialMediaAdvertising_RefreshRate; apid = desc.Editor_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.Editor_MillennialMediaAdvertising_AdGravity; uiScale = desc.Editor_AdScale; #elif UNITY_BLACKBERRY refreshRate = desc.BB10_MillennialMediaAdvertising_RefreshRate; apid = desc.BB10_MillennialMediaAdvertising_APID; IntPtr handle = IntPtr.Zero; if (Common.deviceinfo_get_details(ref handle) != 0) throw new Exception("Failed: deviceinfo_get_details"); string deviceType = Common.deviceinfo_details_get_keyboard(handle) == 0 ? "Touch" : "Kbd"; Common.deviceinfo_free_details(ref handle); string osVersion = System.Text.RegularExpressions.Regex.Match(SystemInfo.operatingSystem, @"\d*\.\d*\.\d*\.\d*").Groups[0].Value; userAgent = WWW.EscapeURL("Mozilla/5.0 (BB10; " + deviceType + ") AppleWebKit/537.10+ (KHTML, like Gecko) Version/" + osVersion + " Mobile Safari/537.10+"); gravity = desc.BB10_MillennialMediaAdvertising_AdGravity; uiScale = desc.BB10_AdScale; #elif UNITY_WP8 refreshRate = desc.WP8_MillennialMediaAdvertising_RefreshRate; apid = desc.WP8_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.WP8_MillennialMediaAdvertising_AdGravity; uiScale = desc.WP8_AdScale; #elif UNITY_METRO refreshRate = desc.WinRT_MillennialMediaAdvertising_RefreshRate; apid = desc.WinRT_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.WinRT_MillennialMediaAdvertising_AdGravity; uiScale = desc.WinRT_AdScale; #elif UNITY_IOS refreshRate = desc.iOS_MillennialMediaAdvertising_RefreshRate; apid = desc.iOS_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.iOS_MillennialMediaAdvertising_AdGravity; uiScale = desc.iOS_AdScale; #elif UNITY_ANDROID refreshRate = desc.Android_MillennialMediaAdvertising_RefreshRate; apid = desc.Android_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.Android_MillennialMediaAdvertising_AdGravity; uiScale = desc.Android_AdScale; #elif UNITY_STANDALONE_WIN refreshRate = desc.Win32_MillennialMediaAdvertising_RefreshRate; apid = desc.Win32_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.Win32_MillennialMediaAdvertising_AdGravity; uiScale = desc.Win32_AdScale; #elif UNITY_STANDALONE_OSX refreshRate = desc.OSX_MillennialMediaAdvertising_RefreshRate; apid = desc.OSX_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.OSX_MillennialMediaAdvertising_AdGravity; uiScale = desc.OSX_AdScale; #elif UNITY_STANDALONE_LINUX refreshRate = desc.Linux_MillennialMediaAdvertising_RefreshRate; apid = desc.Linux_MillennialMediaAdvertising_APID; userAgent = ""; gravity = desc.Linux_MillennialMediaAdvertising_AdGravity; uiScale = desc.Linux_AdScale; #endif #endif // make sure ad refresh rate doesn't go under 1 min if (refreshRate < 60) refreshRate = 60; // create or get device ID if (PlayerPrefs.HasKey("Reign_MMWebAds_DeviceID")) { deviceID = PlayerPrefs.GetString("Reign_MMWebAds_DeviceID"); } else { #if UNITY_EDITOR || UNITY_STANDALONE var hash = new SHA1CryptoServiceProvider().ComputeHash(Guid.NewGuid().ToByteArray()); deviceID = BitConverter.ToString(hash).ToLower(); #else deviceID = Guid.NewGuid().ToString().Replace("-", "0").ToLower() + "0000"; #endif PlayerPrefs.SetString("Reign_MMWebAds_DeviceID", deviceID); } if (desc.UseClassicGUI) { guiSytle = new GUIStyle() { stretchWidth = true, stretchHeight = true }; } else { // Create Ad Canvas adCanvas = new GameObject("MM Ad"); GameObject.DontDestroyOnLoad(adCanvas); adCanvas.AddComponent<RectTransform>(); var canvas = adCanvas.AddComponent<Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvas.sortingOrder = 1000; adCanvas.AddComponent<CanvasScaler>(); adCanvas.AddComponent<GraphicRaycaster>(); // Create ad var ad = new GameObject("AdButtonImage"); ad.transform.parent = adCanvas.transform; adRect = ad.AddComponent<RectTransform>(); adImage = ad.AddComponent<Image>(); adImage.sprite = Resources.Load<Sprite>("Reign/Ads/AdLoading"); adImage.preserveAspect = true; var button = ad.AddComponent<Button>(); button.onClick.AddListener(adClicked); } // set default visible state Visible = desc.Visible; SetGravity(gravity); // load ad service.StartCoroutine(init(createdCallback)); // set screen size changed callback ReignServices.ScreenSizeChangedCallback += ReignServices_ScreenSizeChangedCallback; } catch (Exception e) { Debug.LogError(e.Message); if (createdCallback != null) createdCallback(false); } }
/// <summary> /// Use to create a single Ad. /// </summary> /// <param name="desc">Your AdDesc settings.</param> /// <param name="createdCallback">The callback that fires when done.</param> /// <returns>Returns Ad object</returns> public static Ad CreateAd(AdDesc desc, AdCreatedCallbackMethod createdCallback) { if (creatingAds) { Debug.LogError("You must wait for the last ad to finish being created!"); if (createdCallback != null) createdCallback(false); return null; } creatingAds = true; AdManager.createdCallback = createdCallback; plugins.Add(AdPluginAPI.New(desc, async_CreatedCallback)); return new Ad(plugins[plugins.Count-1]); }
private async void init(AdDesc desc, AdCreatedCallbackMethod createdCallback) { if (WinRTPlugin.AdGrid == null) { if (createdCallback != null) { createdCallback(false); } return; } await WinRTPlugin.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, delegate() { bool pass = true; try { adControl = new AdControl(); adControl.AdClick += adControl_Clicked; adControl.AdLoaded += adControl_AdRefreshed; adControl.AdLoadingError += adControl_ErrorOccurred; adControl.AdCovered += adControl_AdCovered; adControl.NoAd += adControl_NoAd; adControl.IsTest = desc.Testing; adControl.CollapseOnError = true; adControl.SetValue(Windows.UI.Xaml.Controls.Canvas.ZIndexProperty, 98); #if UNITY_WP_8_1 adControl.RefreshInterval = desc.WP8_AdDuplex_RefreshRate; adControl.AppKey = desc.WP8_AdDuplex_ApplicationKey; adControl.AdUnitId = desc.WP8_AdDuplex_UnitID; #else adControl.RefreshInterval = desc.WinRT_AdDuplex_RefreshRate; adControl.AppKey = desc.WinRT_AdDuplex_ApplicationKey; adControl.AdUnitId = desc.WinRT_AdDuplex_UnitID; switch (desc.WinRT_AdDuplex_AdSize) { case WinRT_AdDuplex_AdSize.Tall_160x600: adControl.Size = "160x600"; break; case WinRT_AdDuplex_AdSize.Wide_250x125: adControl.Size = "250x125"; break; case WinRT_AdDuplex_AdSize.Wide_292x60: adControl.Size = "292x60"; break; case WinRT_AdDuplex_AdSize.Wide_300x250: adControl.Size = "300x250"; break; case WinRT_AdDuplex_AdSize.Wide_500x130: adControl.Size = "500x130"; break; case WinRT_AdDuplex_AdSize.Wide_728x90: adControl.Size = "728x90"; break; case WinRT_AdDuplex_AdSize.Square_250x250: adControl.Size = "250x250"; break; default: Debug.LogError("AdPlugin: Unsuported Ad size"); break; } #endif #if UNITY_WP_8_1 setGravity(desc.WP8_AdDuplex_AdGravity); #else setGravity(desc.WinRT_AdDuplex_AdGravity); #endif eventCallback = desc.EventCallback; WinRTPlugin.AdGrid.Children.Add(adControl); setVisible(desc.Visible); Debug.Log("Created Ad of AppKey: " + adControl.AppKey + " AdUnitID" + adControl.AdUnitId); } catch (Exception e) { adControl = null; Debug.LogError(e.Message); } ReignServices.InvokeOnUnityThread(delegate { if (createdCallback != null) { createdCallback(pass); } }); }); }
private IEnumerator init(AdCreatedCallbackMethod createdCallback) { // request Ad if (testing) { var www = new WWW("http://media.mydas.mobi/images/rich/T/test_mm/collapsed.gif"); yield return www; var data = www.bytes; if (data == null || data.Length == 0) { Debug.LogError("Test Ad failed to loadb"); if (createdCallback != null) createdCallback(false); yield break; } gifImage = new TextureGIF(data, frameUpdatedCallback); if (desc.UseClassicGUI) guiTexture = gifImage.CurrentFrame.Texture; else adImage.sprite = gifImage.CurrentFrame.Sprite; SetGravity(gravity); var texture = gifImage.CurrentFrame.Texture; Debug.Log(string.Format("Ad Image Size: {0}x{1}", texture.width, texture.height)); if (createdCallback != null) createdCallback(true); if (adEvent != null) adEvent(AdEvents.Refreshed, null); } else { // get external IP address var ipWWW = new WWW("http://checkip.dyndns.org/"); yield return ipWWW; var match = Regex.Match(ipWWW.text, @"Current IP Address\: (\d*\.\d*\.\d*\.\d*)"); if (!match.Success) { if (createdCallback != null) createdCallback(false); yield break; } externalIP = match.Groups[1].Value; Debug.Log("External IP: " + externalIP); // load ad service.StartCoroutine(asyncRefresh(createdCallback)); } }