SDK را راه اندازی کنید

این صفحه دستورالعمل‌های راه‌اندازی اولیه GMA Next Gen SDK را پوشش می‌دهد.

قبل از اینکه شروع کنی

برای استفاده از GMA Next Gen SDK، یا باید بدون واسطه ادغام شوید یا از AdMob به عنوان پلتفرم واسطه استفاده کنید. سایر پلتفرم‌های واسطه با GMA Next Gen SDK سازگار نیستند.

پیکربندی نسخه خود برای GMA Next Gen SDK

بخش‌های زیر مراحل لازم برای پیکربندی GMA Next Gen SDK را به شما نشان می‌دهند.

وابستگی به GMA Next Gen SDK را لحاظ کنید

GMA Next Gen SDK به یک وابستگی Gradle متفاوت نیاز دارد. در فایل ساخت سطح برنامه خود، ارجاع به وابستگی SDK تبلیغات موبایل فعلی را حذف کرده و مصنوع جدید را اضافه کنید.

وابستگی‌های گرادل
فعلی

کاتلین

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

گرووی

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

کاتلین

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

گرووی

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

ماژول‌های com.google.android.gms را در ادغام‌های میانجی‌گری حذف کنید

آداپتورهای میانجی‌گری همچنان به SDK فعلی تبلیغات موبایل وابسته هستند. با این حال، SDK نسل بعدی GMA شامل تمام کلاس‌های مورد نیاز آداپتورهای میانجی‌گری است. برای جلوگیری از خطاهای کامپایل مربوط به نمادهای تکراری، باید SDK فعلی تبلیغات موبایل را از وابستگی توسط آداپتورهای میانجی‌گری مستثنی کنید.

در فایل ساخت سطح برنامه خود، هر دو ماژول play-services-ads و 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")
}

گرووی

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

حداقل سطح API اندروید را تنظیم و کامپایل کنید

GMA Next Gen SDK به حداقل سطح API اندروید ۲۴ و سطح API کامپایل اندروید ۳۴ نیاز دارد. مقادیر minSdk و compileSdk را در فایل ساخت سطح برنامه خود به ترتیب روی ۲۴ یا بالاتر و ۳۴ یا بالاتر تنظیم کنید.

مقداردهی اولیه GMA Next Gen SDK

GMA Next Gen SDK قبل از بارگذاری تبلیغات نیاز به مقداردهی اولیه دارد، تغییری نسبت به SDK فعلی تبلیغات موبایل که در آن مقداردهی اولیه اختیاری است اما توصیه می‌شود. اگر قبلاً SDK را قبل از بارگذاری تبلیغات مقداردهی اولیه نکرده‌اید، کد خود را به‌روزرسانی کنید.

این بخش تفاوت‌های پیاده‌سازی مقداردهی اولیه SDK بین SDK فعلی و GMA Next Gen را پوشش می‌دهد.

شناسه برنامه AdMob را تنظیم کنید

مثال‌های زیر شناسه برنامه AdMob را در SDK فعلی و GMA Next Gen تنظیم می‌کنند:

فعلی

ادغام نیاز به یک تگ <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 ارائه دهید.

کاتلین

// 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 -> {});

بررسی تغییرات پیاده‌سازی

مثال‌های زیر SDK فعلی و GMA Next Gen را مقداردهی اولیه می‌کنند:

فعلی

برای مقداردهی اولیه SDK تبلیغات موبایلی گوگل، تابع MobileAds.initialize() را فراخوانی کنید. مقداردهی اولیه روی یک thread پس‌زمینه برای کاهش ANRها توصیه می‌شود.

کاتلین

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

برای مقداردهی اولیه GMA Next Gen SDK، تابع MobileAds.initialize() را فراخوانی کنید. این تابع باید در یک thread پس‌زمینه فراخوانی شود، عدم انجام این کار ممکن است باعث خطای "برنامه پاسخ نمی‌دهد" (ANR) شود.

کاتلین

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

جاوا

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