Site icon Mobilhanem

Android Webview İle Admob Banner ve Geçiş Reklamlarını Birlikte Kullanma

Merhaba Arkadaşlar,

mobilhanem.com sitemiz üzerinden yayınladığımız/anlattığımız derslerimize  önceki AdMob derslerimizin devamı niteliğinde Android Webview İle Admob Banner ve Geçiş Reklamlarını(Google Play Services) Birlikte Kullanma dersimiz ile devam edeceğiz.

Bu dersimizde tek tek banner reklamı,geçiş reklamı ve webview kullanımını anlatmayacağım.Banner reklam ekleme dersime buradan,Geçiş reklam ekleme dersime buradan ve Webview Kullanımı dersime buradan ulaşabilirsiniz.Bu dersler  yeni reklam sistemine göre yani Google Play Service eklenerek hazırlanmıştır.

Gelelim bugünkü dersimize .Bu ders biraz isteğe yönelik ders oldu. Genelde sorular bu üçünü birlikte kullanmaya yönelik sorulardı yada banner reklamla geçiş reklamı birlikte kullanmaya yönelik sorulardı.Bende bu dersi hazırlamaya karar verdim. Konuyu fazla uzatmadan kodlara geçelim.Ben her zamanki gibi ufak bir uygulama ile konuyu daha iyi anlatmaya çalıştım.Kod üzerinde gerekli açıklamaları yapmaya çalıştım.

 

 

NOT: Oluşturduğunuz projenize yada burdan indirip kullandığınız kaynak koda Google Play Service Lib i import etmeyi unutmayın.Nasıl yapacağınızı yukardaki linklerde bulabilirsiniz.

[wpdm_file id=25]

 

Anasayfa.java

package com.mobilhanem;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

import com.google.android.gms.ads.*;
public class Anasayfa extends Activity {

private WebView webView;
private CustomWebViewClient webViewClient;
private String Url = "http://www.mobilhanem.com";
ProgressDialog mProgressDialog;
private InterstitialAd gecisReklam;//geçiş reklam referansı
private AdView bannerReklam;//bannerReklam reklam referansı
private AdRequest adRequest;//adRequest referansı

@SuppressLint("SetJavaScriptEnabled") //javaScrit hata göstermesini kapattık
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_anasayfa);

/////////////WEBVİEW İŞLLEMLERİ////////////
mProgressDialog = new ProgressDialog(this);//ProgressDialog objesi oluşturuyoruz
mProgressDialog.setMessage("Yükleniyor...");//ProgressDialog Yükleniyor yazısı

webViewClient = new CustomWebViewClient();//CustomWebViewClient classdan webViewClient objesi oluşturuyoruz

webView = (WebView) findViewById(R.id.webView1);//webview mızı xml anasayfa.xml deki webview bağlıyoruz
webView.getSettings().setBuiltInZoomControls(true); //zoom yapılmasına izin verir
webView.getSettings().setSupportZoom(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(webViewClient); //oluşturduğumuz webViewClient objesini webViewımıza set ediyoruz
webView.loadUrl(Url);

/////////REKLAM İŞLEMLERİ///////////////////////////
adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("C521B8BE91B4860C229030D8E3CEA254")
.build();//Test işlemlerinde bunu özellikle eklememiz gerekiyor. Yoksa banlanırız.

//***********Banner reklam işlemleri*********

//Burda bannerReklam objesini oluşturuyoruz ve activity_anasayfa.xml de oluşturduğumuz adView e bağlıyoruz
bannerReklam = (AdView) this.findViewById(R.id.adView);
bannerReklam.loadAd(adRequest); //bannerReklam ı yüklüyoruz.

//***********Geçiş reklam işlemleri*********
gecisReklam = new InterstitialAd(this);
gecisReklam.setAdUnitId("ca-app-pub-6311389967106147/3632xxxxx");//Reklam İd miz.Admob da oluşturduğumuz geçiş reklam id si
gecisReklam.setAdListener(new AdListener() { //Geçiş reklama listener ekliyoruz

@Override
public void onAdLoaded() { //Geçiş reklam Yüklendiğinde çalışır
Toast.makeText(getApplicationContext(), "Reklam Yüklendi.", Toast.LENGTH_LONG).show();

}

@Override
public void onAdFailedToLoad(int errorCode) { //Geçiş Reklam Yüklenemediğinde Çalışır
Toast.makeText(getApplicationContext(), "Reklam Yüklenirken Hata Oluştu.", Toast.LENGTH_LONG).show();
}

public void onAdClosed(){ //Geçiş Reklam Kapatıldığında çalışır
Toast.makeText(getApplicationContext(), "Reklam Kapatıldı.", Toast.LENGTH_LONG).show();

//Geçiş reklam kapatıldığı zamanda yeni reklam yükleme işlemimizi başlatabiliriz.
//Böylelikle geçiş reklamımız gösterilmek iöçin hazırda bekler.
loadGecisReklam();
}
});

loadGecisReklam();//Geçiş reklamı yüklüyoruz

}

