+1

Tích hợp quảng cáo Admob vào app Android

Admob là một nền tảng quảng cáo trên mobile của Google và là cách dễ dàng để kiếm tiền từ ứng dụng di động.

Admob giúp bạn kiếm tiền bằng cách hiển thị quảng cáo bên trong app của bạn. Quảng cáo có thể dạng banner, quảng cáo chuyển tiếp hoặc native ads. Ngoài ra trên Android bạn có thêm in-app purchase ads.

Trước khi có thể tích hợp và hiển thị quảng cáo trong ứng dụng bạn cần có một tài khoảng Admob và tạo một hoặc nhiều Ad Unit ID.

Bài này mình sẽ hướng dẫn cách tích hợp quảng cáo Admob vào trong ứng dụng Android.

Chúng ta cần có

  • Android Studio 1.0 trở lên
  • Min SDK từ Android 9 trở lên
  • Một Android Studio project

Bước 1

Tạo Project hoặc từ project có sẵn thêm dependency của thư viện google play services, bởi vì admod là một phần của google play services cho nên bạn có thể thêm dependency trực tiếp tới gói play-services-ads nhằm giảm số lượng method không cần thiết trong các gói khác.

compile 'com.google.android.gms:play-services-ads:9.4.0'

Sau đó Sync project.

Bước 2

Thêm Banner Ads, có 2 cách phổ biến bạn có thể thêm Banner Ads vào giao diện. Bạn có thể thêm trực tiếp vào XML như là một view thông thường hoặc có thể khởi tạo đối tượng AdView trong java và thêm vào layout.

Vì quảng cáo sẽ được tải từ server về nên cần thêm permission INTERNET

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

Thêm AdView vào XML:

Hãy nhớ thêm xmlns ads xmlns:ads="http://schemas.android.com/apk/res-auto"

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.framgia.lupx.admob.example.MainActivity">

    <RelativeLayout
        android:id="@+id/yourContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/banner">

        <TextView
            android:layout_width="match_parent"
            android:text="YOUR CONTENT"
            android:textSize="16sp"
            android:textStyle="bold"
            android:textColor="#CCC"
            android:gravity="center"
            android:layout_height="match_parent" />

    </RelativeLayout>

    <com.google.android.gms.ads.AdView
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/banner_id" />
</RelativeLayout>

Với test ad bạn có thể dùng Ad Unit Id dưới đây, tuy nhiên khi chạy thực tế bạn phải lấy Ad Unit Id trong tài khoản Admob của bạn. Một lưu ý quan trọng nữa đó là khi test nếu không trong test mode bạn tuyệt đối không được tự click vào quảng cáo, việc đó sẽ dẫn đến tài khoản của bạn bị khóa vĩnh viễn.

 <string name="banner_id">ca-app-pub-3940256099942544/6300978111</string>

Load Ad trong Java:

private void requestAds(){
        banner = (AdView)findViewById(R.id.banner);
        AdRequest adRequest = new AdRequest.Builder().build();
        banner.loadAd(adRequest);
}

Chạy thử cái xem, biết đâu lại giàu như Hà Đông (j/k) (yaoming)

device-2016-10-28-085331.png

Custom event

Về cơ bản như vậy là đã hoàn thành việc thêm và load ad, nếu ứng dụng sẵn sàng bạn có thể cho lên store và bắt đầu công cuộc đi "hái tiền" =))

Tuy nhiên nếu muốn kiểm soát việc load ad bằng các sực kiện như ad được load, ad được hiển thị, ad close hay không có ad nào được load về thì bạn có thể implement AdListener.

 banner.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                //Khi ad bị close bởi người dùng
            }

            @Override
            public void onAdFailedToLoad(int i) {
                //Khi load quảng cáo lỗi, bạn có thể load quảng cáo của mạng khác để thay thế tại đây
                switch (i){
                    case AdRequest.ERROR_CODE_INTERNAL_ERROR:

                        break;
                    case AdRequest.ERROR_CODE_INVALID_REQUEST:

                        break;
                    case AdRequest.ERROR_CODE_NETWORK_ERROR:

                        break;
                    case AdRequest.ERROR_CODE_NO_FILL:
                            //Khi không còn quảng cáo nào phù hợp
                        break;
                }
            }

            @Override
            public void onAdLeftApplication() {
                super.onAdLeftApplication();
            }

            @Override
            public void onAdOpened() {
                // Khi quảng cáo được mở
            }

            @Override
            public void onAdLoaded() {
                //Khi quảng cáo đã load xong
            }
        });

Bonus

Về việc đặt quảng cáo bạn cần chú ý, nếu không muốn bị khóa tài khoản:

  • quảng cáo không được phép che khuất nội dụng của ứng dụng
  • Quảng cáo không được gây nhầm lẫn khiến người dùng click nhầm
  • Không nên đặt gần các button hay các vị trí người dùng có thể vô tình click
  • Một màn hình chỉ được xuất hiện duy nhất một quảng cáo cùng loại.
  • Không được khuyến khích, hướng dẫn người dùng click vào quảng cáo
  • Vân vân và vân vân

Tạm thời thế đã, rất có thể bài sau mình sẽ nói về quảng cáo dạng chuyển tiếp (Interstitial Ad). Chúc các bạn làm app thu được nhiều tiền, Google rất nhiều tiền, các bạn yên tâm đi. Mình chưa hái được ít nào cả (lol)

Mọi người ai có hứng thú hoặc quan tâm có thể pm mình cũng thảo luận 😄

GITHUB SAMPLE

Còn tiếp ...


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí