public void Show(string placementId, BannerOptions showOptions) { m_BannerShowOptions = showOptions; if (m_BannerBundle != null && (string.IsNullOrEmpty(placementId) || m_BannerBundle.bannerPlacementId.Equals(placementId))) { m_CurrentActivity.Call("runOnUiThread", new AndroidJavaRunnable(() => { var parent = m_BannerBundle.bannerView.Call <AndroidJavaObject>("getParent"); if (parent == null) { var layoutParams = m_BannerBundle.bannerView.Call <AndroidJavaObject>("getLayoutParams"); m_CurrentActivity.Call("addContentView", m_BannerBundle.bannerView, layoutParams); } })); m_Banner.UnityLifecycleManager.Post(() => { showOptions?.showCallback(); }); } else { if (m_BannerBundle != null) { Hide(true); m_BannerBundle = null; } m_Banner.ShowAfterLoad = true; Load(placementId, null); } }
//------------------------------------------------------------ // Banner Ads. //------------------------------------------------------------ protected override void InternalShowBannerAd(AdPlacement placement, BannerAdPosition position, BannerAdSize __) { #if EM_FAIRBID string id = placement == AdPlacement.Default ? mGlobalAdSettings.DefaultBannerId : ToFairBidAdTag(placement); BannerOptions showOptions = new BannerOptions(); switch (position) { case BannerAdPosition.TopLeft: case BannerAdPosition.TopRight: case BannerAdPosition.Top: showOptions.DisplayAtTheTop(); break; case BannerAdPosition.BottomLeft: case BannerAdPosition.BottomRight: case BannerAdPosition.Bottom: showOptions.DisplayAtTheBottom(); break; default: showOptions.DisplayAtTheBottom(); break; } Banner.Show(id, showOptions); #endif }
static Banner() { // Auto prepare Banner class before first call. BannerOptions = new BannerOptions(); BannerOptions.PrintBannerFunction = PrintBannerDefault; BannerOptions.PrintRandomMessage = PrintRandomMessageDefault; BannerOptions.SelectRandomMessage = SelectRandomMessageDefault; BannerOptions.RandomMessages = new List <string>() { "Think your Mod Loader has EDGE? Think again.", "A Mod Loader by Sewer56?", "Cuteness is Justice. It is the law!", @"It all started here: https://discord.gg/4DHujrb", "null", "All your base are belong to us.", "The answer is \"Sometime between now and never.\"", @"Don't forget to backup Salvato's character file.", "\"For A Really Disturbing Image... Flip Disc Over\"", "Hello! Trojan:Win32/ReloadedModLoader", "The program 'fortune' is currently not installed.\n" + "You can install it by typing: sudo apt install fortune-mod" }; foreach (var configPlugin in PluginLoader.LoaderConfigPlugins) { BannerOptions = configPlugin.SetBannerOptions(BannerOptions); } }
/// <summary> /// Called when the showBanner is clicked /// This function provides an example for calling the API method Banner.display in order to display a banner placement /// </summary> /// <param name="bannerPlacementName">name of placement to be requested</param> private void OnShowBannerClicked(String bannerPlacementName) { BannerOptions bannerOptions = generateBannerOptions(); Banner.Show(bannerPlacementName, bannerOptions); mUserInterfaceWrapper.startRequestAnimation(); }
private void OnLoadBannerSuccess() { StatusShow.instance.ShowAdStatus("Banner loaded Successfuly"); AdvertEngine.Instance.BannerAdLoadedSuccessfuly(); BannerOptions options = new BannerOptions { showCallback = OnShowBanner, hideCallback = OnHideBanner }; }
protected override void RegisterBannerManager(Container container) { var cacheDirectory = Environment.ExpandEnvironmentVariables(@"%LocalAppData%\pdfforge\PDFCreator\banners"); var bannerOptions = new BannerOptions(Urls.BannerIndexUrl, cacheDirectory, TimeSpan.FromDays(1)); container.RegisterSingleton(bannerOptions); container.Register <IBannerManager, OnlineBannerManager>(); container.Register <IBannerMetricFactory, BannerMetricFactory>(); }
public void ShowBanner() { BannerOptions options = new BannerOptions { showCallback = OnBannerShown }; Advertisement.Banner.Show(bannerID, options); }
public void ShowBanner() { BannerOptions options = new BannerOptions { showCallback = OnBannerShown, hideCallback = OnBannerHidden }; Advertisement.Banner.Show(placementName, options); }
private void DoShowBannerAd(string id, AdPlacement placement) { var showOptions = new BannerOptions { showCallback = () => { InternalShowBannerAdCallback(placement); } }; Advertisement.Banner.Show(id, showOptions); }
public void Show(string placementId, BannerOptions showOptions) { m_BannerShowOptions = showOptions; if (!m_Banner.IsLoaded) { Load(placementId, null); } m_BannerPlaceholder.ShowBanner(m_CurrentBannerPosition, m_BannerShowOptions); m_Banner.UnityLifecycleManager.Post(() => { showOptions?.showCallback(); }); }
// Implement a method to call when the Show Banner button is clicked: void ShowBannerAd() { // Set up options to notify the SDK of show events: BannerOptions options = new BannerOptions { clickCallback = OnBannerClicked, hideCallback = OnBannerHidden, showCallback = OnBannerShown }; // Show the loaded Banner Ad Unit: Advertisement.Banner.Show(_bannerAdUnitId, options); }
/// <summary> /// Convenience method. Generates a new instance of BannerOptions and configure it accordingly. /// </summary> /// <returns>A new banner options instance.</returns> private BannerOptions generateBannerOptions() { BannerOptions bannerOptions = new BannerOptions(); if (mUserInterfaceWrapper.isTopToggleSelcted()) { bannerOptions.DisplayAtTheTop(); } else { bannerOptions.DisplayAtTheBottom(); } return(bannerOptions); }
public UnityAds(iAdsConfig config) { //set gameID switch (Application.platform) { case RuntimePlatform.Android: { _gameID = config.GetConfig <string>(UnityAdsConfig.GAME_ID_PLAYSTORE); break; } case RuntimePlatform.IPhonePlayer: { _gameID = config.GetConfig <string>(UnityAdsConfig.GAME_ID_APPSTORE); break; } default: { _gameID = config.GetConfig <string>(UnityAdsConfig.GAME_ID_PLAYSTORE); break; } } _bannerID = config.GetConfig <string>(UnityAdsConfig.BANNER_ID); _interstitialID = config.GetConfig <string>(UnityAdsConfig.INTERSTITIAL_ID); _rewardID = config.GetConfig <string>(UnityAdsConfig.REWARD_ID); _testMode = config.GetConfig <bool>(UnityAdsConfig.TEST_MODE); _bannerLoadOptions = new BannerLoadOptions(); _bannerLoadOptions.errorCallback += (error) => onBannerLoadFailed?.Invoke(this, error); _bannerLoadOptions.loadCallback += () => onBannerLoaded?.Invoke(this); _bannerOptions = new BannerOptions(); _bannerOptions.showCallback += () => onBannerOpening?.Invoke(this); _bannerOptions.hideCallback += () => onBannerClosed?.Invoke(this); Advertisement.AddListener(this); Advertisement.Initialize(_gameID, _testMode); if (Advertisement.isInitialized) { onInited?.Invoke(this); } else { WaitUntilInited(); } }
protected override void InternalDestroyBannerAd(AdPlacement placement) { #if UNITY_MONETIZATION var hideOptions = new BannerOptions { hideCallback = () => { InternalHideBannerAdCallback(placement); } }; Advertisement.Banner.Hide(true); #else Debug.LogWarning(BANNER_UNSUPPORTED_MESSAGE); #endif }
private void BannerLoadSuccess() { if (debug) { Debug.Log(this + "Banner Load Success"); ScreenWriter.Write(this + " Banner Load Success"); } BannerOptions options = new BannerOptions { showCallback = BanerDisplayed, hideCallback = BannerHidded }; Advertisement.Banner.Show(bannerPlacement, options); }
//------------------------------------------------------------ // Banner Ads. //------------------------------------------------------------ protected override void InternalShowBannerAd(AdPlacement placement, BannerAdPosition postition, BannerAdSize size) { #if UNITY_MONETIZATION string id = placement == AdPlacement.Default ? mAdSettings.DefaultBannerAdId.Id : FindIdForPlacement(mAdSettings.CustomBannerAdIds, placement); if (string.IsNullOrEmpty(id)) { Debug.Log("Attempting to show UnityAds banner ad with an undefined ID at placement " + AdPlacement.GetPrintableName(placement)); return; } if (!Advertisement.Banner.isLoaded) { BannerLoadOptions options = new BannerLoadOptions(); options.errorCallback += ((string message) => { Debug.Log("Error: " + message); }); options.loadCallback += (() => { Debug.Log("Ad Loaded"); }); Debug.Log("Loading banner ad"); Advertisement.Banner.Load(id, options); } else { var showOptions = new BannerOptions { showCallback = () => { InternalShowBannerAdCallback(placement); } }; Advertisement.Banner.Show(id, showOptions); } #else Debug.LogWarning(BANNER_UNSUPPORTED_MESSAGE); #endif }
public IEnumerator UnityAdsBannerDidHide(string expectedPlacementId) { var hasCalledListener = false; var banner = new Banner(m_NativeBannerMock.Object, m_CoroutineExecutorMock.Object); var bannerLoadOptions = new BannerOptions(); bannerLoadOptions.hideCallback += () => { hasCalledListener = true; }; banner.UnityAdsBannerDidHide(expectedPlacementId, bannerLoadOptions); while (!hasCalledListener) { yield return(null); } Assert.That(hasCalledListener, Is.True, "The hideCallback should have been called"); m_CoroutineExecutorMock.Verify(x => x.Post(It.IsAny <Action>()), Times.Once(), "Calls should happen on the main thread and should all batched together as 1 call"); }
protected override void RegisterBannerManager(Container container) { var cacheDirectory = Environment.ExpandEnvironmentVariables(@"%LocalAppData%\pdfforge\PDFCreator\banners"); var bannerUrl = Urls.BannerIndexUrl; var useStaging = Environment.CommandLine.IndexOf("/Banners=staging", StringComparison.InvariantCultureIgnoreCase) >= 0; if (useStaging) { cacheDirectory += "-staging"; bannerUrl = Urls.BannerIndexUrlStaging; } var bannerOptions = new BannerOptions(bannerUrl, cacheDirectory, TimeSpan.FromDays(1)); container.RegisterInstance(bannerOptions); container.Register <IBannerManager, OnlineBannerManager>(); container.Register <IBannerMetricFactory, BannerMetricFactory>(); }
public void ShowBannerAd() { if (Advertisement.Banner.isLoaded == false) { BannerLoadOptions options = new BannerLoadOptions { loadCallback = OnLoadBannerSuccess, errorCallback = OnLoadBannerFail }; Advertisement.Banner.SetPosition(bannerPosition); Advertisement.Banner.Load(bannerAdPlacement, options); } else { BannerOptions options = new BannerOptions { showCallback = OnShowBanner, hideCallback = OnHideBanner }; Advertisement.Banner.SetPosition(bannerPosition); Advertisement.Banner.Show(bannerAdPlacement, options); } }
protected override void RegisterBannerManager(Container container) { var cacheDirectory = Environment.ExpandEnvironmentVariables(@"%LocalAppData%\pdfforge\PDFCreator\banners"); var bannerUrl = Urls.BannerIndexUrl; var cacheDuration = TimeSpan.FromHours(1); var useStaging = Environment.CommandLine.IndexOf("/Banners=staging", StringComparison.InvariantCultureIgnoreCase) >= 0; if (useStaging) { cacheDirectory += "-staging"; bannerUrl = Urls.BannerIndexUrlStaging; cacheDuration = TimeSpan.Zero; } container.Register <IBannerManager>(() => { var trackingParameters = container.GetInstance <TrackingParameters>(); var usageStatisticsOptions = container.GetInstance <UsageStatisticsOptions>(); var languageProvider = container.GetInstance <IApplicationLanguageProvider>(); var versionHelper = container.GetInstance <IVersionHelper>(); var bannerOptions = new BannerOptions( "pdfcreator", versionHelper.FormatWithThreeDigits(), languageProvider.GetApplicationLanguage(), bannerUrl, cacheDirectory, cacheDuration, trackingParameters.ToParamList()); // we can create a new instance here as we don't use overlays var windowHandleProvider = new WindowHandleProvider(); var bannerManager = BannerManagerFactory.BuildOnlineBannerManager(bannerOptions, usageStatisticsOptions, windowHandleProvider, new List <DefaultBanner>()); return(new BannerManagerWrapper(bannerManager)); }); }
/** * 初期化 */ private void InitUnityAds() { // 動画広告をサポートしていないプラットフォームだったらreturn if (Advertisement.isSupported == false) { return; } // すでに初期化していたらreturn if (Advertisement.isInitialized) { return; } #if UNITY_ANDROID _gameId = googlePlayGameId; #elif UNITY_IOS _gameId = appStoreGameId; #endif // 初期化 Advertisement.Initialize(_gameId, testMode); // バナーを表示するポジションを設定する Advertisement.Banner.SetPosition(bannerPosition); // コールバックを設定する _bannerLoadOptions = new BannerLoadOptions() { loadCallback = LoadCallback, errorCallback = ErrorCallback }; _bannerOptions = new BannerOptions() { showCallback = ShowCallback, hideCallback = HideCallback }; }
/// <summary> /// Check width according to the banner options /// </summary> /// <returns>A width that is consistant with the min, max, and default width defined in the banner options</returns> private static int CheckWidth(BannerOptions options, int width) { var checkedWidth = 0; if (width <= 0) { checkedWidth = options.DefaultWidth; } else if (width < options.MinWidth) { checkedWidth = options.MinWidth; } else if (width > options.MaxWidth) { checkedWidth = options.MaxWidth; } else { checkedWidth = width; } return(checkedWidth); }
private BannerDownloader BuildBannerDownloader() { var bannerOptions = new BannerOptions(_bannerDownloadUrl, String.Empty, TimeSpan.MinValue); return(new BannerDownloader(_fileCache, bannerOptions, _hashUtil, _downloader)); }
public void Show(string placementId, BannerOptions showOptions) { }
public static async Task <string> GenerateAsync(BannerOptions options, Profile profile, string subtext, int width = 800, int height = 192) { if (profile == null) { throw new ArgumentNullException(nameof(profile)); } var checkedWidth = CheckWidth(options, width); height = (int)(checkedWidth / options.WidthToHeightRatio); // Avatar base url + avatar meta = rendered avatar url var avatarURL = $"{DevrantAvatarBaseURL}/{profile.Avatar.Image}"; const string outputDir = "generated"; const string avatarsDir = "avatars"; var outputFileName = $"{profile.Username}.png"; var workingDir = Directory.GetCurrentDirectory(); var outputPath = Path.Combine(workingDir, outputDir); var avatarPath = Path.Combine(workingDir, avatarsDir); Directory.CreateDirectory(outputPath); Directory.CreateDirectory(avatarPath); var avatarFile = Path.Combine(avatarPath, outputFileName); var outputFile = Path.Combine(outputPath, outputFileName); byte[] data; if (options.CacheAvatars && File.Exists(avatarFile) && File.GetCreationTime(avatarFile) > DateTime.Now.AddMinutes(-options.MaxCacheAvatarAge)) { data = await File.ReadAllBytesAsync(avatarFile); } else { // Download rendered avatar var httpClient = new HttpClient(); using (var response = await httpClient.GetAsync(avatarURL)) { if (response.StatusCode == HttpStatusCode.NotFound) { throw new AvatarNotFoundException(profile.Username); } response.EnsureSuccessStatusCode(); data = await response.Content.ReadAsByteArrayAsync(); if (options.CacheAvatars) { await File.WriteAllBytesAsync(avatarFile, data); } } } using (var avatarImage = Image.Load(data)) using (var banner = new Image <Rgba32>(checkedWidth, height)) { var fontCollection = new FontCollection(); fontCollection.Install("fonts/Comfortaa-Regular.ttf"); var fontSizeUsername = (int)(banner.Width * 0.07); // original : 0.08 var fontSizeSubtext = (int)(banner.Width * 0.04); var fontSizeDevrant = (int)(banner.Width * 0.02); var fontUsername = fontCollection.CreateFont("Comfortaa", fontSizeUsername, FontStyle.Bold); var fontSubtext = fontCollection.CreateFont("Comfortaa", fontSizeSubtext, FontStyle.Regular); var fontDevrant = fontCollection.CreateFont("Comfortaa", fontSizeDevrant, FontStyle.Regular); var avatarHeight = banner.Height; var avatarWidth = avatarHeight; var avatarSize = new Size(avatarWidth, avatarHeight); var avatarTargetX = (int)(banner.Width * 0.01875); var avatarTargetY = 0; var avatarTarget = new Point(avatarTargetX, avatarTargetY); var usernameTargetX = banner.Width / 3; var usernameTargetY = (banner.Height / 4f) - (fontSizeUsername / 2f); var usernameTarget = new PointF(usernameTargetX, usernameTargetY); var subtextTargetX = usernameTarget.X; var subtextTargetY = usernameTarget.Y + fontSizeUsername; var subtextTarget = new PointF(subtextTargetX, subtextTargetY + (fontSizeSubtext / 2f)); var subTextWidth = banner.Width - subtextTargetX - (int)(banner.Width * 0.01875); var subTextHeight = fontSizeSubtext; var devrantTargetX = banner.Width - (int)(banner.Width * 0.130); var devrantTargetY = banner.Height - (int)(banner.Width * 0.03); var devrantTarget = new Point(devrantTargetX, devrantTargetY); var backgroundColor = Rgba32.FromHex(profile.Avatar.Background); var foregroundColor = GetForegroundColor(backgroundColor); // Draw background banner.SetBGColor(backgroundColor); // Draw avatar banner.DrawImage(avatarImage, avatarSize, avatarTarget); // Draw username banner.DrawText(profile.Username, fontUsername, foregroundColor, usernameTarget, verticalAlignment: VerticalAlignment.Top); // Scale font size to subtext fontSubtext = fontSubtext.ScaleToText(subtext, new SizeF(subTextWidth, subTextHeight), subTextWidth); // Add subtext word wrapping subtext = subtext.AddWrap(fontSubtext, subTextWidth, options.MaxSubtextWraps); // Draw subtext banner.DrawText(subtext, fontSubtext, foregroundColor, subtextTarget, verticalAlignment: VerticalAlignment.Top); // Draw devrant text banner.DrawText("devrant.com", fontDevrant, foregroundColor, devrantTarget, HorizontalAlignment.Left, VerticalAlignment.Top); banner.Save(outputFile, new PngEncoder()); } return(outputFile); }
public static async Task <string> GenerateAsync(BannerOptions options, Profile profile, string subtext) { if (profile == null) { throw new ArgumentNullException(nameof(profile)); } // Avatar base url + avatar meta = rendered avatar url var avatarURL = $"{DevrantAvatarBaseURL}/{profile.Avatar.Image}"; const string outputDir = "generated"; const string avatarsDir = "avatars"; var outputFileName = $"{profile.Username}.png"; var workingDir = Directory.GetCurrentDirectory(); var outputPath = Path.Combine(workingDir, outputDir); var avatarPath = Path.Combine(workingDir, avatarsDir); Directory.CreateDirectory(outputPath); Directory.CreateDirectory(avatarPath); var avatarFile = Path.Combine(avatarPath, outputFileName); var outputFile = Path.Combine(outputPath, outputFileName); byte[] data; if (options.CacheAvatars && File.Exists(avatarFile)) { data = await File.ReadAllBytesAsync(avatarFile); } else { // Download rendered avatar var httpClient = new HttpClient(); using (var response = await httpClient.GetAsync(avatarURL)) { if (response.StatusCode == HttpStatusCode.NotFound) { throw new AvatarNotFoundException(profile.Username); } response.EnsureSuccessStatusCode(); data = await response.Content.ReadAsByteArrayAsync(); if (options.CacheAvatars) { await File.WriteAllBytesAsync(avatarFile, data); } } } using (var avatarImage = Image.Load(data)) using (var banner = new Image <Rgba32>(800, 192)) { var fontCollection = new FontCollection(); fontCollection.Install("fonts/Comfortaa-Regular.ttf"); var fontSizeUsername = 64; var fontSizeSubtext = fontSizeUsername / 2; var fontSizeDevrant = 16; var fontUsername = fontCollection.CreateFont("Comfortaa", fontSizeUsername, FontStyle.Bold); var fontSubtext = fontCollection.CreateFont("Comfortaa", fontSizeSubtext, FontStyle.Regular); var fontDevrant = fontCollection.CreateFont("Comfortaa", fontSizeDevrant, FontStyle.Regular); var avatarHeight = banner.Height; var avatarWidth = avatarHeight; var avatarSize = new Size(avatarWidth, avatarHeight); var avatarTargetX = 15; var avatarTargetY = 0; var avatarTarget = new Point(avatarTargetX, avatarTargetY); var usernameTargetX = banner.Width / 3; var usernameTartgetY = banner.Height / 4; var usernameTarget = new Point(usernameTargetX, usernameTartgetY); var subtextTargetX = usernameTarget.X; var subtextTartgetY = usernameTarget.Y + fontSizeUsername; var subtextTarget = new Point(subtextTargetX, subtextTartgetY); var subTextWidth = banner.Width - subtextTargetX - 15; var subTextHeight = fontSizeSubtext; var devrantTargetX = banner.Width - 108; var devrantTargetY = banner.Height - 4 - fontSizeDevrant; var devrantTarget = new Point(devrantTargetX, devrantTargetY); // Draw background banner.SetBGColor(Rgba32.FromHex(profile.Avatar.Background)); // Draw avatar banner.DrawImage(avatarImage, avatarSize, avatarTarget); // Draw username banner.DrawText(profile.Username, fontUsername, Rgba32.White, usernameTarget); // Scale font size to subtext fontSubtext = fontSubtext.ScaleToText(subtext, new SizeF(subTextWidth, subTextHeight)); // Draw subtext banner.DrawText(subtext, fontSubtext, Rgba32.White, subtextTarget); // Draw devrant text banner.DrawText("devrant.com", fontDevrant, Rgba32.White, devrantTarget, HorizontalAlignment.Left, VerticalAlignment.Top); banner.Save(outputFile, new PngEncoder()); } return(outputFile); }
/// <summary> /// Displays the banner ad with a specified <a href="../manual/MonetizationPlacements.html">Placement</a>, but fires the <c>showCallback</c> callback if the banner is visible, and the <c>hideCallback</c> if it isn't. /// </summary> /// <param name="placementId">The unique identifier for a specific Placement, found on the <a href="https://operate.dashboard.unity3d.com/">developer dashboard</a>.</param> /// <param name="options">A collection of options that notify the SDK of events when displaying the banner.</param> public static void Show(string placementId, BannerOptions options) { s_Platform.Banner.Show(string.IsNullOrEmpty(placementId) ? null : placementId, options); }
/// <summary> /// Displays the banner ad with the default <a href="../manual/MonetizationPlacements.html">Placement</a>, but fires the <c>showCallback</c> callback if the banner is visible, and the <c>hideCallback</c> if it isn't. /// </summary> /// <param name="options">A collection of options that notify the SDK of events when displaying the banner.</param> public static void Show(BannerOptions options) { Show(null, options); }
public BannerController(ILogger <BannerController> logger, IOptionsSnapshot <BannerOptions> bannerOptions) { _logger = logger; _bannerOptions = bannerOptions.Value; }
public void ShowBanner(BannerPosition bannerPosition, BannerOptions bannerOptions) { BannerPosition = bannerPosition; BannerOptions = bannerOptions; IsShowing = true; }