Quảng cáo gốc

Quảng cáo gốc là tài sản quảng cáo hiển thị cho người dùng thông qua các thành phần giao diện người dùng vốn có của nền tảng. Bạn có thể hiển thị những quảng cáo này bằng cách sử dụng các loại chế độ xem tương tự mà bạn đã tạo bố cục. Đồng thời, bạn có thể định dạng các quảng cáo này cho phù hợp với thiết kế trực quan của trải nghiệm người dùng mà quảng cáo đang hiển thị. Trong thuật ngữ mã hóa, điều này có nghĩa là khi một quảng cáo gốc tải, ứng dụng của bạn sẽ nhận được đối tượng NativeAd có chứa tài sản của quảng cáo đó. Sau đó, ứng dụng (thay vì SDK quảng cáo trên thiết bị di động của Google) sẽ chịu trách nhiệm hiển thị các quảng cáo đó.

Nói chung, để triển khai thành công Quảng cáo gốc, bạn cần thực hiện 2 bước: tải quảng cáo thông qua SDK và hiển thị nội dung quảng cáo trong ứng dụng của bạn. Trang này cho bạn biết cách sử dụng SDK để tải quảng cáo gốc.

Điều kiện tiên quyết

Tải quảng cáo

Bạn có thể tải quảng cáo gốc thông qua lớp AdLoader. Lớp này có lớp Builder riêng để tùy chỉnh quảng cáo trong quá trình tạo. Bằng cách thêm trình nghe vào AdLoader trong khi tạo quảng cáo, ứng dụng sẽ chỉ định các loại quảng cáo gốc có thể nhận. Sau đó, AdLoader sẽ chỉ yêu cầu các loại quảng cáo đó.

Tạo một AdLoader

Mã sau đây minh họa cách tạo AdLoader có thể tải quảng cáo gốc hợp nhất:

Java

    AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
        .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
            @Override
            public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
                // Show the ad.
            }
        })
        .withAdListener(new AdListener() {
            @Override
            public void onAdFailedToLoad(int errorCode) {
                // Handle the failure by logging, altering the UI, and so on.
            }
        })
        .withNativeAdOptions(new NativeAdOptions.Builder()
                // Methods in the NativeAdOptions.Builder class can be
                // used here to specify individual options settings.
                .build())
        .build();
    

Kotlin

    val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forUnifiedNativeAd { ad : UnifiedNativeAd ->
            // Show the ad.
        }
        .withAdListener(object : AdListener() {
            override fun onAdFailedToLoad(errorCode: Int) {
                // Handle the failure by logging, altering the UI, and so on.
            }
        })
        .withNativeAdOptions(NativeAdOptions.Builder()
                // Methods in the NativeAdOptions.Builder class can be
                // used here to specify individual options settings.
                .build())
        .build()
    

Chuẩn bị cho định dạng UnifiedNativeAd

Phương thức đầu tiên ở trên chịu trách nhiệm chuẩn bị AdLoader cho định dạng UnifiedNativeAd:

forUnifiedNativeAd()
Khi gọi phương thức này, AdLoader sẽ được định cấu hình để yêu cầu quảng cáo gốc hợp nhất. Khi một quảng cáo đã tải thành công, hệ thống sẽ gọi phương thức onUnifiedNativeAdLoaded() của đối tượng trình nghe.

Khi AdLoader đưa ra một yêu cầu quảng cáo, Google sẽ chọn và trả về quảng cáo giúp nhà xuất bản kiếm được nhiều lợi nhuận nhất có thể.

Sử dụng AdListener với AdLoader

Trong quá trình tạo AdLoader ở trên, hàm withAdListener sẽ đặt AdListener.

Bạn không nhất thiết phải thực hiện bước này. Phương thức này sẽ lấy một AdListener làm thông số duy nhất. Thông số này sẽ nhận lệnh gọi lại từ AdLoader khi các sự kiện trong thời gian hoạt động của quảng cáo diễn ra:

Java

    .withAdListener(new AdListener() {
        // AdListener callbacks like OnAdFailedToLoad, OnAdOpened, OnAdClicked and
        // so on, can be overridden here.
    })
    

Kotlin

    .withAdListener(object : AdListener() {
        // AdListener callbacks like OnAdFailedToLoad, OnAdOpened, OnAdClicked and
        // so on, can be overridden here.
    })
    

Có một sự khác biệt đáng kể khi các đối tượng AdListener kết hợp với quảng cáo gốc và cách các đối tượng này kết hợp với quảng cáo biểu ngữ cũng như quảng cáo xen kẽ. Bởi vì AdLoader sử dụng trình nghe theo từng định dạng cụ thể (ví dụ: UnifiedNativeAd.OnUnifiedNativeAdLoadedListener) để sử dụng khi quảng cáo tải, phương thức onAdLoaded() từ AdListener sẽ không được gọi khi quảng cáo gốc tải thành công.

Tải quảng cáo

Sau khi tạo xong AdLoader, bạn có thể sử dụng trình xử lý này để tải quảng cáo. Bạn có thể sử dụng hai phương thức sau để thực hiện việc này: loadAd()loadAds().

Phương thức loadAd() sẽ gửi yêu cầu hiển thị một quảng cáo:

