رویدادهای سفارشی تبلیغات بینابینی

پیش نیازها

راه اندازی رویدادهای سفارشی را کامل کنید.

درخواست آگهی بینابینی

هنگامی که مورد خط رویداد سفارشی در زنجیره واسطه آبشار به دست می‌آید،the loadInterstitialAd() method با نام کلاسی که هنگام ایجاد یک رویداد سفارشی ارائه کرده‌اید فراخوانی می‌شود. در این مورد، آن متد در SampleCustomEvent است، که سپسthe loadInterstitialAd() method در SampleInterstitialCustomEventLoaderفراخوانی می کند.

برای درخواست تبلیغ بینابینی، کلاسی را ایجاد یا تغییر دهید که Adapter برای پیاده سازی loadInterstitialAd() گسترش دهد. علاوه بر این، یک کلاس جدید برای پیاده سازی MediationInterstitialAd ایجاد کنید.

در مثال رویداد سفارشی ما، SampleCustomEventthe Adapter interface را پیاده سازی می کند و سپس بهSampleInterstitialCustomEventLoaderواگذار می کند.

جاوا

package com.google.ads.mediation.sample.customevent;

import com.google.android.gms.ads.mediation.Adapter;
import com.google.android.gms.ads.mediation.MediationAdConfiguration;
import com.google.android.gms.ads.mediation.MediationAdLoadCallback;
import com.google.android.gms.ads.mediation.MediationInterstitialAd;
import com.google.android.gms.ads.mediation.MediationInterstitialAdCallback;
...

public class SampleCustomEvent extends Adapter {
  private SampleInterstitialCustomEventLoader interstitialLoader;
  @Override
  public void loadInterstitialAd(
      @NonNull MediationInterstitialAdConfiguration adConfiguration,
      @NonNull
          MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback>
              callback) {
    interstitialLoader = new SampleInterstitialCustomEventLoader(adConfiguration, callback);
    interstitialLoader.loadAd();
  }
}

SampleInterstitialCustomEventLoader مسئول وظایف زیر است:

  • بارگیری آگهی بینابینی و فراخوانیMediationAdLoadCallback method پس از اتمام بارگیری

  • پیاده سازی MediationInterstitialAd interface

  • دریافت و گزارش تماس‌های رویداد تبلیغاتی به Google Mobile Ads SDK

پارامتر اختیاری تعریف شده در UI AdMob در پیکربندی آگهی گنجانده شده است. این پارامتر از طریق adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD) قابل دسترسی است. این پارامتر معمولاً یک شناسه واحد تبلیغاتی است که یک SDK شبکه تبلیغاتی هنگام نمونه‌برداری از یک شی تبلیغاتی به آن نیاز دارد.

جاوا

package com.google.ads.mediation.sample.customevent;

import com.google.android.gms.ads.mediation.Adapter;
import com.google.android.gms.ads.mediation.MediationInterstitialAdConfiguration;
import com.google.android.gms.ads.mediation.MediationAdLoadCallback;
import com.google.android.gms.ads.mediation.MediationInterstitialAd;
import com.google.android.gms.ads.mediation.MediationInterstitialAdCallback;
...

