NuGetXamarinXamarin.Forms

Xamarin.Forms AdMob Banner Ödüllü Geçiş Reklamları

İçindekiler

Xamarin.Forms uygulamalarınıza AdMob reklamları ekleyerek para kazanmanmanız mümkündür. Ancak bunu yapabilmek için önce yerel platformlarda her bir reklam birimi için Dependecy sınıfları oluşturup sonra bu sınıfları Xamarin.Forms’da çağırmalısınız. Bu da birçok iş yükünü beraberinde getirir.

Ancak bu kadar uğraşmaya gerek yok. MTAdmob eklentisini kullanarak Xamarin.Forms uygulamalarınızda birkaç satır kod ile AdMob reklamlarını gösterebilirsiniz. Böylece tek tek Dependency sınıfları oluşturmakla zaman kaybetmemiş olursunuz.

MTAdmob eklentisi Marco Troncone tarafından geliştirilmiş olan bir NuGet paketidir. Bu eklenti Xamarin projelerinize yalnızca birkaç satır kod ile AdMob reklamlarını göstermenizi sağlar. Eklentiyi buradan inceleyebilirsiniz.

Bu makalede, MTAdmob eklentisini kullanarak Xamarin.Forms uygulamalarınıza AdMob reklamlarını nasıl yerleştireceğinizi anlatacağım. Aşağıdaki adımları sırasıyla uygulayın.

1) MTAdmob eklentisini projenize yükleyin

İlk olarak, Xamarin.Forms projenize MarcTron.Admob NuGet paketini yükleyin.

Paket Yöneticisi Konsolu’na aşağıdaki kodu yazın ve çalıştırın. (bkz. Paket Yöneticisi Konsolu ile NuGet Paketlerini Yükleme)

Install-Package MarcTron.Admob -Version 1.6.1

Alternatif olarak, bu eklentiyi NuGet Paket Yöneticisi’nden de yükleyebilirsiniz. (bkz. NuGet Paket Yöneticisi İle NuGet Paketlerini Yükleme)

Xamarin.Forms MarcTron AdMob NuGet Paketi
MarcTron.AdMob eklentisini projenize yükleyin

Eklenti yüklendikten sonra karşınıza bu eklenti hakkında uyarıların ve eklentinin nasıl kullanılacağını içeren bir readme.txt dosyası açılacak. Bu dosya içerisinde eklentinin sürümleriyle ilgili notları ve talimatları inceleyebilirsiniz.

Xamarin.Forms MarcTron AdMob NuGet Paketi ReadMe
readme.txt dosyasından uyarıları ve talimatları inceleyebilirsiniz

2) AdMob uygulama ID’sini projenize ekleyin

Uygulamanızda AdMob reklamlarını gösterebilmek için AdMob hesabınızdan alacağınız uygulama ID’sini projenize eklemelisiniz. Ancak uygulama henüz tamamlanmamışsa kendi reklamlarınız yerine test reklamlarını kullanmanızda fayda var.

Çünkü uygulamayı geliştirme aşamasındayken test reklamlarına tıklayarak reklamların düzgün çalışıp çalışmadığını kontrol edebilirsiniz. Eğer test modunda olmadan kendi reklamlarınıza çok sayıda tıklarsanız AdMob hesabınız geçersiz tıklama nedeniyle işaretlenebilir.

Uygulama tamamlandıktan sonra test reklamlarını AdMob hesabınızdan oluşturacağınız reklam birimleri ile değiştirin.

Test reklamlarını etkinleştirmek için Google tarafından sağlanan test reklamı birimleri ve id’lerini kullanın. Bu reklam birimleri AdMob hesabınızla ilişkili olmadığından, hesabınızın bu reklam birimlerini kullanırken geçersiz trafik oluşturma riski yoktur.

  • Android için uygulama ID ca-app-pub-3940256099942544~3347511713
  • iOS için uygulama ID ca-app-pub-3940256099942544~1458002511
  • Banner ca-app-pub-3940256099942544/6300978111
  • Interstitial ca-app-pub-3940256099942544/1033173712
  • Rewarded ca-app-pub-3940256099942544/5224354917

Android

Projenizde Android/Properties/AndroidManifest.xml dosyasını açın. Ardından <application> etiketleri arasına uygulama kimliğiniz ekleyin.

Burada test reklamlarını görüntülemek için ilk önce kendi uygulama kimliğinizin yerine Google tarafından sağlanan uygulama kimliğini ekleyin. Uygulamayı test ettikten sonra AdMob hesabınızdan oluşturacağınız uygulama kimliğini test kimliği ile değiştirin.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.weather">
	<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
	<application android:label="Weather.Android">
		<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
           android:value="ca-app-pub-3940256099942544~3347511713"/>
	</application>
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

iOS

Uygulamanızın iOS klasöründeki Info.plist dosyasına sağ tıklayın ve Open With (Birlikte Aç) seçeneğini seçin. Ardından açılan pencerede XML (Text) Editör‘ü seçin.

Xamarin.iOS info plist Text Editor Birlikte Aç
Info.plist dosyasını Text Editor ile birlikte açın

Daha sonra Info.plist dosyasında <dict> etiketleri arasına uygulama kimliğinizi ekleyin.

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
<key>GADIsAdManagerApp</key>
<true/>
Xamarin.iOS info plist AdMob uygulama kimliği ekle
Info.plist dosyasına uygulama kimliğinizi ekleyin

3) MTAdmob eklentisini başlatın

MTAdmob eklentisini Xamarin.Forms projenizde kullanabilmek için bu eklentiyi her bir platformda başlatmalısınız.

Android

