เริ่มต้นใช้งาน SDK

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

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

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

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

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

รวมการอ้างอิง GMA Next-Gen SDK

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

ทรัพยากร Dependency ของ Gradle
ปัจจุบัน

Kotlin

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

ดึงดูด

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

Kotlin

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

ดึงดูด

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

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

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

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

Kotlin

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

ดึงดูด

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

ตั้งค่าระดับ 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 ระหว่าง SDK ปัจจุบันกับ GMA Next-Gen SDK

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

ตัวอย่างต่อไปนี้จะตั้งค่า รหัสแอป AdMob ใน SDK ปัจจุบันและ SDK รุ่นถัดไปของ GMA

ปัจจุบัน

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

<manifest>
  <application>
    <!-- Sample AdMob 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

ระบุรหัสแอป AdMob โดยอัตโนมัติเป็นส่วนหนึ่งของการเริ่มต้น 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 ปัจจุบันและ SDK รุ่นถัดไปของ GMA

ปัจจุบัน

เรียกใช้ MobileAds.initialize() เพื่อเริ่มต้น SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ขอแนะนําให้เริ่มต้นในเธรดเบื้องหลังเพื่อลด 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 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 AdMob app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // 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.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 AdMob app ID: ca-app-pub-3940256099942544~3347511713
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}