Ensar Hamzaçebi

An Android Developer

Android Uygulamalara Google Admob Entegrasyonu

| Comments

Admob, android uygulamanızdan para kazanmanızı sağlayan, multi platform bit reklam ağıdır. Admob'u entegre eder etmez para kazanmaya başlayabilirsiniz.AdMob entegrasyonunu çok kolay bi şekilde gerçekleştirebilirsiniz.

1.Reklam Türleri - Banner ve Interstitial

Önce admob reklam türlerinden biraz bahsedelim. AdMob iki tür reklamı deesteklemektedir. Bunlardan birincisi Banner reklamlarıdır. Banner reklamı ekranın belli bölgesinde gösterilen küçük reklamlardır. Diğer reklam türü ise Interstitial yani geçiş reklamlarıdır. Bu reklamlar bütün ekranı kaplayan reklamlardır. Bu reklamlar uygulamanın user interface'ini bloke ederek en üstte görünürler.

2.Reklam Birimi Oluşturma

  1. Admob hesabına giriş yapıyoruz.
  2. Üst kısımda Para Kazanın seçeneğine tıklıyoruz.
  3. Sol taraftaki Yeni uygulamadan para kazanın seçeneğine tıklıyoruz.
  4. Uygulamanızı manuel olarak ekleyin sekmesine geçiyoruz ve uygulama adını yazıp platform'u seçiyoruz.
  5. Kullanmak istediğiniz reklam türünü seçiyoruz ve reklam birimine bir isim veriyoruz.
  6. Reklam birimi oluşturulduğunda size bir Ad Unit ID verilecektir. Bu ıd'yi ileride kullanacağız.

Biz projemiz için bir banner bir de geçiş reklamı için id oluşturuyoruz.

3.Proje Entegrasyonu

Yapmamız gereken ilk şey build.gradle'da dependencies‘in içerisine şu satırı eklemek olmalı.

1
compile ‘com.google.android.gms:play-services-ads:8.4.0’

Daha önceden oluşturduğumuz Ad Unit Id'lerimizi /res/valuses altındaki strings.xml dosyasına aşşağıdaki gibi ekliyoruz.

strings.xml
1
2
3
4
<!-- AdMob ad unit IDs -->
    <string name="banner_home_footer">ca-app-pub-3120536913205473/5975042732</string>
    <string name="interstitial_full_screen">ca-app-pub-3120536913205473/3021576335</string>

Buralara kendi banner ve full screen reklam id'lerinizi yazmayı unutmayın.

Şimdi sıra geldi AndroidManifest.xml dosyasına. Bu dosyamıza gerekli olan INTERNET ve ACCESS_NETWORK_STATE permission (izin) lerini vermemiz gerekiyor.

Daha sonrra google play services versiyon meta-data'sını da eklemeliyiz. Son olarak ta AdActivity, confinChanges ve theme atribütlerini ekliyoruz. AndroidManifest.xml dosyamızın son hali aşşağıdakine benzer bir şekil almış olmalı.

AdnroidManifest.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="info.androidhive.admob">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!--Include the AdActivity configChanges and theme. -->
        <activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@android:style/Theme.Translucent" />
    </application>

</manifest>

Banner Reklam Ekleme

Banner reklamın gösterilmesini istediğiniz sayfanın xml dosyasını açıyoruz ve aşşağıdaki kodları ekliyoruz.

AdnroidManifest.xml
1
2
3
4
5
6
7
<com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_home_footer">
    </com.google.android.gms.ads.AdView>

Ben main activity'de gösterilmesini istiyorum. activity_main.xml dosyam şu şekilde olucak.

activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="info.androidhive.admob.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/msg_welcome" />

    <Button android:id="@+id/btn_fullscreen_ad"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="@string/btn_fullscreen_ad"/>

    <com.google.android.gms.ads.AdView
        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="@string/banner_home_footer">
    </com.google.android.gms.ads.AdView>
</RelativeLayout>

MainActivity.java dosyasını açıyoruz. AdRequest instance'ı oluşturup AdView'a yüklüyoruz.

MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.ensr.admob;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {

    private AdView mAdView;
    private Button btnFullscreenAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder()
                .build();
        mAdView.loadAd(adRequest);

        btnFullscreenAd = (Button) findViewById(R.id.btn_fullscreen_ad);
        btnFullscreenAd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, SecondActivity.class));
            }
        });
    }

    @Override
    public void onPause() {
        if (mAdView != null) {
            mAdView.pause();
        }
        super.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        if (mAdView != null) {
            mAdView.resume();
        }
    }

    @Override
    public void onDestroy() {
        if (mAdView != null) {
            mAdView.destroy();
        }
        super.onDestroy();
    }
}

Eğer projeyi bu haliyle run ederseniz şu şekilde bir çıktı almanız gerekiyor.

Interstitial(Geçiş) Reklam Ekleme

İkinci bir activity üzerinde gösterelim isterseniz. SeccondActivity.java adında bir activity daha oluşturuyoruz.

SeccondActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.ensr.admob;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;

public class SecondActivity extends AppCompatActivity {

    private String TAG = SecondActivity.class.getSimpleName();
    InterstitialAd mInterstitialAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        mInterstitialAd = new InterstitialAd(this);

        // set the ad unit ID
        mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen));

        AdRequest adRequest = new AdRequest.Builder()
                .build();

        // Load ads into Interstitial Ads
        mInterstitialAd.loadAd(adRequest);

        mInterstitialAd.setAdListener(new AdListener() {
            public void onAdLoaded() {
                showInterstitial();
            }
        });
    }

    private void showInterstitial() {
        if (mInterstitialAd.isLoaded()) {
            mInterstitialAd.show();
        }
    }

}

Uygulamamızı çalıştırdığımızda anasayfadaki SHOW FULLSCREEN AD butonuna tıkladığımızda reklamımızı görebilirsiniz.

En azından bir fikir sahibi olmuşsunuzdur diye tahmin ediyorum. Kafanıza takılan biyer olursa sorabilirsiniz. İyi çalışmalar.

Kaynak: androidhive

Comments