- vừa được xem lúc

Google Admob - Cách mở quảng cáo của app từ backgroud đến foreground

0 0 10

Người đăng: Tuyển Thủ Lon Nước Ngọt

Theo Viblo Asia

Mở đầu

Đối với bất kỳ nhà phát triển ứng dụng nào, tối ưu hóa nguồn thu từ quảng cáo luôn là một trong những mối quan tâm hàng đầu. Có rất nhiều loại quảng cáo khác nhau. Hôm nay mình sẽ đi vào một loại quảng cáo của app từ backgroud đến foreground

Quảng cáo trong app

  1. Loại quảng cáo trong ứng dụng:

    • Quảng cáo Banner: Hiển thị ở đầu, cuối hoặc giữa màn hình.
    • Quảng cáo Toàn màn hình (Interstitial): Ngắt người dùng và tạm dừng ứng dụng để hiển thị quảng cáo đầy màn hình.
    • Quảng cáo Video: Người dùng phải xem video quảng cáo để nhận phần thưởng trong ứng dụng.
    • Quảng cáo Thưởng (Rewarded Ads): Tương tự quảng cáo video nhưng người dùng được thưởng khi xem hết.
  2. Mô hình thanh toán:

    • CPM (Cost Per Mille): Bạn được trả tiền cho mỗi 1000 lượt hiển thị quảng cáo.
    • CPC (Cost Per Click): Bạn được trả tiền cho mỗi lượt nhấp vào quảng cáo.
    • CPI (Cost Per Install): Bạn được trả tiền cho mỗi lần người dùng cài đặt ứng dụng của bạn từ quảng cáo.
  3. Mạng quảng cáo: Đây là những công ty trung gian giúp kết nối nhà phát triển ứng dụng với nhà quảng cáo. Một số mạng quảng cáo phổ biến là Google AdMob, Facebook Audience Network, AppLovin, Unity Ads, vv.

  4. Đề xuất quảng cáo: Các mạng quảng cáo sử dụng thuật toán để đề xuất quảng cáo phù hợp với người dùng dựa trên hành vi, vị trí địa lý và đặc điểm người dùng.

  5. Yếu tố ảnh hưởng đến doanh thu quảng cáo:

    • Lượng người dùng tương tác với ứng dụng
    • Thời gian và tần suất hiển thị quảng cáo
    • Loại quảng cáo và vị trí hiển thị
    • Chất lượng quảng cáo và mức độ phù hợp với người dùng
  6. Chiến lược quảng cáo: Bạn cần có chiến lược quảng cáo phù hợp để tối ưu hóa doanh thu mà không làm giảm trải nghiệm người dùng quá mức. Điều này bao gồm lựa chọn loại quảng cáo, tần suất hiển thị, vị trí hiển thị, và đo lường hiệu quả.

  7. Tuân thủ chính sách: Các mạng quảng cáo có chính sách riêng về nội dung quảng cáo, loại ứng dụng được phép và không được phép. Bạn cần tuân thủ những chính sách này để tránh bị chặn hoặc loại bỏ khỏi mạng quảng cáo.

Demo quảng cáo của app mở từ background đến foreground

Để hiển thị quảng cáo từ background lên foreground trong ứng dụng sử dụng Google AdMob, bạn cần thực hiện các bước sau:

Lý thuyết:

  1. Đăng ký Lifecycle Callbacks: Đăng ký Lifecycle Callbacks để lắng nghe trạng thái ứng dụng chuyển từ background sang foreground. Bạn có thể sử dụng ProcessLifecycleOwner trong Android để đăng ký.

  2. Tải quảng cáo khi ứng dụng ở background: Khi ứng dụng chuyển sang background, bạn có thể tải quảng cáo để sẵn sàng hiển thị khi ứng dụng chuyển sang foreground.

  3. Hiển thị quảng cáo khi ứng dụng chuyển sang foreground: Trong phương thức onResume() của Activity hoặc Fragment, bạn có thể kiểm tra xem quảng cáo đã được tải hay chưa. Nếu đã tải xong, hiển thị quảng cáo.

Demo:

