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

หน้านี้จะอธิบายวิธีการเริ่มต้นใช้งาน GMA Next-Gen SDK

ก่อนเริ่มต้น

หากต้องการใช้ GMA Next-Gen SDK คุณต้องผสานรวมโดยไม่ใช้สื่อกลาง หรือใช้ Ad Manager เป็นแพลตฟอร์มสื่อกลาง แพลตฟอร์มสื่อกลางอื่นๆ ไม่สามารถใช้งานร่วมกับ GMA Next-Gen SDK ได้

กำหนดค่าบิลด์สำหรับ GMA Next-Gen SDK


ส่วนต่อไปนี้จะแสดงขั้นตอนที่จำเป็นในการกำหนดค่า GMA Next-Gen SDK

รวมทรัพยากร Dependency ของ GMA Next-Gen SDK

GMA Next-Gen SDK ต้องใช้ทรัพยากร Dependency ของ Gradle ที่แตกต่างกัน ในไฟล์บิลด์ระดับแอป ให้นำการอ้างอิงทรัพยากร Dependency ของ Mobile Ads SDK ปัจจุบันออกและรวมอาร์ติแฟกต์ใหม่

ทรัพยากร Dependency ของ Gradle
กระแสน้ำ

Kotlin

dependencies {
  // ...
  implementation("com.google.android.gms:play-services-ads:25.2.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:25.2.0'
}
GMA Next-Gen SDK

Kotlin

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation("com.google.android.gms:play-services-ads:25.2.0")
  implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.0.1")
}

Groovy

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:25.2.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.0.1'
}

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

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

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

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"
}

ตั้งค่าระดับ API ของ Android ขั้นต่ำและระดับ API ของ Android ที่ใช้คอมไพล์

GMA Next-Gen SDK กำหนดให้ใช้ระดับ API ของ Android ขั้นต่ำที่ 24 และระดับ API ของ Android ที่ใช้คอมไพล์ที่ 34 ปรับค่า minSdk และ compileSdk ในไฟล์บิลด์ระดับแอปเป็น 24 ขึ้นไปและ 34 ขึ้นไปตามลำดับ

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

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

ส่วนนี้จะอธิบายความแตกต่างในการใช้งานการเริ่มต้นใช้งาน SDK ระหว่าง ปัจจุบันกับ GMA Next-Gen SDK

ตั้งค่ารหัสแอป Ad Manager

ตัวอย่างต่อไปนี้จะตั้งค่ารหัสแอป Ad Manager ใน SDK ปัจจุบันและ GMA Next-Gen SDK

กระแสน้ำ

การผสานรวมต้องใช้แท็ก <meta-data> ที่มี android:name="com.google.android.gms.ads.APPLICATION_ID" ซึ่งมี รหัสแอป Ad Manager ภายในไฟล์ AndroidManifest.xml ของแอป

<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="SAMPLE_APP_ID"/>
  </application>
</manifest>
GMA Next-Gen SDK

ระบุรหัสแอป Ad Manager โดยใช้โปรแกรมเป็นส่วนหนึ่งของการเริ่มต้นใช้งาน SDK

Kotlin

// Initialize the Google Mobile Ads SDK.
val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build()
MobileAds.initialize(this@MainActivity, initConfig) {}

Java

// Initialize GMA Next-Gen SDK.
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

ตรวจสอบการเปลี่ยนแปลงการใช้งาน

ตัวอย่างต่อไปนี้จะเริ่มต้นใช้งาน SDK ปัจจุบันและ GMA Next-Gen SDK

กระแสน้ำ

เรียกใช้ MobileAds.initialize() เพื่อเริ่มต้นใช้งาน Google Mobile Ads SDK เราขอแนะนำให้เริ่มต้นใช้งานในเธรดเบื้องหลังเพื่อลดการเกิด ANR

Kotlin

import com.google.android.gms.ads.MobileAds
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 the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) {}
    }
  }
}

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

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

    new Thread(
            () -> {
              // Initialize the Google Mobile Ads SDK on a background thread.
              MobileAds.initialize(this, initializationStatus -> {});
            })
        .start();
  }
}
GMA Next-Gen SDK

เรียกใช้ MobileAds.initialize() เพื่อเริ่มต้นใช้งาน GMA Next-Gen SDK คุณต้องเรียกใช้ในเธรดเบื้องหลัง หากไม่ทำเช่นนั้นอาจทำให้เกิดข้อผิดพลาด "แอปพลิเคชันไม่ตอบสนอง" (ANR)

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,
        // Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // Adapter initialization is complete.
      }
      // SDK initialization is complete. If you don't want to wait for bidding adapters to finish
      // initializing, start loading ads now.
    }
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.MobileAds;
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,
                  // Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    // Adapter initialization is complete.
                  });
              // SDK initialization is complete. If you don't want to wait for bidding adapters to
              // finish initializing, start loading ads now.
            })
        .start();
  }
}