Tích Hợp Quảng Cáo Admob vào Ứng Dụng Android

Các loại quảng cáo AdMob

AdMob hỗ trợ trong Android dưới 2 dạng đó là:

  • Banner ads: hiển thị 1 phần ở trên hoặc dưới màn hình.
  • Interstitial ads: dạng quảng cáo toàn màn hình.
Admob Banner Ads
Banner Ads
AdMob Interstitial Ads
Interstitial Ads

Ad Units

Ứng với mỗi loại quảng cáo Banner hay Interstitial sẽ có 1 đơn vị quảng cáo gọi là Ad unit, mỗi Ad unit sẽ có 1 id định danh. Để tích hợp quảng cáo vào ứng dụng phải tạo đơn vị quảng cáo trên trang chủ AdMob.

Bạn đang xem: Chèn quảng cáo vào ứng dụng android

Tạo Banner Ad unit

Bước 1: tạo 1 tài khoản AdMob nếu chưa có tại: https://apps.admob.com

Bước 2: chọn sang tab Monetize và nhấn vào Monetize new app

res 1605264844 1605264844758

Bước 3: nhập tên App và chọn nền tảng tích hợp quảng cáo nền tảng (ở đây chọn Android) và nhấn Add app.

res 1605264867 1605264867060

Bước 4: chọn loại quảng cáo và nhập tên quảng cáo, tên này dùng để quản lý sau khi gắn quảng cáo để xem số lượt xem, số lượt nhấp chuột và nhấn Save.

res 1605264882 1605264882990

Bước 5: đăng kí thành công sẽ thấy 1 chuỗi dài như dưới đây, đó là id của Ad unit dùng để tích hợp vào ứng dụng.

res 1605264899 1605264899569

Tạo Interstitial Ad unit

Tạo tiếp 1 loại quảng cáo là Interstitial ads:

res 1605264913 1605264913987

Tiếp theo, tiến hành tích hợp quảng cáo vào ứng dụng Android sau khi đã tạo thành công các Ad units.

Tích hợp AdMob vào ứng dụng Android

Tạo 1 project có tên là AdModAds:

res 1605264935 1605264935112

tham khảo: 10 cách sạc pin nhanh cho điện thoại, giúp tăng tốc độ sạc pin mà vẫn an toàn

Tiếp theo, mở file build-gradle (Module: app) và thêm dòng dưới đây vào trong dependencies:

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

Nhấn Sync Now để Android Studio tải thư viện và tiến hành cài đặt:

res 1605264948 1605264948221

Tạo thêm 1 Activity, tên là FullAdsActivity để hiển thị quảng cáo dạng toàn màn hình Interstitial.

Ở MainActivity hiển thị quảng cáo dạng Banner ở phía dưới và 1 button để mở FullAdsActivity .

Vì việc tải quảng cáo cần sử dụng internet nên phải cấp quyền truy cập internet trong file manifest.xml như sau:

<?xml version=”1.0″ encoding=”utf-8″?> <manifest xmlns:android=”http://schemas.android.com/apk/res/android” package=”com.example.nguyennghia.admobads”> <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”> <activity android:name=”.MainActivity”> <intent-filter> <action android:name=”android.intent.action.MAIN” /> <category android:name=”android.intent.category.LAUNCHER” /> </intent-filter> </activity> <activity android:name=”.FullAdsActivity”></activity> </application> </manifest>

Thêm Ad unit vừa mới tạo ở trên vào thư mục string.xml trong values:

<resources> <string name=”app_name”>AdMobAds</string> <!-Ad unit-> <string name=”ad_unit_banner”>ca-app-pub-8567317612161629/1489835995</string> <string name=”ad_unit_full”>ca-app-pub-8567317612161629/2966569195</string> </resources>

Hiển thị Banner Ads

Trong file activity_main.xml khai báo 1 AdView như sau:

<?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:layout_width=”match_parent” android:layout_height=”match_parent” tools:context=”com.example.nguyennghia.admobads.MainActivity”> <Button android:text=”Open InterstitialAds” android:layout_centerInParent=”true” android:id=”@+id/btn_open_interstitial_ads” android:layout_width=”wrap_content” android:layout_height=”wrap_content” /> <com.google.android.gms.ads.AdView android:id=”@+id/av_banner” android:layout_alignParentBottom=”true” android:layout_centerHorizontal=”true” ads:adSize=”SMART_BANNER” ads:adUnitId=”@string/ad_unit_banner” android:layout_width=”wrap_content” android:layout_height=”wrap_content”> </com.google.android.gms.ads.AdView> </RelativeLayout>

Với Adsize sẽ có những hằng sau đây:

Smart Banners sẽ căn theo chiều cao của thiết bị, để xác định chiều cao của AdView.

Nếu tạo bằng mã Java:

