앱의 수익을 위한 전면광고 다는 방법입니다.
먼저 AdMob 을 통해 광고 ID 를 Android, iOS 별로 만들었다는 가정하에 진행합니다.
참고 : http://kjcoder.tistory.com/276 및 구글링
전면 광고를 넣기위해 DependencyService 를 사용해야합니다.
개념은 아래 링크를 통해서..^^
간단하게 말하면 각 플랫폼별 기능을 .Net Standard 프로젝트에서 하나의 코드로 호출할 수 있도록 해주는 것입니다.
.Net Standard 프로젝트에 IInterstitialAd 인터페이스를 만듭니다.
{
public interface IInterstitialAd
{
void Show(string adUnitId);
}
}
Android 프로젝트에 아래의 NuGet 패키지를 설치합니다.
InterstitialAdByAndroid 클래스를 아래와 같이 추가합니다.
using Android.Gms.Ads;
using Android.Media;
using Test.Droid;
using System.Threading.Tasks;
[assembly: Xamarin.Forms.Dependency(typeof(InterstitialAdByAndroid))]
namespace Test.Droid
{
class InterstitialAdByAndroid : AdListener, IInterstitialAd
{
InterstitialAd interstitialAd;
public void Show(string adUnitId)
{
var context = Android.App.Application.Context;
InterstitialAd ad = new InterstitialAd(context);
ad.AdUnitId = adUnitId;
this.interstitialAd = ad;
OnAdLoaded();
ad.AdListener = this;
var requestBuilder = new AdRequest.Builder();
ad.LoadAd(requestBuilder.Build());
}
public override void OnAdClosed()
{
}
public override void OnAdLoaded()
{
base.OnAdLoaded();
if (this.interstitialAd.IsLoaded)
{
this.interstitialAd.Show();
}
}
}
}
iOS 프로젝트에 아래와 같은 NuGet 패키지를 설치합니다.
InterstitialAdByiOS 클래스를 아래와 같이 추가합니다.
using Test.iOS;
using System.Threading.Tasks;
using UIKit;
using Xamarin.Forms;
[assembly: Xamarin.Forms.Dependency(typeof(InterstitialAdByiOS))]
namespace Test.iOS
{
public class InterstitialAdByiOS : IInterstitialAd
{
Interstitial interstitialAd;
public async void Show(string adUnitId)
{
this.interstitialAd = new Interstitial(adUnitId);
this.interstitialAd.LoadRequest(Request.GetDefaultRequest());
while (!this.interstitialAd.IsReady)
{
await Task.Delay(100);
}
Device.BeginInvokeOnMainThread(() => this.interstitialAd.PresentFromRootViewController(UIApplication.SharedApplication.Windows[0].RootViewController));
}
}
}
이제 마지막으로 실제 .Net Standard 프로젝트에서 호출하는 방법입니다.
string adUnitId = "ca-app-pub-4681470946279796/3339648514";
if (Device.RuntimePlatform == Device.iOS)
{
adUnitId = "ca-app-pub-4681470946279796/8947198411";
}
DependencyService.Get<IInterstitialAd>().Show(adUnitId);
위와 같이 하면 전면광고가 노출되게 됩니다.
'C# > Xamarin Maui' 카테고리의 다른 글
NetworkComms 을 이용한 채팅 프로그램 + 앱 (0) | 2019.01.12 |
---|---|
(Xamarin Forms) 기기 화면 크기 가져오기 - Device Display Size (0) | 2019.01.11 |
(Xamarin Forms) Editor 에 PlaceHolder, PlaceHolderColor 속성 추가 하기 (0) | 2019.01.08 |
(Xamarin Forms) 텍스트 길이에 따라 늘어나는 Editer (0) | 2019.01.08 |
(Xamarin Forms) Font 파일 적용하기 (0) | 2019.01.07 |