โฆษณาแบนเนอร์คือโฆษณารูปสี่เหลี่ยมผืนผ้าที่ยึดพื้นที่ส่วนใดส่วนหนึ่งของเลย์เอาต์ของแอป ในระหว่างที่ผู้ใช้กําลังโต้ตอบกับแอป โฆษณาเหล่านี้จะอยู่บนหน้าจอ ซึ่งอาจตรึงอยู่ที่ด้านบนหรือด้านล่างของหน้าจอ หรือแทรกอยู่ในเนื้อหาในขณะที่ผู้ใช้เลื่อนดู โฆษณาแบนเนอร์จะรีเฟรชโดยอัตโนมัติหลังจากเวลาผ่านไปช่วงหนึ่ง ดูข้อมูลเพิ่มเติมได้ที่ ภาพรวมของโฆษณาแบนเนอร์
คู่มือนี้แสดงวิธีเริ่มต้นใช้งาน โฆษณาแบนเนอร์แบบปรับขนาดได้ของโฆษณา Anchorซึ่งจะเพิ่มประสิทธิภาพสูงสุดด้วยการเพิ่มประสิทธิภาพขนาดโฆษณาสำหรับอุปกรณ์แต่ละเครื่องตามความกว้างของโฆษณาที่คุณระบุ
โฆษณาแบนเนอร์แบบปรับขนาดได้แบบปรับขนาดได้เป็นโฆษณาที่มีอัตราส่วนคงที่ ไม่ใช่โฆษณาขนาดคงที่แบบปกติ สัดส่วนภาพใกล้เคียงกับมาตรฐานอุตสาหกรรม 320x50 เมื่อคุณระบุความกว้างเต็มที่ใช้ได้แล้ว ระบบจะแสดงโฆษณาที่มีความสูงที่เหมาะสมสำหรับความกว้างนั้น ความสูงที่เหมาะสมไม่ได้เปลี่ยนไปตามคำขอต่างๆ จากอุปกรณ์เดียวกัน และวิวรอบๆ ไม่จำเป็นต้องย้ายเมื่อรีเฟรชโฆษณา
ข้อกำหนดเบื้องต้น
- ทำตามคู่มือเริ่มต้นใช้งาน
ทดสอบด้วยโฆษณาทดสอบเสมอ
เมื่อสร้างและทดสอบแอป ให้ตรวจสอบว่าคุณใช้โฆษณาทดสอบแทนที่จะใช้โฆษณาเวอร์ชันที่ใช้งานจริง มิเช่นนั้นจะถูกระงับบัญชี
วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบสำหรับแบนเนอร์ Android โดยเฉพาะ
ca-app-pub-3940256099942544/9214589741
โดยได้รับการกำหนดค่ามาเป็นพิเศษให้แสดงผลโฆษณาทดสอบสำหรับทุกคำขอ และคุณจะนำไปใช้ในแอปของตนเองได้ขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง เพียงตรวจสอบว่าคุณแทนที่หน่วยโฆษณาด้วยรหัสหน่วยโฆษณาของคุณเองก่อนเผยแพร่แอป
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของโฆษณาทดสอบของ SDK โฆษณาในอุปกรณ์เคลื่อนที่ได้ที่ทดสอบโฆษณา
เพิ่ม AdView ลงในเลย์เอาต์
ขั้นตอนแรกในการแสดงแบนเนอร์คือการวาง AdView
ในเลย์เอาต์สำหรับ Activity
หรือ Fragment
ที่ต้องการแสดง
Java
private AdSize getAdSize() {
// Determine the screen width (less decorations) to use for the ad width.
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
float density = outMetrics.density;
float adWidthPixels = adContainerView.getWidth();
// If the ad hasn't been laid out, default to the full screen width.
if (adWidthPixels == 0) {
adWidthPixels = outMetrics.widthPixels;
}
int adWidth = (int) (adWidthPixels / density);
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}
private void loadBanner() {
// Create a new ad view.
AdView adView = new AdView(this);
adView.setAdSizes(getAdSize());
adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
get() {
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)
val density = outMetrics.density
var adWidthPixels = binding.adViewContainer.width.toFloat()
if (adWidthPixels == 0f) {
adWidthPixels = outMetrics.widthPixels.toFloat()
}
val adWidth = (adWidthPixels / density).toInt()
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
}
private fun loadBanner() {
// Create a new ad view.
val adView = AdView(this)
adView.adSizes = adSize
adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
โหลดโฆษณา
เมื่อ AdView พร้อมแล้ว ขั้นตอนต่อไปคือการโหลดโฆษณา โดยใช้เมธอด loadAd()
ในคลาส AdView
โดยใช้พารามิเตอร์ AdRequest
ที่เก็บข้อมูลรันไทม์ เช่น ข้อมูลการกำหนดเป้าหมาย เกี่ยวกับคำขอโฆษณาเดียว
ตัวอย่างแสดงวิธีโหลดโฆษณาในเมธอด onCreate()
ของ Activity
Java
private void loadBanner() {
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
private fun loadBanner() {
// This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
adView.adUnitId = "/6499/example/banner"
adView.setAdSize(adSize)
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
หากโฆษณาโหลดไม่สำเร็จ คุณไม่จำเป็นต้องขอหน่วยโฆษณาใหม่อย่างชัดแจ้ง ตราบใดที่ได้กำหนดค่าหน่วยโฆษณาให้รีเฟรชแล้ว SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google จะใช้อัตราการรีเฟรชที่คุณระบุใน AdMobอินเทอร์เฟซเว็บ หากคุณยังไม่ได้เปิดใช้การรีเฟรช คุณจะต้องส่งคำขอใหม่
เท่านี้ก็เรียบร้อย แอปของคุณพร้อมแสดงโฆษณาแบนเนอร์แล้ว
เหตุการณ์โฆษณา
คุณสามารถติดตามเหตุการณ์ต่างๆ ได้ในวงจรของโฆษณา ไม่ว่าจะเป็นการโหลด การแสดงโฆษณา และการคลิก ตลอดจนเหตุการณ์การเปิดและการปิดโฆษณา เราขอแนะนำให้ตั้งค่าโค้ดเรียกกลับก่อนที่จะโหลดแบนเนอร์Java
AdView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
AdView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
เมธอดที่ลบล้างได้แต่ละวิธีใน AdListener
นั้นสอดคล้องกับเหตุการณ์ในวงจรของโฆษณา
วิธีที่ลบล้างได้ | |
---|---|
onAdClicked() |
ระบบจะเรียกใช้เมธอด onAdClicked() เมื่อมีการบันทึกการคลิกสำหรับโฆษณา
|
onAdClosed() |
ระบบจะเรียกใช้เมธอด onAdClosed() เมื่อผู้ใช้กลับไปที่แอปหลังจากดู URL ปลายทางของโฆษณา แอปของคุณสามารถใช้แอปดังกล่าวเพื่อกลับมาทำกิจกรรมที่ถูกระงับขึ้นต่อหรือดำเนินการอื่นๆ ที่จำเป็นเพื่อให้แอปพร้อมสำหรับการโต้ตอบ
ดูตัวอย่าง AdListener ของ AdMob สำหรับการติดตั้งใช้งานเมธอด Listener โฆษณาในแอปเดโม Android API
|
onAdFailedToLoad() |
เมธอด onAdFailedToLoad() เป็นวิธีเดียวที่มีพารามิเตอร์ พารามิเตอร์ข้อผิดพลาดประเภท LoadAdError อธิบายข้อผิดพลาดที่เกิดขึ้น ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบการแก้ไขข้อบกพร่องของข้อผิดพลาดในการโหลดโฆษณา
|
onAdImpression() |
ระบบจะเรียกใช้เมธอด onAdImpression() เมื่อมีการบันทึกการแสดงผลสำหรับโฆษณา
|
onAdLoaded() |
ระบบจะเรียกใช้เมธอด onAdLoaded() เมื่อโฆษณาโหลดเสร็จแล้ว หากต้องการเลื่อนเวลาเพิ่ม AdView ลงในกิจกรรมหรือส่วนย่อยจนกว่าจะแน่ใจว่าโฆษณาจะโหลด ก็ทำได้ที่นี่
|
onAdOpened() |
ระบบจะเรียกใช้เมธอด onAdOpened() เมื่อโฆษณาเปิดโฆษณาซ้อนทับที่บดบังหน้าจอ
|
การเร่งฮาร์ดแวร์สำหรับโฆษณาวิดีโอ
หากต้องการให้โฆษณาวิดีโอแสดงในมุมมองโฆษณาแบนเนอร์ได้สำเร็จ คุณต้องเปิดใช้การเร่งความเร็วด้วยฮาร์ดแวร์
การเร่งฮาร์ดแวร์จะเปิดใช้งานโดยค่าเริ่มต้น แต่แอปบางแอปอาจเลือกที่จะปิดใช้งาน ในกรณีนี้ เราขอแนะนำให้เปิดใช้การเร่งฮาร์ดแวร์สำหรับ
คลาส Activity
ที่ใช้โฆษณา
การเปิดใช้การเร่งฮาร์ดแวร์
หากแอปทำงานผิดปกติเมื่อเปิดการเร่งฮาร์ดแวร์ไว้ทั่วโลก คุณจะควบคุมแอปสำหรับแต่ละกิจกรรมได้เช่นกัน หากต้องการเปิดหรือปิดใช้การเร่งฮาร์ดแวร์ คุณสามารถใช้แอตทริบิวต์ android:hardwareAccelerated
สำหรับองค์ประกอบ <application>
และ <activity>
ใน AndroidManifest.xml
ตัวอย่างต่อไปนี้เปิดใช้การเร่งฮาร์ดแวร์
สำหรับทั้งแอป แต่ปิดใช้ 1 กิจกรรม
<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>
ดูคู่มือการเร่งฮาร์ดแวร์สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกในการควบคุมการเร่งฮาร์ดแวร์ โปรดทราบว่าการดูโฆษณาแต่ละครั้งสำหรับการเร่งฮาร์ดแวร์ไม่ได้ หากปิดใช้กิจกรรมอยู่ ดังนั้นกิจกรรมจะต้องเปิดใช้การเร่งฮาร์ดแวร์ด้วย
แหล่งข้อมูลเพิ่มเติม
ตัวอย่างใน GitHub
ขั้นตอนถัดไป
แบนเนอร์แบบย่อได้
โฆษณาแบนเนอร์แบบยุบได้คือโฆษณาแบนเนอร์ที่ในตอนแรกจะแสดงแบบวางซ้อนที่ใหญ่ขึ้น มีปุ่มให้ยุบโฆษณาให้มีขนาดเล็กลง ลองนำไปใช้เพื่อเพิ่มประสิทธิภาพ ให้มากขึ้นไปอีก ดูรายละเอียดเพิ่มเติมในโฆษณาแบนเนอร์แบบยุบได้
แบนเนอร์แบบปรับขนาดได้แบบแทรกในบรรทัด
แบนเนอร์แทรกในบรรทัดที่ปรับเปลี่ยนได้จะมีขนาดใหญ่กว่าและสูงกว่าแบนเนอร์แบบปรับขนาดได้ที่อยู่ด้านล่างสุด โฆษณาประเภทนี้มีความสูงไม่เท่ากันและอาจสูงเท่ากับหน้าจออุปกรณ์ ขอแนะนำให้ใช้แบนเนอร์แทรกในบรรทัดที่ปรับเปลี่ยนได้เหนือโฆษณาแบนเนอร์แบบปรับขนาดได้ที่อยู่ด้านล่างสุดสำหรับแอปที่วางโฆษณาแบนเนอร์ไว้ในเนื้อหาที่เลื่อนได้ ดูรายละเอียดเพิ่มเติมได้ที่แบนเนอร์ที่ปรับเปลี่ยนได้แบบแทรกในบรรทัด