Quảng cáo gốc là nội dung 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 là nguồn gốc của nền tảng. Chúng hiển thị bằng cách sử dụng cùng loại lượt xem với mà bạn đã xây dựng bố cục và có thể được định dạng cho phù hợp với thiết kế trực quan của ứng dụng.
Khi một quảng cáo gốc tải, ứng dụng của bạn sẽ nhận được một đối tượng quảng cáo có chứa các thành phần của quảng cáo đó. và ứng dụng—thay vì SDK quảng cáo trên thiết bị di động của Google—khi đó chịu trách nhiệm hiển thị các quảng cáo đó.
Nói chung, có hai phần để triển khai thành công quảng cáo gốc: Tải quảng cáo bằng SDK, sau đó hiển thị nội dung quảng cáo trong ứng dụng của bạn.
Trang này cho biết cách sử dụng SDK để tải quảng cáo gốc. Mẹo: Tìm hiểu thêm về quảng cáo gốc trong Quảng cáo gốc của chúng tôi Cẩm nang.
Bạn cũng có thể xem một số câu chuyện thành công của khách hàng: nghiên cứu điển hình 1, nghiên cứu điển hình 2.
Điều kiện tiên quyết
- Xem hết Hướng dẫn bắt đầu sử dụng.
Luôn thử nghiệm bằng quảng cáo thử nghiệm
Khi tạo và thử nghiệm ứng dụng, hãy nhớ sử dụng quảng cáo thử nghiệm thay vì quảng cáo thực tế.
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 riêng đối với quảng cáo gốc 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 nó trong ứng dụng của riêng bạn khi lập trình, thử nghiệm và gỡ lỗi. Hãy đảm bảo rằng bạn hãy thay thế mã này bằng mã đơn vị quảng cáo của riêng bạn 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 của Google trên thiết bị di động, hãy xem Quảng cáo thử nghiệm.
Tải quảng cáo
Quảng cáo gốc được tải bằng
Lớp AdLoader
,
có URL riêng
Builder
để tuỳ chỉnh trong quá trình tạo. Bằng cách thêm trình nghe vào AdLoader
khi tạo quảng cáo, ứng dụng sẽ chỉ định loại quảng cáo gốc mà ứng dụng có thể sử dụng
nhận. Sau đó, AdLoader
sẽ chỉ yêu cầu các loại đó.
Tạo một Trình xử lý quảng cáo
Mã sau đây minh hoạ cách tạo một AdLoader
có thể tải mã gốc
quảng cáo:
Java
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Show the ad.
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// 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}")
.forNativeAd { ad : NativeAd ->
// Show the ad.
}
.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(adError: LoadAdError) {
// Handle the failure.
}
})
.withNativeAdOptions(NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build()
Chiến lược phát hành đĩa đơn
forNativeAd()
chịu trách nhiệm chuẩn bị AdLoader
cho định dạng NativeAd
.
Khi một quảng cáo tải thành công, onNativeAdLoaded()
của đối tượng trình nghe
được gọi.
Thiết lập một trình xử lý quảng cáo bằng Trình xử lý quảng cáo (không bắt buộc)
Khi tạo AdLoader
,
withAdListener
hàm này sẽ đặt một
AdListener
cho
trình tải. Phương thức này sẽ lấy một AdListener
làm tham số duy nhất. Tham số này sẽ nhận
lệnh gọi lại từ AdLoader
khi các sự kiện trong vòng đời quảng cáo diễn ra:
Java
.withAdListener(new AdListener() {
// AdListener callbacks can be overridden here.
})
Kotlin
.withAdListener(object : AdListener() {
// AdListener callbacks can be overridden here.
})
Yêu cầu quảng cáo
Sau khi tạo xong AdLoader
, bạn có thể sử dụng thành phần này để yêu cầu quảng cáo.
Bạn có thể sử dụng hai phương thức để thực hiện việc này: loadAd()
và loadAds()
.
loadAd()
Phương thức này sẽ gửi yêu cầu về một quảng cáo.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
Phương thức này sẽ gửi yêu cầu về nhiều quảng cáo (tối đa 5 quảng cáo):
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
Cả hai phương pháp đều lấy
AdRequest
làm tham số đầu tiên. Điều này cũng giống nhau
AdRequest
được quảng cáo biểu ngữ và quảng cáo xen kẽ sử dụng,
và bạn có thể 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ư
bạn sẽ làm với các định dạng quảng cáo khác.
Tải nhiều quảng cáo (không bắt buộc)
Phương thức loadAds()
sẽ lấy thêm một thông số: số lượng quảng cáo mà SDK
sẽ cố gắng tải cho yêu cầu. Con số này có giới hạn là 5 và
không đảm bảo rằng SDK sẽ trả về số lượng quảng cáo chính xác được yêu cầu.
Tất cả các quảng cáo Google được trả về sẽ khác nhau, mặc dù các quảng cáo từ khoảng không quảng cáo đặt trước hoặc người mua bên thứ ba không được đảm bảo là duy nhất.
Không sử dụng phương thức loadAds()
nếu bạn đang sử dụng tính năng dàn xếp làm yêu cầu cho
Hiện tại, bạn không thể sử dụng nhiều quảng cáo gốc đối với các mã đơn vị quảng cáo
đã định cấu hình cho dàn xếp.
Lệnh gọi lại
Sau khi gọi loadAd()
, một lệnh gọi lại được thực hiện đến lệnh gọi lại đã xác định trước đó
phương thức trình nghe để phân phối đối tượng quảng cáo gốc hoặc báo cáo lỗi.
Sau khi gọi loadAds()
, nhiều lệnh gọi lại sẽ được thực hiện (ít nhất một,
và không nhiều hơn số lượng quảng cáo được yêu cầu). Ứng dụng yêu cầu nhiều quảng cáo
nên 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 hoạ cách kiểm tra isLoading()
trong
Lệnh gọi lại onNativeAdLoaded()
:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
...
// 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")
.forNativeAd {
...
// 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)
Tài nguyên về bản phát hành
Hãy đảm bảo sử dụng phương thức destroy()
trên quảng cáo gốc đã tải. Bản phát hành này
tận dụng tài nguyên và ngăn chặn rò rỉ bộ nhớ.
Đảm bảo rằng tất cả tham chiếu NativeAd
đều bị huỷ trong hoạt động của bạn
onDestroy()
.
Trong lệnh gọi lại onNativeAdLoaded
, hãy nhớ huỷ mọi mã hiện có
quảng cáo gốc sẽ được tham chiếu.
Một bước kiểm tra khoá khác là liệu hoạt động có bị huỷ bỏ hay không và nếu có, hãy gọi destroy()
trên
quảng cáo được trả về và trả lại ngay lập tức:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed()` is a method on Activity.
if (isDestroyed()) {
nativeAd.destroy();
return;
}
...
}
}).build();
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed` is a method on Activity.
if (isDestroyed) {
nativeAd.destroy()
return@forNativeAd
}
...
}.build()
Các phương pháp hay nhất
Hãy tuân thủ các quy tắc này khi tải quảng cáo.
Các ứng dụng sử dụng quảng cáo gốc trong một danh sách nên lưu trước danh sách quảng cáo đó vào bộ nhớ đệm.
Khi lưu quảng cáo vào bộ nhớ đệm, hãy xoá bộ nhớ đệm rồi tải lại sau một giờ.
Đừng gọi
loadAd()
hoặcloadAds()
trênAdLoader
cho đến ngày đầu tiên yêu cầu tải xong.
Tăng tốc phần cứng cho quảng cáo dạng video
Để quảng cáo video hiển thị thành công ở chế độ xem quảng cáo gốc, phần cứng tăng tốc độ phải được bật.
Tính năng tăng tốc phần cứng được bật theo mặc định, nhưng một số ứng dụng có thể chọn hãy tắt tính năng đó. Nếu trường hợp này áp dụng cho ứng dụng của bạn, bạn nên bật phần cứng cho các lớp Hoạt động sử dụng quảng cáo.
Bật chế độ tăng tốc phần cứng
Nếu ứng dụng của bạn hoạt động không đúng cách khi bật tính năng tăng tốc phần cứng
trên toàn cầu, bạn cũng có thể kiểm soát dữ liệu đó cho từng hoạt động riêng lẻ. Để bật hoặc
tắt tính năng tăng tốc phần cứng, hãy dùng thuộc tính android:hardwareAccelerated
cho
<application>
và
<activity>
trong AndroidManifest.xml
của bạn. Ví dụ sau đây bật tính năng phần cứng
cho toàn bộ ứng dụng nhưng tắt tính năng này đối với một hoạt động:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Xem phần tăng tốc phần cứng hướng dẫn dành cho thông tin thêm về các tuỳ chọn kiểm soát tăng tốc phần cứng. Ghi chú Bạn không thể bật chế độ xem quảng cáo riêng lẻ để tăng tốc phần cứng nếu Hoạt động bị tắt nên bản thân Hoạt động phải có chế độ tăng tốc phần cứng bật.
Hiển thị quảng cáo của bạn
Sau khi bạn tải quảng cáo, việc còn lại là hiển thị quảng cáo đó cho người dùng. Chuyển đến Quảng cáo gốc nâng cao hướng dẫn để xem cách thực hiện.