public class SampleInterstitialCustomEventLoader extends SampleAdListener
    implements MediationInterstitialAd {

  /** A sample third-party SDK interstitial ad. */
  private SampleInterstitial sampleInterstitialAd;

  /** Configuration for requesting the interstitial ad from the third-party network. */
  private final MediationInterstitialAdConfiguration mediationInterstitialAdConfiguration;

  /** Callback for interstitial ad events. */
  private MediationInterstitialAdCallback interstitialAdCallback;

  /** Callback that fires on loading success or failure. */
  private final MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback>
      mediationAdLoadCallback;

  /** Constructor. */
  public SampleInterstitialCustomEventLoader(
      @NonNull MediationInterstitialAdConfiguration mediationInterstitialAdConfiguration,
      @NonNull MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback>
              mediationAdLoadCallback) {
    this.mediationInterstitialAdConfiguration = mediationInterstitialAdConfiguration;
    this.mediationAdLoadCallback = mediationAdLoadCallback;
  }

  /** Loads the interstitial ad from the third-party ad network. */
  public void loadAd() {
    // All custom events have a server parameter named "parameter" that returns
    // back the parameter entered into the UI when defining the custom event.
    Log.i("InterstitialCustomEvent", "Begin loading interstitial ad.");
    String serverParameter = mediationInterstitialAdConfiguration.getServerParameters().getString(
        MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD);
    Log.d("InterstitialCustomEvent", "Received server parameter.");

    sampleInterstitialAd =
        new SampleInterstitial(mediationInterstitialAdConfiguration.getContext());
    sampleInterstitialAd.setAdUnit(serverParameter);

    // Implement a SampleAdListener and forward callbacks to mediation.
    sampleInterstitialAd.setAdListener(this);

    // Make an ad request.
    Log.i("InterstitialCustomEvent", "start fetching interstitial ad.");
    sampleInterstitialAd.fetchAd(
        SampleCustomEvent.createSampleRequest(mediationInterstitialAdConfiguration));
  }

public SampleAdRequest createSampleRequest(
      MediationAdConfiguration mediationAdConfiguration) {
    SampleAdRequest request = new SampleAdRequest();
    request.setTestMode(mediationAdConfiguration.isTestRequest());
    request.setKeywords(mediationAdConfiguration.getMediationExtras().keySet());
    return request;
  }
}

بسته به اینکه آیا تبلیغ با موفقیت واکشی شده است یا با خطا مواجه می‌شود، می‌توانید onSuccess() یا onFailure() را فراخوانی کنید. onSuccess() با ارسال نمونه ای از کلاسی که MediationInterstitialAd را پیاده سازی می کند فراخوانی می شود.

به طور معمول، این روش‌ها در داخل فراخوان‌های SDK شخص ثالثی که آداپتور شما پیاده‌سازی می‌کند، پیاده‌سازی می‌شود. برای این مثال، Sample SDK دارای SampleAdListener با تماس‌های مربوطه است:

جاوا

@Override
public void onAdFetchSucceeded() {
  interstitialAdCallback = mediationAdLoadCallback.onSuccess(this);
}

@Override
public void onAdFetchFailed(SampleErrorCode errorCode) {
  mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode));
}

MediationInterstitialAd به پیاده سازی متد showAd() برای نمایش تبلیغ نیاز دارد:

جاوا

@Override
public void showAd(@NonNull Context context) {
  sampleInterstitialAd.show();
}

رویدادهای میانجی را به Google Mobile Ads SDK بازارسال کنید

پس از فراخوانی onSuccess() ، شی MediationInterstitialAdCallback برگردانده شده می‌تواند توسط آداپتور برای ارسال رویدادهای ارائه از SDK شخص ثالث به Google Mobile Ads SDK استفاده شود. کلاس SampleInterstitialCustomEventLoader رابط SampleAdListener را گسترش می‌دهد تا تماس‌های برگشتی از شبکه تبلیغات نمونه به Google Mobile Ads SDK ارسال شود.

مهم است که رویداد سفارشی شما تا آنجایی که ممکن است این تماس‌های پاسخگو را فوروارد کند تا برنامه شما این رویدادهای مشابه را از Google Mobile Ads SDK دریافت کند. در اینجا مثالی از استفاده از callback آورده شده است:

جاوا

@Override
public void onAdFullScreen() {
  interstitialAdCallback.reportAdImpression();
  interstitialAdCallback.onAdOpened();
}

@Override
public void onAdClosed() {
  interstitialAdCallback.onAdClosed();
}

این پیاده سازی رویدادهای سفارشی را برای تبلیغات بینابینی تکمیل می کند. نمونه کامل در GitHub موجود است. می‌توانید آن را با یک شبکه تبلیغاتی که قبلاً پشتیبانی می‌شود استفاده کنید یا آن را برای نمایش آگهی‌های بینابینی رویداد سفارشی تغییر دهید.