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

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

คู่มือนี้จะแสดงวิธีผสานรวมโฆษณาแบนเนอร์จากAdMob ลงในแอป Android นอกเหนือไปจากตัวอย่างโค้ดและคําแนะนํา ตลอดจนข้อมูลเกี่ยวกับขนาดแบนเนอร์ที่เหมาะสมและลิงก์ไปยังแหล่งข้อมูลเพิ่มเติม

สิ่งที่ต้องมีก่อน

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

ขั้นตอนแรกในการแสดงแบนเนอร์คือการใส่ AdView ในเลย์เอาต์สําหรับ Activity หรือ Fragment ที่คุณต้องการแสดง วิธีที่ง่ายที่สุดคือการเพิ่มระเบียนลงในไฟล์ XML ที่เกี่ยวข้อง ด้านล่างนี้เป็นตัวอย่างกิจกรรม #39 AdView

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...

โปรดคํานึงถึงแอตทริบิวต์ที่จําเป็นต่อไปนี้

  • ads:adSize - ตั้งค่าเป็นขนาดโฆษณาที่คุณต้องการใช้ หากไม่ต้องการใช้ขนาดมาตรฐานที่กําหนดโดยค่าคงที่ คุณสามารถตั้งค่าขนาดที่กําหนดเองแทนได้ ดูรายละเอียดได้ที่ส่วนขนาดแบนเนอร์ด้านล่าง
  • ads:adUnitId - ตั้งค่านี้เป็นตัวระบุเฉพาะที่กําหนดให้กับหน่วยโฆษณาในแอปที่จะแสดงโฆษณา หากคุณแสดงโฆษณาแบนเนอร์ในกิจกรรมที่แตกต่างกัน โฆษณาแต่ละรายการต้องมีหน่วยโฆษณา

หรือคุณจะสร้าง AdView โดยใช้โปรแกรมก็ได้

Java

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

ทดสอบกับโฆษณาทดสอบเสมอ

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

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

ca-app-pub-3940256099942544/6300978111

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

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

โหลดโฆษณา

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

ต่อไปนี้คือตัวอย่างที่แสดงวิธีโหลดโฆษณาในเมธอด onCreate() ของ Activity

กิจกรรมหลัก (ข้อความที่ตัดตอนมา)

Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

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

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

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

หากต้องการใช้ AdListener กับ AdView ให้เรียกใช้ setAdListener() เมธอด ดังนี้

Java

mAdView.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

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

ตารางด้านล่างแสดงรายการขนาดแบนเนอร์มาตรฐาน

ขนาดในหน่วย dp (WxH) คำอธิบาย ความพร้อมใช้งาน ขนาดคงที่ของ AdSize
320x50 แบนเนอร์ โทรศัพท์และแท็บเล็ต BANNER
320x100 แบนเนอร์ขนาดใหญ่ โทรศัพท์และแท็บเล็ต LARGE_BANNER
300 x 250 สี่เหลี่ยมผืนผ้ากลาง IAB โทรศัพท์และแท็บเล็ต MEDIUM_RECTANGLE
468x60 แบนเนอร์ขนาดเต็มของ IAB แท็บเล็ต FULL_BANNER
728x90 ลีดเดอร์บอร์ด IAB แท็บเล็ต LEADERBOARD
ความกว้างที่ระบุ x ความสูงที่ปรับได้ แบนเนอร์แบบปรับขนาดได้ โทรศัพท์และแท็บเล็ต ไม่มีข้อมูล
ความกว้างของหน้าจอ x 32|50|90 แบนเนอร์อัจฉริยะ โทรศัพท์และแท็บเล็ต SMART_BANNER
ดูข้อมูลเพิ่มเติมเกี่ยวกับแบนเนอร์แบบปรับขนาดได้ซึ่งสร้างขึ้นเพื่อแทนที่แบนเนอร์อัจฉริยะ

วิธีกําหนดขนาดแบนเนอร์ที่กําหนดเอง ให้ตั้งค่า AdSize ที่ต้องการ ดังที่แสดงด้านล่างนี้

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

การเร่งฮาร์ดแวร์สําหรับโฆษณาวิดีโอ

หากต้องการให้โฆษณาวิดีโอแสดงในข้อมูลพร็อพเพอร์ตี้โฆษณาแบนเนอร์ได้สําเร็จ คุณต้องเปิดใช้การเร่งฮาร์ดแวร์

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

เปิดการเร่งฮาร์ดแวร์

หากแอปของคุณทํางานไม่ถูกต้องเมื่อเปิดการเร่งฮาร์ดแวร์ไว้ทั่วโลก คุณควบคุมการทํางานของแต่ละกิจกรรมได้เช่นกัน หากต้องการเปิดหรือปิดใช้การเร่งฮาร์ดแวร์ ให้ใช้แอตทริบิวต์ 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>

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

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

ตัวอย่างใน GitHub

  • ตัวอย่างโฆษณาแบนเนอร์: Java | Kotlin

  • การสาธิตฟีเจอร์ขั้นสูง: Java | Kotlin

  • ตัวอย่างแอปแบนเนอร์ RecyclerView: Java

วิดีโอบทแนะนําการาจโฆษณาในอุปกรณ์เคลื่อนที่

เรื่องราวความสำเร็จ