โฆษณาแบนเนอร์จะใช้พื้นที่ภายในเลย์เอาต์ของแอปไม่ว่าจะด้านบนหรือด้านล่างของหน้าจออุปกรณ์ ในระหว่างที่ผู้ใช้กําลังโต้ตอบกับแอป โฆษณาเหล่านี้จะแสดงบนหน้าจอโดยอัตโนมัติ และจะรีเฟรชโดยอัตโนมัติหลังจากระยะเวลาหนึ่งได้ หากคุณเพิ่งเริ่มใช้การโฆษณาบนอุปกรณ์เคลื่อนที่ พวกเขาคือจุดเริ่มต้นที่ดี กรณีศึกษา
คู่มือนี้จะแสดงวิธีผสานรวมโฆษณาแบนเนอร์จากAdMob ลงในแอป Android นอกเหนือไปจากตัวอย่างโค้ดและคําแนะนํา ตลอดจนข้อมูลเกี่ยวกับขนาดแบนเนอร์ที่เหมาะสมและลิงก์ไปยังแหล่งข้อมูลเพิ่มเติม
สิ่งที่ต้องมีก่อน
- นําเข้า SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ด้วยตัวเองหรือเป็นส่วนหนึ่งของ Firebase
เพิ่ม 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
ตัวอย่างแอปแบนเนอร์ RecyclerView: Java