Admob là nền tảng quảng cáo trên thiết bị mobile, giúp bạn kiếm tiền từ việc hiển thị quảng cáo. Đây là giải pháp kiếm tiền tốt nhất cho ứng dụng được phát hành miễn phí. Bài viết này, mình sẽ hướng dẫn các bạn tích hợp admob trong android để hiển thị các loại quảng cáo khác nhau mà AdMob hỗ trợ.
Nội dung chính của bài viết
#Admob là gì? Ưu điểm
Có thể coi Google Admob là quảng cáo Adsense, hiển thị quảng cáo trên các ứng dụng di động.
AdMob là một công ty quảng cáo di động do Omar Hamoui thành lập vào ngày 10 tháng 4 năm 2006 khi Hamoui đang học tại Wharton. Sau đó được Google mua lại với giá 750 triệu USD vào tháng 11 năm 2009.
Để có thể kiếm tiền bền vững với Google Admob, bạn sẽ phải đọc rất kỹ những chính sách của họ. Chỉ cần bạn vi phạm một điều nhỏ trong đó thôi cũng đủ ôm hận.
Ưu điểm của Admob so với Ad network khác
Nếu nói đến hình thức kiếm tiền từ quảng cáo trên các ứng dụng di động thì có lẽ khó có công ty nào qua mặt được admob. Vì sao ư?
- Admob là công ty thuộc Google, nên độ uy tín khỏi bàn.
- Nhiều quảng cáo, phù hợp với mọi loại ứng dụng.
- Giá trên mỗi lượt click cao.
- Nhiều tính năng tích hợp giúp bạn tối ưu doanh thu.
- Hỗ trợ nhiều loại quảng cáo: banner, insterest ad, native ads, video ads…
- Được hỗ trợ tốt từ các suppoter admob.
Ở bài viết này, mình sẽ không đi sâu vào những chính sách của Admob, chỉ đơn thuần hướng dẫn cách tích hợp Admob vào android.
#Các loại quảng cáo Google Admob vào Android
Là loại quảng cáo hình ảnh hoặc quảng cáo văn bản hình chữ nhật chiếm một vị trí trong bố cục của ứng dụng.
Banner mình hay sử dụng để đặt dưới bottom layout vì nó tiện dụng. Mặc dù doanh thu kiếm từ banner là thấp nhất nhưng lại tiện dụng nhất vì màn nào cũng có thể add được.
2. Interstitial
Đây là hình thức hiển thị quảng cáo chiếm toàn bộ màn hình.
Interstital mình hay sử dụng khi người dùng làm 1 hoạt động gì đó thì mình cho show full màn hình,hoặc lần đầu tiên vào app.
Doanh thu kiếm từ full là tương đối lớn. Tuy nhiên, nhược điểm là nó làm giảm trải nghiệm người dùng. Nếu bạn tích hợp không khéo, có thể gây khó chịu cho người dùng.
3. Native
Là loại quảng cáo cho phép bạn quyền tùy chỉnh cách nội dung được trình bày trong ứng dụng.
Kiểu như trong các ứng dụng đọc báo, trong danh sách tin bài thì xen kỹ vào những bài viết quảng cáo.
4. Quảng cáo Admob vào Android cuối cùng: Rewarded Video
Là quảng cáo video toàn màn hình mà người dùng có tùy chọn xem toàn bộ để đổi lấy phần thưởng trong ứng dụng.
Thông thường Rewarded video hay được sử dụng trong game khi người dùng muốn thêm lượt hoặc muốn kiếm điểm thưởng.
Phần tiếp theo, chúng ta sẽ cùng nhau tích hợp banner và Interstitial Admob vào ứng dụng Android.
#Từng bước tích hợp Admob trong Android
1.Tạo id quảng cáo Admob trong ứng dụng Android
Đầu tiên các bạn đăng ký và login theo link này.
Các bạn nhấn vào “Add App”.
Các bạn chọn YES nếu app của bạn đã có trên chplay. Nếu không thì cứ mạnh dạn chọn NO.
Bây giờ các bạn đặt tên app các bạn đặt tên gì cũng được cho dễ nhớ.
Khi bạn tạo xong nó sẽ hiện bảng như thế này
Bước tiếp theo, các bạn click vào next để tạo từng id một
Giờ các bạn chỉ cần chọn loại quảng cáo bạn muốn. Sau đó, bạn lấy Ad Unit để tích hợp vào trong code.
2. Tích hợp Admob ID vào code
Bước 1: Tạo project như bình thường.
Bước 2: Mở build.gradle thêm các thư viện
implementation 'com.google.firebase:firebase-core:9.0.2' implementation 'com.google.firebase:firebase-ads:9.0.2'
Bước 3. Tạo giao diện đơn giản như sau:
Mình sẽ thêm banner admob ở bottom trong layout.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:ads="http://schemas.android.com/apk/res-auto" tools:context=".MainActivity"> <TextView android:layout_centerInParent="true" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" ads:adSize="BANNER" ads:adUnitId="@string/banner_home_footer" /> </RelativeLayout>
Bước 4: Add Mã quảng cáo vào file String.xml
<string name="banner_home_footer">ca-app-pub-3940256099942544/6300978111</string> <string name="interstitial_full_screen">ca-app-pub-3940256099942544/1033173712</string> <string name="app_id">ca-app-pub-3940256099942544~3347511713</string>
Bước 5 :Tạo trong MainActivity.java.
Để quảng cáo chạy tốt chúng ta cần xử lý trong các vòng đời của Activity.
♠ Xem ngay: Activity Lifecycle
public class MainActivity extends AppCompatActivity { private AdView adView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initAdmob(); } private void initAdmob() { adView=findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder() .build(); adView.loadAd(adRequest); } @Override public void onPause() { if (adView != null) { adView.pause(); } super.onPause(); } @Override public void onResume() { super.onResume(); if (adView != null) { adView.resume(); } } @Override public void onDestroy() { if (adView != null) { adView.destroy(); } super.onDestroy(); } }
Vì quảng cáo sẽ cần phải kết nối internet nên đừng quên thêm permission INTERNET trong manifest.
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Và đây là thành quả.
Ngoài ra mình sẽ hướng dẫ các bạn thiết kế show full màn hình ở màn SplashActivity.
public class SplashActivity extends AppCompatActivity { private InterstitialAd interstitialAd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); MobileAds.initialize(this, getResources().getString(R.string.app_id)); interstitialAd = new InterstitialAd(this); interstitialAd.setAdUnitId(getResources().getString(R.string.interstitial_full_screen)); AdRequest adRequest = new AdRequest.Builder().build(); interstitialAd.loadAd(adRequest); interstitialAd.setAdListener(new AdListener() { @Override public void onAdClosed() { super.onAdClosed(); startMain(); } }); initViews(); } private void initViews() { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); new Handler().postDelayed(new Runnable() { @Override public void run() { if (interstitialAd.isLoaded()) { interstitialAd.show(); } else startMain(); } }, 3000); } private void startMain() { startActivity(new Intent(SplashActivity.this, MainActivity.class)); finish(); } }
Mình cho chạy màn hình Splash 3s sau khi admob đã load xong. Nếu load lỗi vì lý do gì đó mình sẽ cho chạy thẳng vào MainActivity.
>> Đọc thêm: Tạo Splash Screen trong Android chuẩn mực nhất
Và đây là kết quả sau khi tích hợp Interstitial ads.
Toàn bộ source code của bài viết tại đây nhé
Các bạn có thể tham khảo các bài viết chuyên sâu về tìm kiếm ý tưởng cũng như tự xây dựng một ứng dụng Android để kiếm tiền tại đây:
Hy vọng bài này sẽ giúp các bạn biết được cách tích hợp Admob trong Android app và kiếm được nhiều tiền từ Admob.
Bạn cho mình hỏi chút, mình mới tích hợp admob vào app dạng banner. app mình có nhiều màn hình, vậy mỗi màn hình đó mình lên sử dụng 1 ad id, hay các màn hình đều dùng chung 1 ad id. 2 cách ý thì cách nào tốt hơn ạ
chào bạn,
mình ko phải dân code nên hỏi hơi ngu xíu bạn thông cảm nhé:
ở bước 2: bước tích hợp, mở Android Studio lên vào tạo project … xong thì lưu ở đâu và có liên quan gì đến app mình trên store bạn nhỉ?
Hi,
Dự án bạn tạo sẽ lưu ở local, tức trên máy tính của bạn thôi. Không liên quan tới app đã publish trên store nhé
Hi bạn,
Vậy bước 1 và bước 2 liên quan gì nhau nhỉ?
Bạn cho minh hỏi cách gỡ quảng cáo như thế nào ạ
Mọi người đang muốn tích hợp còn không được mà bạn lại muốn gỡ ra? 🙂
Bạn muốn gỡ quảng cáo trên app của bạn hay app người khác?
Admin cho mình hỏi với. Mình làm theo hướng dẫn. chạy máy ảo hiển thị quảng cao. Tuy nhiên cài trên máy thật lại không hiển thị quảng cáo.
Nhờ Admin hướng dẫn thêm cách xử lý.
Cảm ơn.
Do quảng cáo Admob, cũng giống như các hình thức quảng cáo khác của Google. Tức là nó sẽ hiển thị quảng cáo liên quan đến thông tin của bạn sao cho quảng cáo phù hợp. Nên có thể khi bạn chạy trên device thật, Admob không có quảng cáo nào phù hợp để hiển thị cả. Mình nghĩ bạn cứ publish và theo dõi trên Admob console trong vài ngày, rồi xem thống kê lượt hiển thị thế nào.
Cảm ơn bạn.
Mình chạy trên 2 máy thật galaxy s5 va note 6 pro nhưng vẫn không hiển thị ads. Trong khi chạy trên máy ảo thì hiển thị ads.
mình chỉ tích hợp quảng cáo banner thôi bạn. mình làm như hướng dẫn của bạn. chạy chế độ test thì nó hiển thị quảng cáo. Nhưng khi mình cho app lên môi trường production thì quảng cáo không hiển thị lên, mình kiểm tra log thì báo Fail to load add error 3
Note: account admob của mình chỉ vừa mới tạo thôi đó admin. Mong admin có thể giải đáp giúp mình thắc mắc này ạ
Chào bạn,
Bạn kiểm tra xem chiến dịch quảng cáo cho app của bạn đã được kích hoạt rồi hay chưa? Nếu đã active rồi thì cũng có thể tại thời điểm đó không có quảng cáo cho location đó (ví dụ: không có quảng cáo cho VN).
Tốt nhất là bạn nên kiểm tra ở trên một device khác xem sao?
Account admob của mình đã đc approve. Nhưng mình chưa up lên chplay. Mình chỉ test trên real device thì k thấy hiển thị và bị báo fail to load ad 3
mình cũng bị tương tự, dùng bannerid sample của Google thì hiển thị (bản build trên thiết bị), nhưng khi dùng bannerid của mình trên admob thì không hiện.
Dương có giải pháp gì không? Thanks!
Theo như mình biết thì admob có liên kết với Google Play. Trước mình bị trường hợp là app bị xóa khỏi Google Play thì Admob cũng thông báo ngừng phân phối ads cho app đó. Nên mình nghĩ app của bạn cần lên GG play thì mới hiển thị ads được.,
Cảm ơn nhiều. mình đã làm được rồi. Quảng cáo đã hiện bình thường
Cho mình hỏi ngoài là nếu ứng dụng và Admob không kết nối tới fỉeBase thì có sao không ạ, vẫn kiếm tiền bình thường chứ
Đúng rồi bạn. Vẫn kiếm tiền bình thường. Vì admob và firebase độc lập với nhau nhé
Khổng hiểu tại sao khi đưa Admod vào ứng dụng, Run ứng dụng không chạy được. Không thấy bó lỗi chỗ nào
Chào bạn,
Bạn kiểm tra lại một số điểm sau nhé:
1. Bạn đã thêm yêu cầu INTERNET permission trong manifest file chưa?
2. Kiểm tra xem bạn đã tạo ứng dụng trong Admob dashboard chưa?
3. Kiểm tra device có kết nối mạng không?
Nếu cả ba vấn đề trên đang ok thì bạn feedback lại cho mình để mình check thêm nhé.