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>
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