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.
ถัดไป คุณสามารถเริ่มต้นใช้งาน Google Mobile Ads SDK และเลือกรูปแบบโฆษณาที่จะแสดง ส่วนที่เหลือของคู่มือนี้จะอธิบายรูปแบบแบนเนอร์เพื่อแสดงวิธีโหลดโฆษณาจาก 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
แบบเป็นโปรแกรมก็ได้ โดยทำดังนี้
AdManagerAdView adView = new AdManagerAdView(this);
adView.setAdSizes(AdSize.BANNER);
adView.setAdUnitId("ca-mb-app-pub-5629679302779023/");
// TODO: Add adView to your view hierarchy.
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
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();
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();