loadAd()
Phương thức này sẽ gửi yêu cầu hiển thị một quảng cáo.

Java

    adLoader.loadAd(new AdRequest.Builder().build());
    

Kotlin

    adLoader.loadAd(AdRequest.Builder().build())
    

Phương thức loadAds() sẽ gửi yêu cầu về nhiều quảng cáo (tối đa là 5 quảng cáo):

Java

    adLoader.loadAds(new AdRequest.Builder().build(), 3);
    

Kotlin

    adLoader.loadAds(AdRequest.Builder().build(), 3)
    

Cả hai phương thức này đều lấy đối tượng AdRequest làm thông số đầu tiên. Lớp AdRequest này giống với lớp mà quảng cáo biểu ngữ và quảng cáo xen kẽ sử dụng. Bạn có thể sử dụng các phương thức của lớp AdRequest để thêm thông tin nhắm mục tiêu, giống như cách bạn thực hiện với các định dạng quảng cáo khác.

loadAds() sẽ lấy thêm một thông số: số lượng quảng cáo mà SDK sẽ tìm cách tải cho yêu cầu đó. SDK chỉ có thể tải tối đa 5 quảng cáo và hệ thống không đảm bảo rằng SDK sẽ trả về đúng số lượng quảng cáo mà bạn đã yêu cầu. Nếu lệnh gọi đến loadAds() trả về nhiều quảng cáo, các quảng cáo đó sẽ khác nhau.

Sau khi thực hiện lệnh gọi đến loadAd(), hệ thống sẽ thực hiện một lệnh gọi lại đến phương thức của trình nghe đã xác định ở trên để phân phát đối tượng quảng cáo gốc hoặc báo cáo lỗi.

Sau khi thực hiện lệnh gọi đến loadAds(), hệ thống sẽ thực hiện nhiều lệnh gọi lại như vậy (số lệnh tối thiểu là 1 và số lệnh tối đa không vượt quá số lượng quảng cáo mà bạn đã yêu cầu). Các ứng dụng yêu cầu nhiều quảng cáo sẽ gọi AdLoader.isLoading() trong quá trình triển khai lệnh gọi lại để xác định xem liệu quá trình tải đã hoàn tất hay chưa.

Dưới đây là ví dụ minh họa cách kiểm tra isLoading() trong lệnh gọi lại onUnifiedNativeAdLoaded():

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
            .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
        @Override
        public void onUnifiedNativeAdLoaded(UnifiedNativeAd ad) {
            ...
            // some code that displays the ad.
            ...
            if (adLoader.isLoading()) {
                // The AdLoader is still loading ads.
                // Expect more adLoaded or onAdFailedToLoad callbacks.
            } else {
                // The AdLoader has finished loading ads.
            }
        }
    }).build();
    adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

    lateinit var adLoader: AdLoader
    ...
    adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forUnifiedNativeAd {
            ...
            // some code that displays the ad.
            ...
            if (adLoader.isLoading) {
                // The AdLoader is still loading ads.
                // Expect more adLoaded or onAdFailedToLoad callbacks.
            } else {
                // The AdLoader has finished loading ads.
            }
        }.build()
    adLoader.loadAds(AdRequest.Builder().build(), 3)

Luôn kiểm tra bằng quảng cáo thử nghiệm

Khi tạo và thử nghiệm ứng dụng, hãy đảm bảo rằng bạn sử dụng quảng cáo thử nghiệm thay vì quảng cáo đang chạy thực tế. Chúng tôi sẽ tạm ngưng tài khoản của bạn nếu bạn không thực hiện việc này.

Cách dễ nhất để tải quảng cáo thử nghiệm là sử dụng mã đơn vị quảng cáo thử nghiệm dành cho Quảng cáo gốc nâng cao trên Android:

ca-app-pub-3940256099942544/2247696110

Mã này được định cấu hình đặc biệt để trả về quảng cáo thử nghiệm cho mọi yêu cầu và bạn có thể sử dụng mã này trong ứng dụng của mình khi viết mã, chạy thử nghiệm và gỡ lỗi. Bạn chỉ cần thay thế mã này bằng mã đơn vị quảng cáo của mình trước khi xuất bản ứng dụng.

Để biết thêm thông tin về cách hoạt động của quảng cáo thử nghiệm của SDK quảng cáo trên thiết bị di động, hãy tham khảo bài viết Quảng cáo thử nghiệm.

Thời điểm yêu cầu quảng cáo

Các ứng dụng hiển thị quảng cáo gốc có thể yêu cầu quảng cáo trước khi quảng cáo thực sự hiển thị. Trong nhiều trường hợp, đây là phương pháp mà bạn nên dùng. Ví dụ: một ứng dụng hiển thị danh sách các mục kết hợp với quảng cáo gốc có thể tải quảng cáo gốc cho toàn bộ danh sách, trong đó một số quảng cáo chỉ hiển thị sau khi người dùng cuộn qua màn hình hiển thị và một số quảng cáo hoàn toàn không hiển thị.

Hiển thị UnifiedNativeAd

Sau khi bạn tải quảng cáo, công việc còn lại chỉ là hiển thị quảng cáo cho người dùng. Hãy xem Hướng dẫn về Quảng cáo gốc nâng cao để biết cách thực hiện.