AdView adView = new AdView(this); adView.setAdSize(AdSize.SMART_BANNER); adView.setAdUnitId(“ca-app-pub-8567317612161629/1489835995”);

tại đây: Cách cài định vị giữa 2 điện thoại đơn giản bạn biết chưa?

File MainActivity.java

package com.example.nguyennghia.admobads; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; import com.google.android.gms.ads.InterstitialAd; public class MainActivity extends AppCompatActivity { private static final String TAG = “MainActivity”; private AdView avBanner; private AdRequest adRequest; private Button btnOpenInterstitialAd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnOpenInterstitialAd = (Button)findViewById(R.id.btn_open_interstitial_ads); avBanner = (AdView)findViewById(R.id.av_banner); adRequest = new AdRequest.Builder().build(); // LLoad ads avBanner.loadAd(adRequest); btnOpenInterstitialAd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, FullAdsActivity.class); startActivity(intent); } }); } }

1 số Event của AdView

avBanner.setAdListener(new AdListener() { @Override public void onAdLoaded() { // Code to be executed when an ad finishes loading. } @Override public void onAdFailedToLoad(int errorCode) { // Code to be executed when an ad request fails. } @Override public void onAdOpened() { // Code to be executed when an ad opens an overlay that // covers the screen. } @Override public void onAdLeftApplication() { // Code to be executed when the user has left the app. } @Override public void onAdClosed() { // Code to be executed when when the user is about to return // to the app after tapping on an ad. } });

onAdLoaded()

onAdLoaded() là phương thức được gọi ngay sau khi quảng cáo được tải xong.

onAdFailedToLoad()

onAdFailedToLoad() là phương thức được gọi khi yêu cầu quảng cáo không thành công, có thể yêu cầu lại quảng cáo mới.

onAdOpened()

onAdOpened() là phương thức được gọi khi người dùng nhấp chuột vào quảng cáo.

onAdLeftApplication()

onAdLeftApplication() là phương thức được gọi ngay sau khi onAdOpened() được gọi. Activity hiển thị quảng cáo được mở lên.

onAdClosed()

onAdClosed() là phương thức được gọi khi người dùng trở lại từ Activity quảng cáo.

Load Ads Interstitial

package com.example.nguyennghia.admobads; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.InterstitialAd; public class FullAdsActivity extends AppCompatActivity { private static final String TAG = “FullAdsActivity”; private InterstitialAd interstitialAd; private AdRequest adRequest; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_full_ads); interstitialAd = new InterstitialAd(this); interstitialAd.setAdUnitId(getResources().getString(R.string.ad_unit_full)); interstitialAd.setAdListener(new AdListener() { @Override public void onAdLoaded() { super.onAdLoaded(); Log.i(TAG, “onAdLoaded: “); interstitialAd.show(); } @Override public void onAdOpened() { super.onAdOpened(); Log.i(TAG, “onAdOpened: “); } @Override public void onAdLeftApplication() { super.onAdLeftApplication(); Log.i(TAG, “onAdLeftApplication: “); } @Override public void onAdFailedToLoad(int i) { super.onAdFailedToLoad(i); Log.i(TAG, “onAdFailedToLoad: “); } @Override public void onAdClosed() { super.onAdClosed(); Log.i(TAG, “onAdClosed: “); } }); adRequest = new AdRequest.Builder().build(); interstitialAd.loadAd(adRequest); } }

Quảng cáo Banner thì Interstitial không cần khởi tạo View mà chỉ sử dụng lớp InterstitialAd sau đó đặt AdUnitId và sử dụng AdRequest để tải quảng cáo như quảng cáo Banner.

Nếu ứng dụng đang kiểm tra quảng cáo thì nên khởi tạo AdRequest như sau:

new AdRequest.Builder().addTestDevice(“SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID”).build();

Với id được lấy ở LogCat như hình dưới đây:

res 1605264970 1605264970885

Do đó AdRequest trong ví dụ là:

adRequest = new AdRequest.Builder().addTestDevice(“9D50B2710767A863E237BDB4FC17C196”).build();

Kết quả sau khi chạy app với chế độ kiểm tra quảng cáo:

đang hot: TOP 11 app quản lý ảnh tốt nhất, hiệu quả nhất trên Android

Tải project demo

  • Tải trực tiếp: AdMobAdsWorking-master.zip
  • Tải từ Github.

Luke Tran

Tôi là Luketran sinh ra và lớn lên tại Hà Nội, một game thủ có đam mê game, chia sẻ những tin tức, đánh giá, tính năng, hướng dẫn và tải xuống về game mobile, game pc, game offline, game online, game trên android, game trên ios. Hiện tôi đang là founder của công ty cổ phần dịch vụ phát triển người dùng Editlife

Trả lời

Email của bạn sẽ không được hiển thị công khai.