Geçiş reklamları özel etkinlikleri

Ön koşullar

Özel etkinlik kurulumunu tamamlayın.

Geçiş reklamı isteğinde bulunma

Şelale uyumlulaştırma zincirinde özel etkinlik satır öğesine ulaşıldığında, loadInterstitialAd() yöntemi özel etkinlik oluştururken sağladığınız sınıf adında çağrılır. Bu durumda, söz konusu yöntem SampleCustomEvent içinde yer alır ve SampleInterstitialCustomEventLoader içinde loadInterstitialAd() yöntemini çağırır.

Geçiş reklamı istemek için Adapter sınıfını genişleten bir sınıf oluşturun veya değiştirerek loadInterstitialAd() uygulayın. Ayrıca, MediationInterstitialAd'yı uygulamak için yeni bir sınıf oluşturun.

Özel etkinlik örneğimizde, SampleCustomEvent sınıfı Adapter'ı genişletir ve ardından SampleInterstitialCustomEventLoader'e devreder.

Java

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 aşağıdaki görevlerden sorumludur:

  • Geçiş reklamını yükleme ve yükleme tamamlandıktan sonra bir MediationAdLoadCallback yöntemini çağırma.

  • MediationInterstitialAd arayüzünü uygulama.

  • Reklam etkinliği geri çağırmalarını Google Mobile Ads SDK'sına alma ve bildirme.

AdMob kullanıcı arayüzünde tanımlanan isteğe bağlı parametre, reklam yapılandırmasına dahil edilir. Parametreye adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD) üzerinden erişilebilir. Bu parametre genellikle bir reklam ağı SDK'sının reklam nesnesi oluştururken ihtiyaç duyduğu bir reklam birimi tanımlayıcısıdır.

Java

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

Reklamın başarıyla getirilmesine veya bir hatayla karşılaşmasına bağlı olarak onSuccess() veya onFailure() yöntemini çağırırsınız. onSuccess(), MediationInterstitialAd öğesini uygulayan sınıfın bir örneği iletilerek çağrılır.

Genellikle bu yöntemler, bağdaştırıcınızın uyguladığı üçüncü taraf SDK'sından gelen geri çağırmaların içinde uygulanır. Bu örnekte, Sample SDK'sında alakalı geri çağırmalar içeren bir SampleAdListener var:

Java

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

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

MediationInterstitialAd, reklamın gösterilmesi için showAd() yönteminin uygulanmasını gerektirir:

Java

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

Uyumlulaştırma etkinliklerini Google Mobile Ads SDK'sına yönlendirme

onSuccess() çağrıldıktan sonra döndürülen MediationInterstitialAdCallback nesnesi, sunum etkinliklerini üçüncü taraf SDK'sından Google Mobile Ads SDK'sına yönlendirmek için bağdaştırıcı tarafından kullanılabilir. SampleInterstitialCustomEventLoader sınıfı, örnek reklam ağından gelen geri aramaları Google Mobile Ads SDK'sına yönlendirmek için SampleAdListener arayüzünü genişletir.

Uygulamanızın Google Mobile Ads SDK'sından bu eşdeğer etkinlikleri alabilmesi için özel etkinliğinizin bu geri çağırmaların mümkün olduğunca çoğunu iletmesi önemlidir. Geri çağırmaları kullanma örneğini aşağıda bulabilirsiniz:

Java

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

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

Bu işlem, geçiş reklamları için özel etkinlik uygulamasını tamamlar. Tam örneği GitHub'da bulabilirsiniz. Bu özelliği, halihazırda desteklenen bir reklam ağıyla kullanabilir veya özel etkinlik geçiş reklamları gösterecek şekilde değiştirebilirsiniz.