MainActivity.cs sınıfının onCreate() metodu içerisinde MTAdmob eklentisinin Initialize() metodunu çağırın.

protected override void OnCreate(Bundle savedInstanceState)
{
    // Your other codes
    global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
    //Call the initialize method of MTAdmob plugin
    MobileAds.Initialize(ApplicationContext);
    LoadApplication(new App());
}

iOS

iOS platformunda MTAdmob eklentisini başlatmak için AppDelegate.cs sınıfına gidin. Ardından FinishedLaunching() metodunun içinde başlatıcı metodu çağırın. Böylece AppDelegate sınıfı her çalıştığında, MTAdmob eklentisi başlayacak.

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    global::Xamarin.Forms.Forms.Init();
    
    MobileAds.Configure("ca-app-pub-3940256099942544~1458002511");
    LoadApplication(new App());
    return base.FinishedLaunching(app, options);
}

4) Uygulamanıza banner reklamı ekleyin

Eklentiyi başlattıktan sonra artık uygulamanıza reklam ekleyebilirsiniz.

Ben bu örnek projeye önce banner reklamı ardından geçiş ve ödüllü reklam birimlerini ekleyeceğim.

1 Şimdi projenize AdMobPage.xaml adında yeni bir ContentPage ekleyin.

2 Sonra MTAdmob eklentisini XAML’da kullanabilmek için gerekli namespace’yi ContentPage tanımına ekleyin.

xmlns:controls="clr-namespace:MarcTron.Plugin.Controls;assembly=Plugin.MtAdmob"
Xamarin.Forms Content Page MTAdmob Namespace
XAML namespace ekleyin

3 Ardından ContentPage içerisine AdMob banner reklamını aşağıdaki gibi ekleyin.

Burada Android ve iOS platformları için ayrı ayrı test reklamı kimliği eklediğime dikkat edin. Çünkü bir reklam birimi Android ve iOS platformları için farklı reklam kimliklerine sahiptir.

Eğer reklamlarınız gözükmüyorsa HeightRequest değerini ayarlayın.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:controls="clr-namespace:MarcTron.Plugin.Controls;assembly=Plugin.MtAdmob"
             x:Class="Weather.View.AdMobPage">
    <ContentPage.Content>
        <StackLayout>
            <Label Text="Welcome to Xamarin.Forms!"
                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" />

            <controls:MTAdView x:Name="myAds" 
                               AdsId="{OnPlatform Android='ca-app-pub-3940256099942544/6300978111', 
                                                  iOS='ca-app-pub-3940256099942544/2934735716'}"
                               HeightRequest="50"/>
            
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

Uygulamayı çalıştırın ve test reklamının gözüküp gözükmediğini kontrol edin.

Xamarin.Forms AdMob Banner Reklam
Xamarin.Forms AdMob Banner Reklam

5) Uygulamanıza geçiş reklamı ve ödüllü reklam ekleyin

1 Şimdi AdMobPage.xaml içerisine Interstitial ve Rewarded adında iki tane buton ekleyin ve bu butonların Clicked eventlerini tanımlayın.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:controls="clr-namespace:MarcTron.Plugin.Controls;assembly=Plugin.MtAdmob"
             x:Class="Weather.View.AdMobPage">
    <ContentPage.Content>
        <StackLayout>
            <Label Text="Welcome to Xamarin.Forms!"
                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" />
            
            <Button Text="Interstitial" Clicked="Interstitial_Clicked"/>
            <Button Text="Rewarded" Clicked="Rewarded_Clicked"/>
            
            <controls:MTAdView x:Name="myAds" 
                               AdsId="{OnPlatform Android='ca-app-pub-3940256099942544/6300978111', 
                                                  iOS='ca-app-pub-3940256099942544/2934735716'}"
                               HeightRequest="50"/>
            
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

2 Ardından AdMobPage.xaml.cs sınıfında gidin ve Clicked metotlarını ve kurucu metodu aşağıdaki gibi doldurun. Geçiş reklamı ve ödüllü reklam için ayrı olacak şekilde test reklamı kimliğini ekleyin.

public partial class AdMobPage : ContentPage
{
    public AdMobPage()
    {
        InitializeComponent();
        CrossMTAdmob.Current.OnInterstitialLoaded += (s, args) => {
            CrossMTAdmob.Current.ShowInterstitial();
        };
        CrossMTAdmob.Current.OnRewardedVideoAdLoaded += (s, args) => {
            CrossMTAdmob.Current.ShowRewardedVideo();
        };
    }
    private void Interstitial_Clicked(object sender, EventArgs e)
    {
        CrossMTAdmob.Current.LoadInterstitial("ca-app-pub-3940256099942544/1033173712");
    }
    private void Rewarded_Clicked(object sender, EventArgs e)
    {
        CrossMTAdmob.Current.LoadRewardedVideo("ca-app-pub-3940256099942544/5224354917");
    }
}

Burada Interstitial butonuna tıkladığınızda geçiş reklamı yüklenir. Daha sonra kurucu metot içerisindeki OnInterstitialLoaded olay işleyicisi (EventHandler) tetiklendiğinde reklam gösterilir. Yani önce butona tıklayarak reklamı yüklemiş oluyorsunuz. Ardından olay işleyicisi reklam yüklendiği anda tetikleniyor ve reklam gösterilmeye başlanıyor. Rewarded butonu da aynı mantıkla çalışır.

Xamarin.Forms AdMob Geçiş Reklamı
Xamarin.Forms AdMob Geçiş Reklamı

6) Test reklamlarını kendi reklamlarınızla değiştirin

Uygulamanızdaki reklamları test ettikten sonra test reklamlarının kimliklerini kendi reklam kimlikleriniz ile değiştirin.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu