ตั้งค่าการเข้าถึงโดยตรงสําหรับ Ad Exchange

SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google รองรับการสร้างรายได้จากแอปด้วยพร็อพเพอร์ตี้ Ad Exchange คู่มือนี้จะแสดงวิธีกำหนดค่าแอปสำหรับรูปแบบโฆษณาทั้งหมดที่ Ad Exchange รองรับ

ข้อกำหนดเบื้องต้น

กำหนดค่าแอปของคุณสำหรับการเข้าถึง 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();