إعداد حزمة تطوير البرامج (SDK) من الجيل التالي من "إعلانات Google على الأجهزة الجوّالة"

تتضمّن هذه الصفحة تعليمات حول كيفية إعداد GMA Next-Gen SDK.

قبل البدء

لاستخدام GMA Next-Gen SDK، يجب إجراء عملية الدمج بدون التوسّط أو استخدام "مدير إعلانات Google" كمنصّة التوسّط. لا تتوافق منصات التوسّط الأخرى مع GMA Next-Gen SDK.

ضبط إصدارك على GMA Next-Gen SDK

توضّح لك الأقسام التالية الخطوات اللازمة لإعداد GMA Next-Gen SDK.

تضمين التبعية GMA Next-Gen SDK

يتطلّب GMA Next-Gen SDK اعتمادية مختلفة في Gradle. في ملف التصميم على مستوى التطبيق، أزِل الإشارة إلى اعتمادية Google Mobile Ads SDK وأدرِج العنصر الجديد.

المهام التابعة في Gradle
Google Mobile Ads SDK

Kotlin

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

Groovy

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

Kotlin

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

Groovy

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

استبعاد وحدات com.google.android.gms في عمليات دمج التوسّط

ستظلّ وسيطات التوسّط تعتمد على Google Mobile Ads SDK. ومع ذلك، تتضمّن GMA Next-Gen SDK جميع الفئات التي تتطلّبها محوّلات التوسّط. لتجنُّب أخطاء التجميع المتعلّقة بالرموز المكرّرة، عليك استبعاد Google Mobile Ads SDK من تضمينه كعنصر تابع من خلال برامج التكيّف الخاصة بالتوسّط.

في ملف الإصدار على مستوى التطبيق، استبعِد كلا الوحدتَين play-services-ads وplay-services-ads-lite بشكل عام من جميع التبعيات.

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

ضبط الحد الأدنى لمستويات واجهة برمجة تطبيقات Android ومستوى التجميع

يتطلّب GMA Next-Gen SDK الحد الأدنى من مستوى واجهة برمجة التطبيقات 24 لنظام التشغيل Android ومستوى واجهة برمجة التطبيقات 34 لنظام التشغيل Android عند التجميع. عدِّل القيمتَين minSdk وcompileSdk في ملف الإصدار على مستوى التطبيق إلى 24 أو أعلى و34 أو أعلى، على التوالي.

إعداد GMA Next-Gen SDK

يتطلّب GMA Next-Gen SDK عملية تهيئة قبل تحميل الإعلانات، وهذا يختلف عن Google Mobile Ads SDK حيث تكون عملية التهيئة اختيارية ولكن يُنصح بها. عدِّل الرمز إذا لم يسبق لك ضبط حزمة SDK قبل تحميل الإعلانات.

يتناول هذا القسم الاختلافات في تنفيذ عملية تهيئة حزمة SDK بين الإصدارين Google Mobile Ads SDK وGMA Next-Gen SDK.

ضبط رقم تعريف تطبيق "مدير إعلانات Google"

تضبط الأمثلة التالية رقم تعريف تطبيق "مدير إعلانات Google" في Google Mobile Ads SDK وGMA Next-Gen SDK:

Google Mobile Ads SDK

يتطلّب الدمج علامة <meta-data> تحتوي على android:name="com.google.android.gms.ads.APPLICATION_ID" معرّف تطبيقك على "مدير إعلانات Google" ضِمن ملف 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

قدِّم رقم تعريف تطبيقك على "مدير إعلانات Google" آليًا كجزء من عملية إعداد حزمة تطوير البرامج (SDK).

Kotlin

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

جافا

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

مراجعة تغييرات التنفيذ

تعرض الأمثلة التالية كيفية تهيئة Google Mobile Ads SDK وGMA Next-Gen SDK:

Google Mobile Ads SDK

استدعِ 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) {}
    }
  }
}

جافا

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

جافا

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();
  }
}