Banner reklamlar, uygulama düzeninde cihaz ekranının üst veya alt kısmında bir yer kaplar. Bu reklamlar, kullanıcılar uygulamayla etkileşimde bulunurken ekranda kalır ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılıkta yeniyseniz, bu, başlamak için harika bir yerdir. Başarılı örnek.
Bu kılavuzda,AdMob kaynağından banner reklamların Android uygulamasına nasıl entegre edileceği gösterilmektedir. Kod snippet'leri ve talimatların yanı sıra banner'ların doğru şekilde boyutlandırılması ve ek kaynakların bağlantıları da bulunur.
Ön koşullar
- Başlangıç kılavuzunu tamamlayın.
Düzene AdView ekle
Bir banner'ı görüntülemenin ilk adımı, AdView
öğesini göstermek istediğiniz Activity
veya Fragment
düzenine yerleştirmektir. Bunu yapmanın en kolay yolu, ilgili XML düzen dosyasına bir şablon eklemektir. Bir etkinliğin AdView
alanını gösteren bir örneği aşağıda bulabilirsiniz:
# main_activity.xml
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
Aşağıdaki gerekli özellikleri göz önünde bulundurun:
ads:adSize
: Bu seçeneği, kullanmak istediğiniz reklam boyutuna ayarlayın. Sabit boyutla tanımlanan standart boyutu kullanmak istemiyorsanız bunun yerine özel bir boyut ayarlayabilirsiniz. Ayrıntılar için banner boyutu bölümüne bakın.ads:adUnitId
: Bu değeri, uygulamanızda reklamların görüntüleneceği reklam birimine atanan benzersiz tanımlayıcı olarak ayarlayın. Farklı etkinliklerde banner reklamlar gösteriyorsanız her biri için bir reklam birimi gerekir.
Alternatif olarak AdView
öğesini programatik olarak da oluşturabilirsiniz:
Java
AdView adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.
Kotlin
val adView = AdView(this)
adView.adSize = AdSize.BANNER
adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.
Her zaman test reklamlarıyla test etme
Uygulamalarınızı oluştururken ve test ederken canlı, üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Bunu yapmazsanız hesabınız askıya alınabilir.
Test reklamlarını yüklemenin en kolay yolu, Android banner'ları için özel test reklam birimi kimliğimizi kullanmaktır:
ca-app-pub-3940256099942544/6300978111
Her istek için test reklamları döndürecek şekilde özel olarak yapılandırılmıştır ve kodlama, test ve hata ayıklama sırasında kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.
Mobile Ads SDK'sının test reklamlarının nasıl çalıştığı hakkında daha fazla bilgi için Test Reklamları konusuna bakın.
Reklam yükle
AdView oluşturulduktan sonraki adım, bir reklam yüklemektir. Bu işlem AdView
sınıfındaki loadAd()
yöntemi ile yapılır. Tek bir reklam isteği hakkında hedefleme bilgileri gibi çalışma zamanı bilgilerini barındıran bir AdRequest
parametresi gerekir.
Aşağıda, Activity
için onCreate()
yönteminde bir reklamın nasıl yükleneceğini gösteren bir örnek verilmiştir:
MainActivity (alıntı)
Java
package ...
import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
public class MainActivity extends AppCompatActivity {
private AdView mAdView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
}
Kotlin
package ...
import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
class MainActivity : AppCompatActivity() {
lateinit var mAdView : AdView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) {}
mAdView = findViewById(R.id.adView)
val adRequest = AdRequest.Builder().build()
mAdView.loadAd(adRequest)
}
}
Reklamınız yüklenemezse reklam biriminizi yenilenecek şekilde yapılandırdığınız sürece açıkça başka bir reklam istemenize gerek yoktur. Google Mobile Ads SDK'sıAdMob web arayüzünde belirttiğiniz yenileme hızına uyar. Yenilemeyi etkinleştirmediyseniz yeni bir istek göndermeniz gerekir.
İşte bu kadar. Uygulamanız artık banner reklam göstermeye hazır.
Reklam etkinlikleri
Reklamınızın davranışını daha da özelleştirmek için reklamın yaşam döngüsünde yükleme, açma, kapatma gibi birçok olayı ele alabilirsiniz. Bu etkinlikleri AdListener
sınıfı aracılığıyla dinleyebilirsiniz.
AdView
ile AdListener
kullanmak için setAdListener()
yöntemini çağırın:
Java
mAdView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
mAdView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
AdListener
içindeki geçersiz kılınabilir yöntemlerin her biri, bir reklamın yaşam döngüsündeki bir etkinliğe karşılık gelir.
Geçersiz kılınabilir yöntemler | |
---|---|
onAdClicked() |
Bir reklam için tıklama kaydedildiğinde onAdClicked() yöntemi çağrılır.
|
onAdClosed() |
Bir kullanıcı bir reklamın hedef URL'sini görüntüledikten sonra uygulamaya döndüğünde onAdClosed() yöntemi çağrılır. Uygulamanız, askıya alınmış etkinlikleri devam ettirmek veya kendisini etkileşime hazır hale getirmek için gereken diğer işleri yapmak için bu hesabı kullanabilir.
Android API Demo uygulamasındaki reklam işleyici yöntemlerinin uygulanması için AdMob AdListener örneğine bakın.
|
onAdFailedToLoad() |
onAdFailedToLoad() yöntemi, parametre içeren tek yöntemdir. LoadAdError türündeki hata parametresi, hangi hatanın oluştuğunu açıklar. Daha fazla bilgi için Reklam Yükleme Hatalarında Hata Ayıklama belgelerini inceleyin.
|
onAdImpression() |
Bir reklam için gösterim kaydedildiğinde onAdImpression() yöntemi çağrılır.
|
onAdLoaded() |
onAdLoaded() yöntemi, bir reklamın yüklenmesi tamamlandığında yürütülür. Örneğin, bir reklamın yükleneceğinden emin olana kadar AdView öğesini etkinliğinize veya parçanıza eklemeyi geciktirmek isterseniz bunu burada yapabilirsiniz.
|
onAdOpened() |
Bir reklam, ekranı kaplayan bir yer paylaşımı açtığında onAdOpened() yöntemi çağrılır.
|
Banner boyutları
Reklamınızı yerleştirdiğiniz kapsayıcının boyutu en az banner kadar olmalıdır. Kapsayıcınızda dolgu varsa bu, kapsayıcınızın boyutunu etkili şekilde azaltır. Kapsayıcı banner reklama sığmazsa banner görünmez ve günlüklerde şu uyarıyı alırsınız:
W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.
Aşağıdaki tabloda standart banner boyutları listelenmiştir.
dp cinsinden boyut (GxY) | Açıklama | Kullanılabilirlik | Reklam Boyutu sabiti |
---|---|---|---|
320x50 | Banner | Telefonlar ve tabletler | BANNER |
320x100 | Büyük banner | Telefonlar ve tabletler | LARGE_BANNER |
300x250 | IAB orta boy dikdörtgen | Telefonlar ve tabletler | MEDIUM_RECTANGLE |
468x60 | IAB tam boyutlu banner | Tabletler | FULL_BANNER |
728x90 | IAB skor tablosu | Tabletler | LEADERBOARD |
Sağlanan genişlik x Uyarlanabilir yükseklik | Uyarlanabilir banner | Telefonlar ve tabletler | Yok |
Ekran genişliği x 32|50|90 | Akıllı banner | Telefonlar ve tabletler | SMART_BANNER |
Özel banner boyutu tanımlamak için istediğiniz AdSize
değerini gösterildiği gibi ayarlayın:
Java
AdSize adSize = new AdSize(300, 50);
Kotlin
val adSize = AdSize(300, 50)
Video reklamlar için donanım hızlandırma
Video reklamların banner reklam görüntülemelerinizde başarılı bir şekilde gösterilmesi için donanım hızlandırma'nın etkinleştirilmesi gerekir.
Donanım hızlandırma varsayılan olarak etkindir ancak bazı uygulamalar bunu devre dışı bırakmayı seçebilir. Bu durum uygulamanız için geçerliyse reklam kullanan Activity
sınıfları için donanım hızlandırmayı etkinleştirmenizi öneririz.
Donanım hızlandırmayı etkinleştirme
Uygulamanız genel olarak açık donanım hızlandırmada düzgün davranmıyorsa bunu her etkinlik için de kontrol edebilirsiniz. Donanım hızlandırmayı etkinleştirmek veya devre dışı bırakmak için AndroidManifest.xml
içindeki <application>
ve <activity>
öğeleri için android:hardwareAccelerated
özelliğini kullanabilirsiniz. Aşağıdaki örnek, uygulamanın tamamı için donanım hızlandırmayı etkinleştirir ancak tek bir etkinlik için devre dışı bırakır:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Donanım hızlandırmasını kontrol etme seçenekleri hakkında daha fazla bilgi için Donanım hızlandırma kılavuzuna bakın. Etkinlik devre dışı bırakılırsa donanım hızlandırma için tek reklam görüntülemelerinin etkinleştirilemeyeceğini unutmayın. Bu nedenle etkinliğin kendisinde donanım hızlandırma etkin olmalıdır.
Ek kaynaklar
GitHub'daki örnekler
Banner RecyclerView örnek uygulaması: Java
Mobile Ads Garage eğitim videoları
Başarı öyküleri
Sonraki adımlar
Şu konuları keşfedin: