SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google รองรับการสร้างรายได้จากแอปด้วยพร็อพเพอร์ตี้ Ad Exchange คู่มือนี้จะแสดงวิธีกำหนดค่าแอปสำหรับรูปแบบโฆษณาทั้งหมดที่ Ad Exchange รองรับ
ข้อกำหนดเบื้องต้น
- ปฏิบัติตามข้อกำหนดเบื้องต้นให้เสร็จสมบูรณ์
- กำหนดค่าแอปของคุณสำหรับ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google
กำหนดค่าแอปของคุณสำหรับการเข้าถึง 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.
ถัดไป คุณสามารถเริ่มต้น SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google และเลือกรูปแบบโฆษณาที่จะแสดง ส่วนที่เหลือของคู่มือนี้ใช้รูปแบบแบนเนอร์เพื่อแสดงวิธีการโหลดโฆษณาจาก Ad Exchange ขั้นตอนเดียวกันนี้สามารถใช้ได้กับรูปแบบโฆษณาต่างๆ ที่ SDK โฆษณาบนอุปกรณ์เคลื่อนที่ของ Google รองรับ
โหลดโฆษณาจาก Ad Exchange
คุณใช้รหัสเว็บพร็อพเพอร์ตี้ของ Ad Exchange พร้อมด้วยเครื่องหมายทับปิดท้ายในแอปแทนรหัสหน่วยโฆษณาได้
เช่น หากต้องการโหลดโฆษณาแบนเนอร์โดยวาง 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>
โปรดทราบว่าการไม่เพิ่มเครื่องหมายทับปิดท้ายลงในรหัสเว็บพร็อพเพอร์ตี้ของ 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
หรือจะสร้าง 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 แล้ว
นอกจากนี้ คุณสามารถใช้ผลิตภัณฑ์และบริการบนอินเทอร์เน็ตของ 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();