आइकन विज्ञापन लागू करें

आइकॉन विज्ञापन, ऐप्लिकेशन के आइकॉन के छोटे प्लेसमेंट होते हैं. ये ऑपरेटिंग सिस्टम के उपयोगकर्ता अनुभव को बेहतर बनाते हैं. साथ ही, ओएस लेवल की ज़्यादातर गतिविधियों के साथ काम करते हैं. जैसे, लॉक स्क्रीन और शेयर स्क्रीन. आइकॉन वाले विज्ञापनों को अलग-अलग या कई ग्रुप में दिखाया जा सकता है. हर विज्ञापन में टेक्स्ट और स्ट्रिंग एलिमेंट का एक सेट होता है. इन्हें रेंडर करने की ज़िम्मेदारी आपके ऐप्लिकेशन की होती है. यहां दी गई इमेज में, किसी ऐप्लिकेशन फ़ोल्डर में डिसप्ले पर आइकॉन विज्ञापन दिखाए गए हैं:

इस गाइड में, आइकॉन विज्ञापनों का अनुरोध करने और उन्हें दिखाने का तरीका बताया गया है.

ज़रूरी शर्तें

शुरू करने से पहले, आपके पास GMA Next-Gen SDK 0.8.0-alpha01 या इससे ज़्यादा होना चाहिए.

हमेशा टेस्ट विज्ञापनों का इस्तेमाल करके टेस्ट करना

अपने ऐप्लिकेशन बनाने और उनकी टेस्टिंग करने के लिए, लाइव और प्रोडक्शन विज्ञापन इस्तेमाल करने के बजाय, टेस्ट विज्ञापन इस्तेमाल करें. टेस्ट विज्ञापनों का इस्तेमाल न करने पर, आपके खाते को निलंबित किया जा सकता है.

टेस्ट विज्ञापन पाने के लिए, अपनी विज्ञापन यूनिट का इस्तेमाल करें और टेस्ट डिवाइस चालू करें. इसके अलावा, Android आइकॉन विज्ञापनों के लिए, यहां दिए गए खास टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करें:

ca-app-pub-3940256099942544/1476272466
GMA Next-Gen SDK टेस्ट विज्ञापनों के बारे में जानकारी के लिए, टेस्ट विज्ञापनों को चालू करना लेख पढ़ें.

आइकॉन विज्ञापन लोड करना

आइकॉन विज्ञापन के अनुरोध के साथ आइकॉन विज्ञापन लोड करें और विज्ञापन लोड करने से जुड़े इवेंट मैनेज करें:

Kotlin

private fun loadIconAd() {
  val request =
    IconAdRequest.Builder(AD_UNIT_ID)
      // The "AdChoices" badge is rendered at the top right corner of the icon ad
      // if left unspecified.
      .setAdChoicesPlacement(AdChoicesPlacement.BOTTOM_RIGHT)
      // It is recommended to specify the placement of your icon ad
      // to help Google optimize your icon ad performance.
      .setIconAdPlacement(IconAdPlacement.BROWSER)
      .build()

  IconAd.load(
    request,
    object : AdLoadCallback<IconAd> {
      override fun onAdFailedToLoad(adError: LoadAdError) {
        Log.w(Constant.TAG, "Icon ad failed to load: $adError")
        showToast("Icon ad failed to load.")
      }

      override fun onAdLoaded(ad: IconAd) {
        Log.d(Constant.TAG, "Icon ad loaded")
        // Always call destroy() on ads on removal.
        iconAd?.destroy()
        iconAd = ad
        setAdEventCallback(ad)
        displayIconAd(ad)
      }
    },
  )
}

Java

private void loadIconAd() {
  IconAdRequest request =
      new IconAdRequest.Builder(AD_UNIT_ID)
          // The "AdChoices" badge is rendered at the top right corner of the icon ad
          // if left unspecified.
          .setAdChoicesPlacement(AdChoicesPlacement.BOTTOM_RIGHT)
          // It is recommended to specify the placement of your icon ad
          // to help Google optimize your icon ad performance.
          .setIconAdPlacement(IconAdPlacement.BROWSER)
          .build();

  IconAd.load(
      request,
      new AdLoadCallback<IconAd>() {
        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError adError) {
          Log.w(Constant.TAG, "Icon ad failed to load :" + adError);
          showToast("Icon ad failed to load with error code: " + adError.getCode());
        }

        @Override
        public void onAdLoaded(@NonNull IconAd ad) {
          Log.d(Constant.TAG, "Icon ad loaded.");

          // Always call destroy() on ads on removal.
          if (iconAd != null) {
              iconAd.destroy();
          }
          iconAd = ad;
          setAdEventCallback(ad);
          displayIconAd(ad);
        }
      });
}

आइकॉन विज्ञापन व्यू बनाना

