GMA Next-Gen 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 की अलग डिपेंडेंसी की ज़रूरत होती है. अपने ऐप्लिकेशन-लेवल की बिल्ड फ़ाइल में, मौजूदा Mobile Ads 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 मॉड्यूल शामिल न करना

मीडिएशन अडैप्टर, मौजूदा Mobile Ads SDK पर निर्भर रहते हैं. हालांकि, GMA Next-Gen SDK में वे सभी क्लास शामिल होती हैं जिनकी ज़रूरत मीडिएशन अडैप्टर को होती है. डुप्लीकेट सिंबल से जुड़ी कंपाइल गड़बड़ियों से बचने के लिए, आपको मौजूदा 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 के लिए, Android का एपीआई लेवल कम से कम 24 और कंपाइल करने के लिए Android का एपीआई लेवल 34 होना ज़रूरी है. अपने ऐप्लिकेशन-लेवल की बिल्ड फ़ाइल में, minSdk और compileSdk की वैल्यू को क्रमशः 24 या उससे ज़्यादा और 34 या उससे ज़्यादा पर अडजस्ट करें.

GMA Next-Gen SDK को शुरू करना

GMA Next-Gen SDK को विज्ञापन लोड करने से पहले शुरू करना ज़रूरी है. मौजूदा Mobile Ads SDK में, इसे शुरू करना ज़रूरी नहीं है, लेकिन हमारा सुझाव है कि इसे शुरू किया जाए. अगर आपने पहले विज्ञापन लोड करने से पहले SDK टूल को शुरू नहीं किया था, तो अपना कोड अपडेट करें.

इस सेक्शन में, मौजूदा और GMA Next-Gen SDK के बीच, SDK टूल को शुरू करने के तरीके में अंतर के बारे में बताया गया है.

AdMob ऐप्लिकेशन आईडी सेट करना

यहां दिए गए उदाहरणों में, मौजूदा और GMA Next-Gen SDK में AdMob ऐप्लिकेशन आईडी सेट करने का तरीका बताया गया है:

मौजूदा

इंटिग्रेशन के लिए, <meta-data> टैग की ज़रूरत होती है. इसमें android:name="com.google.android.gms.ads.APPLICATION_ID" शामिल होता है. साथ ही, इसमें आपके ऐप्लिकेशन की AndroidManifest.xml फ़ाइल में, AdMob ऐप्लिकेशन आईडी शामिल होता है.

<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

SDK टूल को शुरू करने के दौरान, प्रोग्राम के ज़रिए अपना AdMob ऐप्लिकेशन आईडी डालें.

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

लागू करने के तरीके में किए गए बदलावों की समीक्षा करना

यहां दिए गए उदाहरणों में, मौजूदा और GMA Next-Gen SDK को शुरू करने का तरीका बताया गया है:

मौजूदा

Google Mobile Ads SDK को शुरू करने के लिए, MobileAds.initialize() को कॉल करें. 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) {}
    }
  }
}

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 को कॉल करें. इसे बैकग्राउंड थ्रेड पर कॉल करना ज़रूरी है. ऐसा न करने पर, "ऐप्लिकेशन काम नहीं कर रहा है" (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.
    }
  }
}

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