แบนเนอร์โฆษณา

โฆษณาแบนเนอร์คือโฆษณารูปสี่เหลี่ยมผืนผ้าที่ยึดพื้นที่ส่วนใดส่วนหนึ่งของเลย์เอาต์ของแอป โฆษณาเหล่านี้ ปรากฏบนหน้าจอในขณะที่ผู้ใช้โต้ตอบกับแอป ซึ่งอาจตรึงอยู่ที่ ด้านบนหรือด้านล่างของหน้าจอ หรือแทรกอยู่ในเนื้อหาขณะที่ผู้ใช้เลื่อนดู แบนเนอร์ โฆษณาจะรีเฟรชโดยอัตโนมัติหลังจากเวลาผ่านไปช่วงหนึ่ง ดูภาพรวมของโฆษณาแบนเนอร์ เพื่อดูข้อมูลเพิ่มเติม

คู่มือนี้จะแสดงวิธีเริ่มต้นใช้งานแบนเนอร์ยึดตำแหน่งที่ปรับเปลี่ยนได้ โฆษณา ซึ่งเพิ่มประสิทธิภาพสูงสุด โดยขนาดโฆษณาสำหรับอุปกรณ์แต่ละประเภท ความกว้างของโฆษณาที่คุณระบุ

โฆษณาแบนเนอร์แบบปรับขนาดได้แบบโฆษณา 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 ปลายทาง แอปของคุณสามารถใช้แอปดังกล่าวเพื่อดำเนินกิจกรรมที่ถูกระงับต่อ หรือ ทำงานอื่นๆ ที่จำเป็นเพื่อเตรียมความพร้อมสำหรับการโต้ตอบ โปรดดูที่ AdMob ตัวอย่าง AdListener สำหรับการใช้วิธีการ 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 Java | Kotlin
  • การสาธิตฟีเจอร์ขั้นสูง: Java | Kotlin

ขั้นตอนถัดไป

แบนเนอร์แบบย่อได้

โฆษณาแบนเนอร์แบบย่อได้ คือโฆษณาแบนเนอร์ที่มีการนำเสนอเป็นแบนเนอร์ขนาดใหญ่ ซ้อนทับ โดยมีปุ่มเพื่อยุบโฆษณาให้เล็กลง ลองใช้ เพื่อเพิ่มประสิทธิภาพให้ดียิ่งขึ้นไปอีก ดูรายละเอียดเพิ่มเติมได้ที่โฆษณาแบนเนอร์แบบย่อได้

แบนเนอร์แทรกในบรรทัดที่ปรับเปลี่ยนได้

แบนเนอร์แทรกในบรรทัดที่ปรับเปลี่ยนได้คือแบนเนอร์ที่มีขนาดใหญ่และสูงกว่าเมื่อเทียบกับแบนเนอร์ยึดตำแหน่งที่ปรับเปลี่ยนได้ แบนเนอร์ มีความสูงที่ไม่คงที่และสูงเท่ากับหน้าจอของอุปกรณ์ได้ ขอแนะนำให้ใช้แบนเนอร์แทรกในบรรทัดที่ปรับเปลี่ยนได้แทนโฆษณาแบนเนอร์แบบปรับขนาดได้ที่อยู่ด้านล่างสุดสำหรับ แอปที่วางโฆษณาแบนเนอร์ในเนื้อหาที่เลื่อนได้ ดูการปรับเปลี่ยนในบรรทัด แบนเนอร์เพิ่มเติม รายละเอียด

สำรวจหัวข้ออื่นๆ