//Webview Listeneri
private class CustomWebViewClient extends WebViewClient {
//Alttaki methodların hepsini kullanmak zorunda deilsiniz
//Hangisi işinize yarıyorsa onu kullanabilirsiniz.
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) { //Sayfa yüklenirken çalışır
super.onPageStarted(view, url, favicon);

if(!mProgressDialog.isShowing())//mProgressDialog açık mı kontrol ediliyor
{
mProgressDialog.show();//mProgressDialog açık değilse açılıyor yani gösteriliyor ve yükleniyor yazısı çıkıyor
}

}

@Override
public void onPageFinished(WebView view, String url) {//sayfamız yüklendiğinde çalışıyor.
super.onPageFinished(view, url);

if(mProgressDialog.isShowing()){//mProgressDialog açık mı kontrol
mProgressDialog.dismiss();//mProgressDialog açıksa kapatılıyor
}
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// Bu method açılan sayfa içinden başka linklere tıklandığında açılmasına yarıyor.
//Bu methodu override etmez yada edip içini boş bırakırsanız ilk url den açılan sayfa dışında başka sayfaya geçiş yapamaz

view.loadUrl(url);//yeni tıklanan url i açıyor
return true;
}

@Override
public void onReceivedError(WebView view, int errorCode,String description, String failingUrl) {

}
}

public void onBackPressed() //Android Back Buttonunu Handle ettik. Back butonu bir önceki sayfaya geri dönecek
{
showGecisReklam();//Back butonuna basıldığında geçiş reklamımız gösterilecek.
if(webView.canGoBack()){//eğer varsa bir önceki sayfaya gidecek
webView.goBack();
}else{//Sayfa yoksa uygulamadan çıkacak
super.onBackPressed();
}
}
public void loadGecisReklam() {//Geçiş reklamı Yüklemek için

//Reklam Yükleniyor
gecisReklam.loadAd(adRequest);
}
public void showGecisReklam() {//Geçiş reklamı Göstermek için

if (gecisReklam.isLoaded()) {//Eğer reklam yüklenmişse kontrol ediliyor
gecisReklam.show(); //Reklam yüklenmişsse gösterilecek
} else {//reklam yüklenmemişse
Toast.makeText(getApplicationContext(), "Reklam Gösterim İçin Hazır Değil.", Toast.LENGTH_LONG).show();
}
}
}

 

activity_anasayfa.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">

<!-- Burda ads:adUnitId="ca-app-pub-6311389967106147/779319xxxx" burdaki id AdMob da reklam oluşturduğumuzda bize verilen Reklam birimi kimliği dir Bu alana kendi reklam kimliğinizi gireceksiniz. Son 4 haneyi xxxx yapmamın sebebi Google Kötüye kullanımdan benide banlayabilir. -->
<com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" ads:adUnitId="ca-app-pub-6311389967106147/779319xxxx" ads:adSize="BANNER"/>

<WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="match_parent" >
</WebView>

</LinearLayout>

 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mobilhanem" android:versionCode="1" android:versionName="1.0" >

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<activity android:name=".Anasayfa" android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
</application>

</manifest>

&nbsp;

 

Arkadaşlar xml dosyalarında fazla ayrıntıya girmiyorum. Belirttiğim gibi yukarıdaki linklerdeki derslerimde bunların hepsini en ince ayrıntısına kadar anlatmaya çalıştım.Onları incelemenizi tavsiye ederim.

Bu dersimde anlatmak istediklerim bu kadar.Sizlerden ricam facebook.com/mobilhanem sayfamızı beğenmenizdir.Paylaştığımız her dersi facebook sayfamızdada paylaşıyoruz. Böylelikle her dersimizden haberdar olabilirsiniz.Bir dahaki dersimde, başlayıp bir türlü bitiremediğim Rss Reader dersini bitirip yayınlamayı düşünüyorum veya İos da adMob ekleme derside olabilir.

Bir dahaki dersimde görüşmek dileğiyle kendinize iyi bakın.

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

NOT:Android Studio için Google Play Service import dersimiz için tıklayınız.
[wpdm_file id=25]

 

0
Exit mobile version