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

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

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

คําแนะนํานี้แสดงวิธีผสานรวมโฆษณาแบนเนอร์จาก AdMob ลงในแอป Android

สิ่งที่ต้องดำเนินการก่อน

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

ขั้นตอนแรกในการแสดงแบนเนอร์คือการวาง AdView ในเลย์เอาต์สําหรับ Activity หรือ Fragment ที่คุณต้องการให้แสดง วิธีดําเนินการที่ง่ายที่สุดคือการเพิ่มแอปลงในไฟล์เลย์เอาต์ XML ที่เกี่ยวข้อง ตัวอย่างที่แสดง 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
300x250 สี่เหลี่ยมผืนผ้ากลาง 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

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

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