الانتقال إلى "الجيل التالي من SDK لإعلانات Google على الأجهزة الجوّالة"

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

قبل البدء

هذا الدليل مخصّص للناشرين والمنصات الخارجية التي تدمج GMA Next-Gen SDK مباشرةً.

إذا كنت تتصل بـ AdMob من خلال منصة توسّط تابعة لجهة خارجية تتيح ميزة عروض أسعار الشركاء، يُرجى مراجعة الجدول التالي للتأكّد من توافق هذه المنصة مع "GMA Next-Gen SDK".

منصّة توسّط متوافق مع GMA Next-Gen SDK
AdMost
AppLovin MAX
Chartboost Mediation
DT Fairbid
Gravite
Nimbus
TopOn
TradPlus VisiM
Unity LevelPlay

إذا أردت استخدام منصة توسّط غير متوافقة مع 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 (Legacy) وأدرِج العنصر الجديد.

تبعيات Gradle
Google Mobile Ads SDK (Legacy)

Kotlin

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

Groovy

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

Kotlin

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

Groovy

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

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

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

في ملف الإصدار على مستوى التطبيق، استبعِد كلاً من وحدتَي 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 من حزمة تطوير البرامج (SDK) الحدّ الأدنى لمستوى واجهة برمجة تطبيقات Android‏ 24 ومستوى واجهة برمجة تطبيقات Android‏ 34 لبرنامج التجميع. اضبط قيمتَي minSdk وcompileSdk في ملف الإصدار على مستوى التطبيق على 24 أو أعلى و34 أو أعلى على التوالي.

إعداد GMA Next-Gen SDK

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

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

ضبط رقم تعريف تطبيق AdMob

تضبط الأمثلة التالية رقم تعريف تطبيق يستخدم AdMob في Google Mobile Ads SDK (Legacy) وGMA Next-Gen SDK:

Google Mobile Ads SDK (Legacy)

تتطلّب عملية الدمج علامة <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) {}

جافا

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

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

تعرض الأمثلة التالية كيفية إعداد Google Mobile Ads SDK (Legacy) وGMA Next-Gen SDK:

Google Mobile Ads SDK (Legacy)

يُرجى الاتصال بالرقم 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 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.
    }
  }
}

جافا

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