@HiltAndroidApp
class App : Application(), Application.ActivityLifecycleCallbacks { private lateinit var appOpenAdManager: AppOpenAdManager private var currentActivity: Activity? = null override fun onCreate() { super.onCreate() registerActivityLifecycleCallbacks(this) MobileAds.initialize(this) appOpenAdManager = AppOpenAdManager() } override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) = Unit override fun onActivityStarted(activity: Activity) { currentActivity = activity } override fun onActivityResumed(activity: Activity) = Unit override fun onActivityPaused(activity: Activity) = Unit override fun onActivityStopped(activity: Activity) = Unit override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) = Unit override fun onActivityDestroyed(activity: Activity) = Unit fun showAdIfAvailable(activity: Activity) { appOpenAdManager.showAdIfAvailable(activity) } /** Inner class that loads and shows app open ads. */ private inner class AppOpenAdManager { private var appOpenAd: AppOpenAd? = null private var isLoadingAd = false fun loadAd(context: Context) { // Do not load ad if there is an unused ad or one is already loading. if (isLoadingAd || isAdAvailable()) { return } isLoadingAd = true val request = AdRequest.Builder().build() AppOpenAd.load(context, getString(R.string.admob_unit_id_open_ads), request, AppOpenAd.APP_OPEN_AD_ORIENTATION_PORTRAIT, object : AppOpenAd.AppOpenAdLoadCallback() { override fun onAdLoaded(ad: AppOpenAd) { appOpenAd = ad isLoadingAd = false currentActivity?.let { ad.show(it) } } override fun onAdFailedToLoad(loadAdError: LoadAdError) { isLoadingAd = false } }) } private fun isAdAvailable() = appOpenAd != null fun showAdIfAvailable(activity: Activity) { if (!isAdAvailable()) { loadAd(activity) return } appOpenAd?.show(activity) } }
}

Trong file MainActivity

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) (application as? App)?.showAdIfAvailable(this@MainActivity) }

Đây là một mã nguồn Kotlin cho ứng dụng Android sử dụng thư viện Google AdMob để hiển thị quảng cáo mở ứng dụng (App Open Ads).

Giải thích ngắn gọn:

  1. App là một lớp kế thừa từ Application và triển khai ActivityLifecycleCallbacks để theo dõi chu kỳ hoạt động của ứng dụng.

  2. AppOpenAdManager là một lớp nội tại trong App để quản lý việc tải và hiển thị quảng cáo mở ứng dụng.

  3. Trong AppOpenAdManager, phương thức loadAd được gọi để tải quảng cáo mở ứng dụng từ AdMob. Khi quảng cáo được tải thành công, nó sẽ được hiển thị trên currentActivity.

  4. Phương thức showAdIfAvailable trong AppOpenAdManager sẽ kiểm tra xem có quảng cáo nào đã được tải hay chưa. Nếu có, nó sẽ hiển thị quảng cáo đó trên activity được truyền vào.

  5. Trong MainActivity, khi khởi tạo, nó gọi showAdIfAvailable từ App để hiển thị quảng cáo mở ứng dụng nếu có.

Đoạn mã này sử dụng ActivityLifecycleCallbacks để theo dõi chu kỳ hoạt động của ứng dụng và tải quảng cáo mở ứng dụng từ AdMob. Khi có quảng cáo mở ứng dụng được tải thành công, nó sẽ hiển thị trên currentActivity hoặc MainActivity khi khởi động ứng dụng.

Demo chạy trên app:

Kết

Để có một chiến lược quảng cáo hiệu quả trong ứng dụng, nhà phát triển cần hiểu rõ các loại quảng cáo, mô hình thanh toán, mạng quảng cáo, đề xuất quảng cáo, các yếu tố ảnh hưởng đến doanh thu, và luôn tuân thủ các chính sách của các mạng quảng cáo. Bằng cách áp dụng những kiến thức này, nhà phát triển có thể tối ưu hóa nguồn thu từ quảng cáo mà vẫn đảm bảo trải nghiệm tốt cho người dùng.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Thêm quảng cáo AdMob vào ứng dụng Flutter

1. Giới thiệu.

0 0 11

- vừa được xem lúc

Thêm quảng cáo biểu ngữ và quảng cáo gốc vào ứng dụng Flutter

1. Giới thiệu.

0 0 566

- vừa được xem lúc

Lợi ích templates .gitignore trong dự án

Mở đầu. Gitignore là một file trong các dự án Git, nó chứa danh sách các tệp và thư mục mà bạn muốn Git bỏ qua (không theo dõi) khi bạn thực hiện các thao tác như git add hoặc git commit.

0 0 11

- vừa được xem lúc

Deploy ELK Stack với Docker

Hello các bạn lại là mình đây Chúc các bạn có kì nghỉ 30/4-1/5 vui vẻ và an toàn . Tiếp tục series học Docker và CICD của mình, hôm nay ta sẽ cùng nhau làm một bài "tàu nhanh" setup ELK Stack bao gồm

0 0 7

- vừa được xem lúc

Transaction trong Rails: Đảm bảo tính toàn vẹn và nhất quán dữ liệu

1. Lời mở đầu.

0 0 9

- vừa được xem lúc

Giới thiệu về Zabbix

1. Lời mở đầu.

0 0 8