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

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

قبل البدء

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

ضبط إعدادات الإصدار لحزمة تطوير البرامج (SDK) من الجيل التالي لإعلانات Google على الأجهزة الجوّالة GMA Next-Gen SDK


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

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

يتطلّب GMA Next-Gen SDK تبعية Gradle مختلفة. في ملف إصدار التطبيق، عليك إزالة الإشارة إلى الاعتمادية الحالية لحزمة تطوير البرامج (SDK) لإعلانات الأجهزة الجوّالة وتضمين العنصر الجديد.

تبعيات 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 في عمليات دمج التوسّط

تستمر المحوّلات الخاصة بالتوسّط في الاعتماد على حزمة تطوير البرامج (SDK) الحالية لإعلانات Google على الأجهزة الجوّالة. ومع ذلك، GMA Next-Gen SDK تتضمّن جميع الفئات التي تحتاج إليها المحوّلات الخاصة بالتوسّط. لتجنُّب أخطاء التجميع المتعلّقة بالرموز المكرّرة، عليك استبعاد حزمة تطوير البرامج (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 ومستوى واجهة برمجة تطبيقات Android الذي يتم التجميع عليه

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

إعداد GMA Next-Gen SDK

GMA Next-Gen SDK تتطلّب الإعداد قبل تحميل الإعلانات، وهذا يختلف عن حزمة تطوير البرامج (SDK) الحالية لإعلانات Google على الأجهزة الجوّالة التي يكون فيها الإعداد اختياريًا ولكن يُنصح به. عليك تعديل الرمز إذا لم يسبق لك إعداد حزمة تطوير البرامج (SDK) قبل تحميل الإعلانات.

يتناول هذا القسم الاختلافات في عملية إعداد حزمة تطوير البرامج (SDK) بين الحالية و GMA Next-Gen SDK.

ضبط معرّف تطبيق يستخدم AdMob

تضبط الأمثلة التالية معرّف تطبيق AdMob في حزمة تطوير البرامج (SDK) الحالية وGMA Next-Gen SDK:

الخطة الحالية

يتطلّب الدمج علامة <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) الحالية وGMA Next-Gen SDK

الخطة الحالية

عليك استدعاء MobileAds.initialize() لإعداد حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة. يُنصح بإجراء عملية الإعداد على سلسلة محادثات في الخلفية للحدّ من أخطاء "التطبيق لا يستجيب".

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. يجب استدعاء هذه الطريقة على سلسلة محادثات في الخلفية، وإذا لم يتم ذلك، قد يحدث خطأ "التطبيق لا يستجيب".

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