コメント
コメントの投稿
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。
using Flurry.Ads;
using Flurry.Analytics;
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
//Flurry
#if DEBUG
// enable test ads
FlurryAds.EnableTestAds(true);
#endif
FlurryAgent.StartSession("API_Key");
FlurryAgent.SetDebugLogEnabled(true);
FlurryAgent.SetLogLevel(FlurryLogLevel.All);
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
}
using Flurry.Ads;
using Flurry.Ads.Banner;
[assembly: ExportRenderer(typeof(AdBanner), typeof(AppName.iOS.AdBannerRenderer))]
namespace AppName.iOS
{
public class AdBannerRenderer : ViewRenderer
{
UIViewController viewCtrl = null;
BannerView adView;
bool viewOnScreen = false;
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e)
{
base.OnElementChanged(e);
if (Control == null)
{
//Flurry Banner
this.ShowFlurryBanner(UIApplication.SharedApplication.KeyWindow.RootViewController,
"AdUnitName");
}
}
private void ShowFlurryBanner(UIViewController viewController,
string adUnitName)
{
FlurryAdBanner adBanner = new FlurryAdBanner(adUnitName);
#if DEBUG
// enable test ads
var targeting = FlurryAdTargeting.Targeting;
targeting.TestAdsEnabled = true;
adBanner.Targeting = targeting;
#endif
adBanner.DidFetchAd += delegate {
Console.WriteLine(String.Format(" [{0}] Did Fetch Ad ", adBanner.Space));
adBanner.DisplayAd(viewController.View, viewController);
};
adBanner.DidRenderAd += delegate {
Console.WriteLine(String.Format(" [{0}] Did Render Ad ", adBanner.Space));
};
adBanner.WillPresentFullscreen += delegate {
Console.WriteLine(String.Format(" [{0}] Will Present Fullscreen Ad ", adBanner.Space));
};
adBanner.DidReceiveClick += delegate {
Console.WriteLine(String.Format(" [{0}] Did Receive Click Ad ", adBanner.Space));
};
adBanner.DidDismissFullscreen += delegate {
Console.WriteLine(String.Format(" [{0}] Did Dismiss Fullscreen Ad ", adBanner.Space));
};
adBanner.WillLeaveApplication += delegate {
Console.WriteLine(String.Format(" [{0}] Will Leave Application ", adBanner.Space));
};
adBanner.DidFinishVideo += delegate {
Console.WriteLine(String.Format(" [{0}] Did Finish Video ", adBanner.Space));
};
adBanner.WillPresentFullscreen += delegate {
Console.WriteLine(String.Format(" [{0}] Will Present Fullscreen Ad ", adBanner.Space));
};
adBanner.Error += (_, e) => {
Console.WriteLine(String.Format(" [{0}] Did Fail to Receive Ad with error [{1}] ", adBanner.Space, e.ErrorDescription));
};
Console.WriteLine(String.Format(" [{0}] Will Fetch Ad ", adBanner.Space));
adBanner.FetchAd(viewController.View.Frame);
}
}
}
using Flurry.Ads.Interstitial;
/// <summary>
/// Flurry Interstitial
/// </summary>
/// <param name="adUnitName"></param>
private void ShowFlurryInterstitial(string adUnitName)
{
FlurryAdInterstitial adInterstitial = new FlurryAdInterstitial(adUnitName);
#if DEBUG
// enable test ads
var targeting = FlurryAdTargeting.Targeting;
targeting.TestAdsEnabled = true;
adInterstitial.Targeting = targeting;
#endif
adInterstitial.DidFetchAd += delegate {
Console.WriteLine(String.Format(" [{0}] Did Fetch Ad ", adInterstitial.Space));
adInterstitial.Present(UIApplication.SharedApplication.KeyWindow.RootViewController);
};
adInterstitial.DidRenderAd += delegate {
Console.WriteLine(String.Format(" [{0}] Did Render Ad ", adInterstitial.Space));
};
adInterstitial.DidDismissAd += delegate {
Console.WriteLine(String.Format(" [{0}] Will Present Fullscreen Ad ", adInterstitial.Space));
};
adInterstitial.DidReceiveClick += delegate {
Console.WriteLine(String.Format(" [{0}] Did Receive Click Ad ", adInterstitial.Space));
};
adInterstitial.DidDismissAd += delegate {
Console.WriteLine(String.Format(" [{0}] Did Dismiss Fullscreen Ad ", adInterstitial.Space));
};
adInterstitial.WillLeaveApplication += delegate {
Console.WriteLine(String.Format(" [{0}] Will Leave Application ", adInterstitial.Space));
};
adInterstitial.DidFinishVideo += delegate {
Console.WriteLine(String.Format(" [{0}] Did Finish Video ", adInterstitial.Space));
};
adInterstitial.WillPresentAd += delegate {
Console.WriteLine(String.Format(" [{0}] Will Present Fullscreen Ad ", adInterstitial.Space));
};
adInterstitial.Error += (_, ex) => {
Console.WriteLine(String.Format(" [{0}] Did Fail to Receive Ad with error [{1}] ", adInterstitial.Space, ex.ErrorDescription));
};
Console.WriteLine(String.Format(" [{0}] Will Fetch Ad ", adInterstitial.Space));
adInterstitial.FetchAd();
}
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
//Flurry
FlurryAgent.SetLogEnabled(true);
FlurryAgent.SetLogEvents(true);
FlurryAgent.SetLogLevel(LogPriority.Verbose);
FlurryAgent.Init(this, "API_Key");
LoadApplication(new App(path));
}
}
using Flurry.Ads;
[assembly: ExportRenderer(typeof(AdBanner), typeof(AdBannerRenderer))]
namespace AppName.Android
{
public class AdBannerRenderer : ViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e)
{
base.OnElementChanged(e);
if (Control == null)
{
var adsbanner = (AdBanner)Element;
//Flurry Banner
this.ShowFlurryBanner("AdUnitName");
}
}
private void ShowFlurryBanner(string adUnitName)
{
//Flurry Yahoo
global::Android.Widget.RelativeLayout bannerContainer = new global::Android.Widget.RelativeLayout(Xamarin.Forms.Forms.Context);
base.SetNativeControl(bannerContainer);
// create the ad instance
var adBanner = new FlurryAdBanner(Xamarin.Forms.Forms.Context,
bannerContainer,
adUnitName);
adBanner.Fetched += delegate
{
// display the ad
adBanner.DisplayAd();
};
adBanner.Rendered += delegate
{
Console.WriteLine("Banner.Rendered");
};
adBanner.ShowFullscreen += delegate
{
Console.WriteLine("Banner.ShowFullscreen");
};
adBanner.Clicked += delegate
{
Console.WriteLine("Banner.Clicked");
};
adBanner.CloseFullscreen += delegate
{
Console.WriteLine("Banner.CloseFullscreen");
};
adBanner.AppExit += delegate
{
Console.WriteLine("Banner.AppExit");
};
adBanner.VideoCompleted += delegate
{
Console.WriteLine("Banner.VideoCompleted");
};
adBanner.Error += (_, ex) =>
{
Console.WriteLine("Banner.Error [{0}] [{1}] ", ex.ErrorType, ex.ErrorCode);
//Error code Error summary Error description
//1 No network connectivity There is no internet connection
//2 Missing ad controller Could happen when ad has not been prepared yet
//3 No context A valid context is missing
//4 Invalid ad unit
//17 Ad not ready Triggered when you call displayAd() on an ad object that is not ready
//18 Wrong orientation Device is in wrong orientation for banner or interstitial ads
//19 No view group Banner ad wasn't placed in a ViewGroup
//20 Ad was unfilled Ad was unfilled by server.Could be due to incorrect ad request, incorrect ad space
// configuration or no fill at request location at the moment
//21 Incorrect class for ad space Ad request made with incorrect class for corresponding ad space
//22 Device locked Device is locked during ad request
};
// fetch the ad
adBanner.FetchAd();
}
}
}
using Flurry.Ads;
private FlurryAdInterstitial _adInterstitial;
private void ShowFlurryInterstitial(string adUnitName)
{
if (_adInterstitial != null)
{
_adInterstitial.Destroy();
}
_adInterstitial = new FlurryAdInterstitial(Xamarin.Forms.Forms.Context,
adUnitName);
_adInterstitial.Fetched += delegate
{
Console.WriteLine("Interstitial.Fetched");
_adInterstitial.DisplayAd();
};
_adInterstitial.Rendered += delegate
{
Console.WriteLine("Interstitial.Rendered");
};
_adInterstitial.Display += delegate
{
Console.WriteLine("Interstitial.Display");
};
_adInterstitial.Clicked += delegate
{
Console.WriteLine("Interstitial.Clicked");
};
_adInterstitial.Close += delegate
{
Console.WriteLine("Interstitial.Close");
};
_adInterstitial.AppExit += delegate
{
Console.WriteLine("Interstitial.AppExit");
};
_adInterstitial.VideoCompleted += delegate
{
Console.WriteLine("Interstitial.VideoCompleted");
};
_adInterstitial.Error += (_, e) =>
{
Console.WriteLine(string.Format("Interstitial.Error [{0}] [{1}] ", e.ErrorType, e.ErrorCode));
};
Console.WriteLine("Interstitial.FetchAd");
_adInterstitial.FetchAd();
}
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。