आइकॉन विज्ञापनों को अपनी ऐसेट के लिए, रूट एलिमेंट के तौर पर IconAdView का इस्तेमाल करना होगा. आइकॉन विज्ञापन व्यू में, अपने विज्ञापन के लिए सभी विज़ुअल एलिमेंट रखें.

यहां आइकॉन विज्ञापन के लिए व्यू बनाने का लेआउट दिखाया गया है:

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.libraries.ads.mobile.sdk.iconad.IconAdView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

  <LinearLayout
      android:id="@+id/icon_ad_container"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:background="#00FFC107"
      android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
      <TextView
          android:id="@+id/ad_badge"
          android:width="15dp"
          android:height="15dp"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:background="#FFC107"
          android:text="Ad"
          android:textColor="#FFFFFF"
          android:textSize="12sp" />
      <TextView
          android:id="@+id/ad_headline"
          android:textStyle="normal"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_gravity="center"
          android:autoText="true"
          android:inputType="text|textMultiLine"
          android:textColor="#808080"
          android:textSize="12sp" />
    </LinearLayout>

    <com.google.android.material.imageview.ShapeableImageView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/ad_icon"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:background="@android:color/holo_green_light"
        android:contentDescription="@string/content_description_icon_ad"
        android:theme="@style/Theme.AppCompat.Light"
        app:shapeAppearanceOverlay="@style/roundedCorners"
        app:strokeColor="@null" />

    <RatingBar
        android:id="@+id/ad_stars"
        style="?android:attr/ratingBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:isIndicator="true"
        android:numStars="5"
        android:stepSize="0.5" />
    <Button
        android:id="@+id/ad_call_to_action"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:textSize="12sp" />
  </LinearLayout>

</com.google.android.libraries.ads.mobile.sdk.iconad.IconAdView>

स्क्रीन पर आइकॉन विज्ञापन दिखाना

किसी स्क्रीन पर आइकॉन विज्ञापन दिखाने के लिए, यह तरीका अपनाएं:

  1. आइकॉन विज्ञापन के व्यू को बड़ा करें और उसे व्यू हैरारकी में जोड़ें.

  2. हर चाइल्ड व्यू में, उससे जुड़ी आइकॉन विज्ञापन ऐसेट डालें.

स्क्रीन पर आइकॉन विज्ञापन दिखाने के लिए, यहां दिए गए उदाहरण में पिछले चरणों के बारे में बताया गया है:

Kotlin

val iconAdViewBinding = IconAdBinding.inflate(layoutInflater)
// Add the ad view to the active view hierarchy.
binding.iconAdContainer.addView(iconAdViewBinding.root)
val iconAdView = iconAdViewBinding.root

// Populate the view elements with their respective icon ad asset.
iconAdView.callToActionView = iconAdViewBinding.adCallToAction
iconAdView.headlineView = iconAdViewBinding.adHeadline
iconAdView.iconView = iconAdViewBinding.adIcon
iconAdView.starRatingView = iconAdViewBinding.adStars

Java

IconAdBinding iconAdViewBinding = IconAdBinding.inflate(getLayoutInflater());
// Add the ad view to the active view hierarchy.
binding.iconAdContainer.addView(iconAdViewBinding.getRoot());
IconAdView iconAdView = iconAdViewBinding.getRoot();

// Populate the view elements with their respective icon ad asset.
iconAdView.setCallToActionView(iconAdViewBinding.adCallToAction);
iconAdView.setHeadlineView(iconAdViewBinding.adHeadline);
iconAdView.setIconView(iconAdViewBinding.adIcon);
iconAdView.setStarRatingView(iconAdViewBinding.adStars);

आइकॉन विज्ञापन को क्लिक करने लायक बनाना

GMA Next-Gen SDK, हर ऐसेट व्यू के लिए क्लिक लिसनर रजिस्टर करता है. यह तब होता है, जब registerIconAd() को कॉल किया जाता है. आइकॉन विज्ञापन को रजिस्टर करने से पहले, आइकॉन विज्ञापन व्यू प्रॉपर्टी को अपनी व्यू हैरारकी में उनके व्यू से मैप करें:

Kotlin

// Map each asset view property to the corresponding view in your view hierarchy.
iconAdViewBinding.adCallToAction.text = iconAd.callToAction
iconAdViewBinding.adHeadline.text = iconAd.headline
iconAdViewBinding.adIcon.setImageDrawable(iconAd.icon.drawable)
iconAd.starRating?.toFloat().also { value ->
  if (value != null) {
    iconAdViewBinding.adStars.rating = value
  }
}

// Register the icon ad with the view presenting it.
iconAdView.registerIconAd(iconAd)

Java

