Google Mobile Ads SDK รองรับการสร้างรายได้จากแอปด้วยพร็อพเพอร์ตี้ Ad Exchange คู่มือนี้จะแสดงวิธีกำหนดค่าแอปสำหรับรูปแบบโฆษณาทั้งหมดที่ Ad Exchange รองรับ
ข้อกำหนดเบื้องต้น
- ทำตาม ข้อกำหนดเบื้องต้น
- กำหนดค่า แอป สำหรับ Google Mobile Ads SDK
กำหนดค่าแอปสำหรับการเข้าถึง Ad Exchange
เพิ่มรหัสแอป Ad Manager (ระบุไว้ใน UI ของ Ad Manager) ลงในไฟล์ AndroidManifest.xml ของแอปผ่านแท็ก <meta-data> ที่มี android:name="com.google.android.gms.ads.APPLICATION_ID" สำหรับ android:value ให้แทรกรหัสแอป Ad Manager ของคุณเองโดยใส่ไว้ในเครื่องหมายคำพูด
<manifest>
<application>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
โปรดทราบว่าการไม่เพิ่มแท็ก <meta-data> ตามที่แสดงด้านบนจะทำให้แอป
ขัดข้องและแสดงข้อความต่อไปนี้
Missing application ID.
จากนั้นคุณสามารถเริ่มต้นใช้งาน Google Mobile Ads SDK และเลือกรูปแบบโฆษณาที่จะแสดงได้ ส่วนที่เหลือของคู่มือนี้จะใช้รูปแบบ แบนเนอร์เพื่อ แสดงวิธีโหลดโฆษณาจาก Ad Exchange คุณสามารถใช้ขั้นตอนเดียวกันนี้กับรูปแบบโฆษณาใดก็ได้ที่ Google Mobile Ads SDK รองรับ
โหลดโฆษณาจาก Ad Exchange
คุณสามารถใช้รหัสพร็อพเพอร์ตี้ Ad Exchange ที่มีเครื่องหมายทับต่อท้ายแทนรหัสหน่วยโฆษณาได้ เช่น ca-mb-app-pub-5629679302779023/
ตัวอย่างเช่น หากต้องการโหลดโฆษณาแบนเนอร์ ให้วาง AdManagerAdView ในเลย์เอาต์ของ Activity ดังนี้
# main_activity.xml
...
<com.google.android.gms.ads.admanager.AdManagerAdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adManagerAdView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-mb-app-pub-5629679302779023/">
</com.google.android.gms.ads.admanager.AdManagerAdView>
หรือคุณจะสร้างลำดับชั้นการแสดงผลในเชิงโปรแกรมก็ได้
Java
AdManagerAdView adView = new AdManagerAdView(this);
adView.setAdSizes(AdSize.BANNER);
adView.setAdUnitId("ca-mb-app-pub-5629679302779023/");
// TODO: Add adView to your view hierarchy.
Kotlin
val adView = AdManagerAdView(this)
adView.adSizes = AdSize.BANNER
adView.adUnitId = "ca-mb-app-pub-5629679302779023/"
// TODO: Add adView to your view hierarchy.
เมื่อวาง AdManagerAdView แล้ว คุณสามารถ เรียกใช้ loadAd() เมธอด ในคลาส AdManagerAdView และปรับแต่งลักษณะการทำงานของโฆษณาโดยใช้ เหตุการณ์โฆษณา ได้
โปรดทราบว่าการไม่เพิ่มเครื่องหมายทับต่อท้ายลงในรหัสพร็อพเพอร์ตี้ Ad Exchange จะทำให้เกิดข้อผิดพลาดในคำขอโฆษณาและแสดงข้อความต่อไปนี้
Invalid Request. Cannot determine request type. Is your ad unit id correct?
นอกจากนี้ คุณยังแปลงรหัสพร็อพเพอร์ตี้ Ad Exchange เป็นหน่วยโฆษณาได้ด้วย
หลังจากนั้น ให้ใช้ UI ของ Ad Manager เพื่อ สร้างแท็ก Ad Exchange แล้วคัดลอกแท็กดังกล่าวลงใน แอป แท็กที่สร้างขึ้นควรมีรหัสพร็อพเพอร์ตี้เว็บ Ad Exchange ตามด้วย รหัสหน่วยโฆษณาที่สืบทอดมาโดยไม่มีเครื่องหมายทับต่อท้าย เช่น ca-mb-app-pub-5629679302779023/banner
เท่านี้ก็เรียบร้อย ตอนนี้แอปของคุณพร้อมที่จะโหลดและแสดงโฆษณาแบนเนอร์จาก Ad Exchange แล้ว
นอกจากนี้ คุณยังใช้เว็บพร็อพเพอร์ตี้ Ad Exchange เพื่อโหลดและแสดงรูปแบบโฆษณาอื่นๆ จาก Ad Exchange ได้โดยทำตามคำแนะนำที่เกี่ยวข้อง
(ผู้เผยแพร่โฆษณาในยุโรปที่ได้รับอนุมัติเท่านั้น) เพิ่มราคาพื้น
คุณสามารถส่งคำขอสำหรับฟีเจอร์ "ราคาพื้น" ได้
เมื่อได้รับอนุมัติแล้ว คุณสามารถใส่ราคาพื้นแบบสาธารณะหรือราคาพื้นแบบส่วนตัวในคำขอโฆษณาได้โดยใช้พารามิเตอร์ pubf และ pvtf ตามลำดับ ในตัวอย่างโค้ดต่อไปนี้ ให้แทนที่ "123" ด้วยราคาพื้นในหน่วยไมโครและสกุลเงินเริ่มต้นของเครือข่าย ตัวอย่างการใช้หน่วยไมโคร: หากสกุลเงินเริ่มต้นคือ USD การป้อน "6000000" จะเทียบเท่ากับ $6.00
Java
Bundle extras = new Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");
AdManagerAdRequest request = new AdManagerAdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
Kotlin
val extras = Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");
val request = AdManagerAdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter::class::java, extras)
.build();