ตั้งค่าสื่อกลาง AdMob

เลือกแพลตฟอร์ม: Android เลือกใหม่ Android iOS Unity Flutter

สื่อกลาง AdMob คือฟีเจอร์ที่ช่วยให้คุณแสดงโฆษณาไปยังแอปของคุณได้จากหลายแหล่งที่มา ซึ่งรวมถึงเครือข่าย AdMob และแหล่งที่มาของโฆษณาจากบุคคลที่สามได้ในที่เดียว สื่อกลาง AdMob จะช่วยเพิ่มให้คุณมีอัตราการส่งโฆษณาสูงที่สุด นอกจากนี้ยังเพิ่มการสร้างรายได้โดยการส่งคำขอโฆษณาไปให้หลายเครือข่ายเพื่อตรวจสอบว่าคุณจะพบเครือข่ายที่ดีที่สุดที่พร้อมจะแสดงโฆษณา กรณีศึกษา

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

คุณต้องผสานรวมรูปแบบโฆษณานั้นๆ เข้ากับแอปก่อนจึงจะผสานรวมสื่อกลางสำหรับรูปแบบโฆษณาได้ โดยทำดังนี้

หากไม่เคยใช้สื่อกลางมาก่อน โปรดอ่าน ภาพรวมของสื่อกลาง AdMob

เริ่มต้นใช้งาน GMA Next-Gen SDK

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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีตรวจสอบสถานะการเริ่มต้นใช้งานของอะแดปเตอร์แต่ละรายการก่อนที่จะส่งคำขอโฆษณา

Kotlin

import com.google.android.libraries.ads.mobile.sdk.MobileAds
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize GMA Next-Gen SDK on a background thread.
      MobileAds.initialize(this@MainActivity, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
        initializationStatus ->
        for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
          Log.d(
            "MyApp",
            String.format(
              "Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
              adapterName,
              adapterStatus.initializationState,
              adapterStatus.description,
              adapterStatus.latency,
            ),
          )
        }
        // Adapter initialization is complete.
      }
      // Other methods on MobileAds can now be called.
    }
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.MobileAds;
import com.google.android.libraries.ads.mobile.sdk.initialization.AdapterStatus;
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize GMA Next-Gen SDK on a background thread.
              MobileAds.initialize(
                  this,
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    Map<String, AdapterStatus> adapterStatusMap =
                        initializationStatus.getAdapterStatusMap();
                    for (String adapterClass : adapterStatusMap.keySet()) {
                      AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
                      Log.d(
                          "MyApp",
                          String.format(
                              "Adapter name: %s, Status code: %s, Status description: %s,"
                                  + " Latency: %d",
                              adapterClass,
                              adapterStatus.getInitializationState(),
                              adapterStatus.getDescription(),
                              adapterStatus.getLatency()));
                    }
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}

ยกเว้นโมดูล com.google.android.gms ในการผสานรวมสื่อกลาง

อะแดปเตอร์สื่อกลางจะยังคงต้องอาศัย Google Mobile Ads SDK ปัจจุบัน อย่างไรก็ตาม ,GMA Next-Gen SDK มีคลาสทั้งหมดที่อะแดปเตอร์สื่อกลางต้องการ คุณต้องยกเว้นไม่ให้ดึง ปัจจุบัน Google Mobile Ads SDKเข้ามาเป็นส่วนที่ใช้อ้างอิงโดยอะแดปเตอร์สื่อกลาง เพื่อหลีกเลี่ยงข้อผิดพลาดในการคอมไพล์ที่เกี่ยวข้องกับสัญลักษณ์ที่ซ้ำกัน

ในไฟล์ build.gradle ระดับแอป ให้ยกเว้นโมดูล play-services-ads และ play-services-ads-lite ทั้ง 2 โมดูลทั่วโลกจากส่วนที่ใช้อ้างอิงทั้งหมด

Kotlin

configurations.configureEach {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Groovy

configurations.configureEach {
    exclude group: "com.google.android.gms", module: "play-services-ads"
    exclude group: "com.google.android.gms", module: "play-services-ads-lite"
}

ตรวจสอบว่าคลาสอะแดปเตอร์เครือข่ายโฆษณาใดโหลดโฆษณา

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีบันทึกชื่อคลาสเครือข่ายโฆษณาสำหรับโฆษณาแบนเนอร์

Kotlin

BannerAd.load(
  BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  object : AdLoadCallback<BannerAd> {
    override fun onAdLoaded(ad: BannerAd) {
      Log.d(
        "MyApp", "Adapter class name: " +
          ad.getResponseInfo().mediationAdapterClassName
      )
    }
  }
)

Java

BannerAd.load(
  new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  new AdLoadCallback<BannerAd>() {
    @Override
    public void onAdLoaded(@NonNull BannerAd ad) {
      Log.d("MyApp",
          "Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
    }
  }
);

ตรวจสอบว่าได้ปิดใช้การรีเฟรชใน UI ของแหล่งที่มาของโฆษณาจากบุคคลที่สามทั้งหมดสำหรับหน่วยโฆษณาแบนเนอร์ที่ใช้ในสื่อกลาง AdMob ซึ่งจะป้องกันการรีเฟรช 2 ครั้งเนื่องจาก AdMob จะทริกเกอร์การรีเฟรชตามอัตราการรีเฟรชของหน่วยโฆษณาแบนเนอร์ด้วย

กฎหมายคุ้มครองความเป็นส่วนตัวของรัฐในสหรัฐอเมริกาและ GDPR

หากคุณต้องปฏิบัติตามกฎหมายคุ้มครองความเป็นส่วนตัวของรัฐในสหรัฐอเมริกาหรือกฎระเบียบทั่วไปเกี่ยวกับการคุ้มครองข้อมูล (GDPR) ให้ทำตามขั้นตอนในการตั้งค่ากฎระเบียบของรัฐในสหรัฐอเมริกาหรือการตั้งค่า GDPR เพื่อเพิ่มพาร์ทเนอร์สื่อกลางในรายชื่อพาร์ทเนอร์โฆษณาตามกฎระเบียบของรัฐในสหรัฐอเมริกาหรือ GDPR ของความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ของ AdMob หากไม่ดำเนินการดังกล่าว พาร์ทเนอร์อาจแสดงโฆษณาในแอปของคุณไม่ได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิดใช้การประมวลผลข้อมูลแบบจำกัด (RDP) และการขอความยินยอมตาม GDPR ด้วย SDK สำหรับ User Messaging Platform (UMP) ของ Google