โฆษณาแบนเนอร์คือโฆษณารูปสี่เหลี่ยมผืนผ้าที่ยึดพื้นที่ส่วนใดส่วนหนึ่งของเลย์เอาต์ของแอป โฆษณาเหล่านี้จะอยู่บนหน้าจอขณะที่ผู้ใช้โต้ตอบกับแอป ซึ่งอาจตรึงอยู่ที่ด้านบนหรือด้านล่างของหน้าจอ หรือแทรกอยู่ในเนื้อหาในขณะที่ผู้ใช้เลื่อนดู โฆษณาแบนเนอร์สามารถรีเฟรชโดยอัตโนมัติหลังจากเวลาผ่านไปช่วงหนึ่ง ดูข้อมูลเพิ่มเติมได้ที่ ภาพรวมของโฆษณาแบนเนอร์
คู่มือนี้จะแสดงวิธีเริ่มต้นใช้งาน โฆษณาแบนเนอร์แบบปรับขนาดได้แบบยึดตำแหน่งซึ่งจะเพิ่มประสิทธิภาพสูงสุดโดยปรับขนาดโฆษณาให้เหมาะสมกับอุปกรณ์แต่ละประเภทตามความกว้างของโฆษณาที่คุณระบุ
โฆษณาแบนเนอร์แบบปรับขนาดได้แบบโฆษณา 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หากไม่ได้เปิดใช้การรีเฟรช คุณจะต้องส่งคำขอใหม่
เท่านี้ก็เรียบร้อย ตอนนี้แอปของคุณพร้อมแสดงโฆษณาแบนเนอร์แล้ว
เหตุการณ์โฆษณา
คุณสามารถจับเหตุการณ์ต่างๆ ในวงจรของโฆษณา ซึ่งได้แก่ การโหลด การแสดงโฆษณา และการคลิกโฆษณา รวมถึงเหตุการณ์เปิดและปิดโฆษณา ขอแนะนำให้ตั้งค่า Callback ก่อนที่จะโหลดแบนเนอร์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
ตัวอย่างต่อไปนี้เปิดใช้การเร่งฮาร์ดแวร์สำหรับทั้งแอป แต่ปิดใช้การเร่งฮาร์ดแวร์ในกิจกรรมเดียว
<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
ขั้นตอนถัดไป
แบนเนอร์แบบย่อได้
โฆษณาแบนเนอร์แบบย่อได้คือโฆษณาแบนเนอร์ที่แสดงก่อนเป็นภาพวางซ้อนขนาดใหญ่ พร้อมปุ่มเพื่อยุบโฆษณาให้มีขนาดเล็กลง ลองใช้รายงานนี้เพื่อเพิ่มประสิทธิภาพ ให้ดียิ่งขึ้นไปอีก ดูรายละเอียดเพิ่มเติมได้ที่โฆษณาแบนเนอร์แบบย่อได้
แบนเนอร์แทรกในบรรทัดที่ปรับเปลี่ยนได้
แบนเนอร์แทรกในบรรทัดที่ปรับเปลี่ยนได้คือแบนเนอร์ที่มีขนาดใหญ่และสูงกว่าเมื่อเทียบกับแบนเนอร์แบบปรับขนาดได้แบบยึดตำแหน่ง มีความสูงที่ไม่คงที่และสูงเท่ากับหน้าจอของอุปกรณ์ได้ ขอแนะนำให้ใช้แบนเนอร์แทรกในบรรทัดที่ปรับเปลี่ยนได้แทนโฆษณาแบนเนอร์แบบปรับขนาดได้แบบโฆษณา Anchor สำหรับแอปที่วางโฆษณาแบนเนอร์ไว้ในเนื้อหาที่เลื่อนได้ ดูรายละเอียดเพิ่มเติมได้ที่แบนเนอร์แบบปรับขนาดได้แบบแทรกในบรรทัด