// Map each asset view property to the corresponding view in your view hierarchy.
iconAdViewBinding.adCallToAction.setText(iconAd.getCallToAction());
iconAdViewBinding.adHeadline.setText(iconAd.getHeadline());
iconAdViewBinding.adIcon.setImageDrawable(iconAd.getIcon().getDrawable());

if (iconAd.getStarRating() != null) {
  iconAdViewBinding.adStars.setRating(iconAd.getStarRating().floatValue());
}

// Register the icon ad with the view presenting it.
iconAdView.registerIconAd(iconAd);
का इस्तेमाल करें.

ज़रूरी नहीं: आइकॉन विज्ञापन के इवेंट कॉलबैक को सेट करना

आइकॉन विज्ञापन के लाइफ़साइकल इवेंट मैनेज करने के लिए, इवेंट कॉलबैक सेट करें:

Kotlin

iconAd.adEventCallback =
  object : IconAdEventCallback {
    override fun onAdShowedFullScreenContent() {
      // Icon ad showed full screen content.
    }

    override fun onAdDismissedFullScreenContent() {
      // Icon ad dismissed full screen content.
    }

    override fun onAdFailedToShowFullScreenContent(
      fullScreenContentError: FullScreenContentError
    ) {
      // Icon ad failed to show full screen content.
    }

    override fun onAdImpression() {
      // Icon ad recorded an impression.
    }

    override fun onAdClicked() {
      // Icon ad recorded a click.
    }

    override fun onAdPaid(value: AdValue) {
      // Icon ad estimated to have earned money.
    }
  }

Java

iconAd.setAdEventCallback(
    new IconAdEventCallback() {
      @Override
      public void onAdShowedFullScreenContent() {
        // Icon ad showed full screen content.
      }

      @Override
      public void onAdDismissedFullScreenContent() {
        // Icon ad dismissed full screen content.
      }

      @Override
      public void onAdFailedToShowFullScreenContent(
          @NonNull FullScreenContentError fullScreenContentError) {
        // Icon ad failed to show full screen content.
      }

      @Override
      public void onAdImpression() {
        // Icon ad recorded an impression.
      }

      @Override
      public void onAdClicked() {
        // Icon ad recorded a click.
      }

      @Override
      public void onAdPaid(@NonNull AdValue value) {
        // Icon ad estimated to have earned money.
      }
    });

परफ़ॉर्मेंस को ऑप्टिमाइज़ करना

यहां दिए गए सेक्शन में, आइकॉन विज्ञापनों की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, लागू करने के वैकल्पिक चरणों के बारे में बताया गया है.

एक से ज़्यादा विज्ञापन लोड करने के लिए, कोरिलेटर का इस्तेमाल करना

एक साथ दिखाने के लिए कई आइकॉन विज्ञापन लोड करते समय, एक ही कोरिलेटर वैल्यू का इस्तेमाल करके क्रम से अनुरोध करें. इससे यह पक्का किया जा सकेगा कि लोड किए गए विज्ञापन यूनीक हैं. कोरिलेटर का लाइफ़स्पैन 10 सेकंड होता है. सर्वर, 10 सेकंड से ज़्यादा के अंतर वाले अनुरोधों को एक-दूसरे से जुड़ा नहीं मानता.

यहां दिए गए उदाहरण में, विज्ञापन अनुरोध पर कोरिलेटर वैल्यू सेट करने का तरीका बताया गया है:

Kotlin

val correlator = Correlator.generateCorrelator()
val request =
      IconAdRequest.Builder("ca-app-pub-3940256099942544/1476272466")
        .setCorrelator(correlator)
        .build()

Java

Correlator correlator = Correlator.generateCorrelator();
IconAdRequest request =
    new IconAdRequest.Builder("ca-app-pub-3940256099942544/1476272466")
        .setCorrelator(correlator)
        .build();

आइकॉन विज्ञापन प्लेसमेंट सेट करना

Google को यह समझने में मदद करें कि आपने आइकॉन विज्ञापन कहां प्लेस किए हैं, ताकि वह आइकॉन विज्ञापन की परफ़ॉर्मेंस को ऑप्टिमाइज़ कर सके. इसके लिए, हमारा सुझाव है कि अनुरोध करते समय यह बताएं कि आपको आइकॉन विज्ञापन कहां दिखाने हैं.

IconAdPlacement एनम वैल्यू का इस्तेमाल करें, जो आपके इस्तेमाल के उदाहरण से सबसे ज़्यादा मिलती-जुलती हो:

Kotlin

val request =
  IconAdRequest.Builder("ca-app-pub-3940256099942544/1476272466")
    .setIconAdPlacement(IconAdPlacement.BROWSER)
    .build()

Java

IconAdRequest request =
    new IconAdRequest.Builder("ca-app-pub-3940256099942544/1476272466")
        .setIconAdPlacement(IconAdPlacement.BROWSER)
        .build();