شروع به کار

این راهنما به شما نشان می‌دهد که چگونه یک آداپتور میانجیگری را با برنامه اندروید خود ادغام کنید.

پیش‌نیازها

قبل از اینکه بتوانید میانجیگری را برای یک قالب تبلیغاتی ادغام کنید، باید آن قالب تبلیغاتی را در برنامه خود ادغام کنید:

آیا در زمینه میانجیگری تازه‌کار هستید؟ مقدمه‌ای بر میانجیگری را بخوانید.

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

راهنمای شروع سریع به شما نشان می‌دهد که چگونه GMA Next-Gen SDK را مقداردهی اولیه کنید . در طول فراخوانی مقداردهی اولیه، آداپتورهای میانجی نیز مقداردهی اولیه می‌شوند. مهم است که قبل از بارگذاری تبلیغات، منتظر بمانید تا مقداردهی اولیه کامل شود تا مشارکت کامل از هر شبکه تبلیغاتی در اولین درخواست تبلیغ تأیید شود.

کد نمونه زیر نشان می‌دهد که چگونه می‌توانید وضعیت راه‌اندازی اولیه هر آداپتور را قبل از ارسال درخواست تبلیغ بررسی کنید.

کاتلین

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, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
        initializationStatus ->
        for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
          Log.d(
            "MyApp",
            String.format(
              "Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
              adapterName,
              adapterStatus.initializationState,
              adapterStatus.description,
              adapterStatus.latency,
            ),
          )
        }
        // 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.AdapterStatus;
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,
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    Map<String, AdapterStatus> adapterStatusMap =
                        initializationStatus.getAdapterStatusMap();
                    for (String adapterClass : adapterStatusMap.keySet()) {
                      AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
                      Log.d(
                          "MyApp",
                          String.format(
                              "Adapter name: %s, Status code: %s, Status description: %s,"
                                  + " Latency: %d",
                              adapterClass,
                              adapterStatus.getInitializationState(),
                              adapterStatus.getDescription(),
                              adapterStatus.getLatency()));
                    }
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}

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

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

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

بررسی کنید که کدام کلاس آداپتور شبکه تبلیغاتی، تبلیغ را بارگذاری کرده است

در اینجا نمونه کدی را مشاهده می‌کنید که نام کلاس شبکه تبلیغاتی را برای یک بنر تبلیغاتی ثبت می‌کند:

کاتلین

BannerAd.load(
  BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  object : AdLoadCallback<BannerAd> {
    override fun onAdLoaded(ad: BannerAd) {
      Log.d(
        "MyApp", "Adapter class name: " +
          ad.getResponseInfo().mediationAdapterClassName
      )
    }
  }
)

جاوا

BannerAd.load(
  new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  new AdLoadCallback<BannerAd>() {
    @Override
    public void onAdLoaded(@NonNull BannerAd ad) {
      Log.d("MyApp",
          "Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
    }
  }
);

مطمئن شوید که قابلیت رفرش را در تمام رابط‌های کاربری منبع تبلیغات شخص ثالث برای واحدهای تبلیغاتی بنری مورد استفاده در میانجیگری غیرفعال کرده‌اید. این کار از رفرش مضاعف جلوگیری می‌کند، زیرا Ad Manager نیز بر اساس نرخ رفرش واحد تبلیغاتی بنر شما، رفرش را فعال می‌کند.

قوانین حفظ حریم خصوصی ایالت‌های آمریکا و GDPR

اگر لازم است از قوانین حفظ حریم خصوصی ایالت‌های ایالات متحده یا مقررات عمومی حفاظت از داده‌ها (GDPR) پیروی کنید، مراحل موجود در تنظیمات مقررات ایالت‌های ایالات متحده یا تنظیمات GDPR را دنبال کنید تا شرکای میانجی خود را در فهرست شرکای تبلیغاتی ایالت‌های ایالات متحده یا GDPR در Ad Manager Privacy & messaging اضافه کنید. عدم انجام این کار می‌تواند منجر به عدم نمایش تبلیغات توسط شرکا در برنامه شما شود.

درباره فعال کردن پردازش داده‌های محدود (RDP) و دریافت رضایت GDPR با SDK پلتفرم پیام‌رسانی کاربر گوگل (UMP) بیشتر بدانید.