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

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

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

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

ข้อกำหนดเบื้องต้น

ทดสอบด้วยโฆษณาทดสอบเสมอ

เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทน โฆษณาที่ใช้งานจริง หากไม่ดำเนินการ บัญชีจะถูกระงับ

วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบโดยเฉพาะของเรา แบนเนอร์ Android:

/21775744923/example/adaptive-banner

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของโฆษณาทดสอบ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ โปรดดูการทดสอบ โฆษณา

เพิ่ม AdManagerAdView ในเลย์เอาต์

ขั้นตอนแรกในการแสดงแบนเนอร์คือการวาง AdManagerAdView ในเลย์เอาต์ของแอป

Java

// Create a new ad view.
adView = new AdManagerAdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());

// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);

Kotlin

// Create a new ad view.
val adView = AdManagerAdView(this)
adView.adUnitId = AD_UNIT_ID
adView.setAdSize(adSize)
this.adView = adView

// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)

โหลดโฆษณา

เมื่อ AdManagerAdView อยู่ในตําแหน่งแล้ว ขั้นตอนถัดไปคือการโหลดโฆษณา ซึ่งทำได้ด้วย loadAd() ในคลาส AdManagerAdView โดยจะใช้พารามิเตอร์ AdManagerAdRequest ซึ่งเก็บข้อมูลรันไทม์ เช่น ข้อมูลการกําหนดเป้าหมาย เกี่ยวกับคําขอโฆษณารายการเดียว

ต่อไปนี้คือตัวอย่างที่แสดงวิธีโหลดโฆษณา

Java

// Start loading the ad in the background.
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
adView.loadAd(adRequest);

Kotlin

// Start loading the ad in the background.
val adRequest = AdManagerAdRequest.Builder().build()
adView.loadAd(adRequest)

หากโฆษณาโหลดไม่สำเร็จ คุณไม่จำเป็นต้องส่งคำขอโฆษณาอื่นอย่างชัดแจ้ง ตราบใดที่คุณกำหนดค่าให้หน่วยโฆษณารีเฟรช SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ดำเนินการตามอัตราการรีเฟรชที่คุณระบุไว้ใน Ad Manager อินเทอร์เฟซเว็บ หากคุณไม่ได้เปิดใช้งานการรีเฟรช คุณจะต้องออก อีกครั้ง

เท่านี้ก็เรียบร้อย ตอนนี้แอปของคุณพร้อมแสดงโฆษณาแบนเนอร์แล้ว

เหตุการณ์โฆษณา

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

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

การนับการแสดงผลด้วยตนเอง

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

คุณสามารถส่งคำสั่ง ping ของการแสดงผลไปยัง Ad Manager ด้วยตนเองได้หากมีกรณีพิเศษ เงื่อนไขว่าควรบันทึกการแสดงผลเมื่อใด ในการดำเนินการนี้ ให้เปิดใช้ AdManagerAdRequestสำหรับการแสดงผลด้วยตนเองก่อนโหลดโฆษณา:

Java

AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build();

Kotlin

val adRequest = AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build()

เมื่อคุณพิจารณาว่าโฆษณาแสดงสำเร็จแล้ว และแสดงบนหน้าจอ คุณสามารถบันทึกการแสดงผลด้วยตนเอง โดยทำดังนี้

Java

{ ad_view }.recordManualImpression();

Kotlin

AdManagerAdView.recordManualImpression()

เหตุการณ์ของแอป

กิจกรรมของแอปช่วยให้คุณสร้างโฆษณาที่ส่งข้อความไปยังโค้ดของแอปได้ จากนั้นแอปจะดําเนินการตามข้อความเหล่านี้ได้

คุณฟังเหตุการณ์ในแอปที่เจาะจงของ Ad Manager ได้โดยใช้ AppEventListener เหตุการณ์เหล่านี้อาจเกิดขึ้นได้ทุกเมื่อตลอดอายุการใช้งานของโฆษณา แม้แต่ก่อนที่จะเรียกonAdLoaded()

Java

public interface AppEventListener {
  void onAppEvent(String name, String info);
}

Kotlin

interface AppEventListener {
    fun onAppEvent(name: String, info: String)
}

ระบบจะเรียกใช้ void onAppEvent(String name, String info) เมื่อมีเหตุการณ์ของแอปเกิดขึ้น ในโฆษณา อินเทอร์เฟซนี้สามารถติดตั้งใช้งานโดยกิจกรรมหรือออบเจ็กต์อื่นๆ ต่อไปนี้

Java

import com.google.android.gms.ads.admanager.*;

public class BannerExample extends Activity implements AppEventListener {
}

Kotlin

import com.google.android.gms.ads.admanager.*

class BannerExample : Activity(), AppEventListener {
}

และส่งไปยัง AdManagerAdView:

Java

AdManagerAdView.setAppEventListener(this);

Kotlin

AdManagerAdView.appEventListener = this

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

Java

@Override
public void onAppEvent(String name, String info) {
  if ("color".equals(name)) {
    if ("green".equals(info)) {
      // Set background color to green.
    } else if ("blue".equals(info)) {
      // Set background color to blue.
    } else {
      // Set background color to black.
    }
  }
}

Kotlin

override fun onAppEvent(name: String?, info: String?) {
    if (name == "color") {
        when (info) {
            "green" -> {
                // Set background color to green.
            }
            "blue" -> {
                // Set background color to blue.
            }
            else -> {
                // Set background color to black.
            }
        }
    }
}

และนี่คือครีเอทีฟโฆษณาที่เกี่ยวข้องซึ่งส่งข้อความเหตุการณ์ของแอปสีไปยัง Listener:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

ดูตัวอย่างเหตุการณ์ในแอปของ Ad Manager สําหรับการใช้งานเหตุการณ์ในแอปในแอปสาธิต API

Java Kotlin

แหล่งข้อมูลเพิ่มเติม

ตัวอย่างใน GitHub

  • ตัวอย่างโฆษณาแบนเนอร์แบบปรับขนาดได้แบบโฆษณา Anchor Java | Kotlin
  • การสาธิตฟีเจอร์ขั้นสูง: Java | Kotlin

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

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

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

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

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

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