3

Admobメディエーションでカスタムイベントを実装する方法についてすべて読みました。完全にパッケージ化されたクラス名を追加しました。すべてがAdmobポータルで設定されています。

これは行われたクラスの実装です

  public class CustomEvent implements CustomEventBanner, AdListener{

private CustomEventBannerListener bannerListener;
private AdView adView;

@Override
public void requestBannerAd(final CustomEventBannerListener listener,
        final Activity activity,
        String label,
        String serverParameter,
        AdSize adSize,
        MediationAdRequest mediationAdRequest) {
    // Keep the custom event listener for use later.
    this.bannerListener = listener;

    // Determine the best ad format to use given the adSize. If the adSize
    // isn't appropriate for any format, an ad will not fill.
    AdSize bestAdSize = adSize = adSize.findBestSize(
            AdSize.BANNER,
            AdSize.IAB_BANNER,
            AdSize.IAB_LEADERBOARD,
            AdSize.IAB_MRECT,
            AdSize.IAB_WIDE_SKYSCRAPER);
    if (bestAdSize == null) {
        listener.onFailedToReceiveAd();
        return;
    }

    // Initialize an AdView with the bestAdSize and the publisher ID.
    // The publisher ID is the server parameter that you gave when creating
    // the custom event.
    this.adView = new AdView(activity, bestAdSize, serverParameter);

    // Set the listener to register for events.
    this.adView.setAdListener(this);
    // Generate an ad request using custom targeting values provided in the
    // MediationAdRequest.
    AdRequest adRequest = new AdRequest()
    .setBirthday(mediationAdRequest.getBirthday())
    .setGender(mediationAdRequest.getGender())
    .setKeywords(mediationAdRequest.getKeywords())
    .setLocation(mediationAdRequest.getLocation());
    if (mediationAdRequest.isTesting()) {
        adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    }

    // Load the ad with the ad request.
    this.adView.loadAd(adRequest);
}

@Override
public void onReceiveAd(Ad ad) {
    this.bannerListener.onReceivedAd(this.adView);
}

@Override
public void onFailedToReceiveAd(Ad ad, ErrorCode errorCode) {
    this.bannerListener.onFailedToReceiveAd();
}

@Override
public void onPresentScreen(Ad ad) {
    this.bannerListener.onClick();
    this.bannerListener.onPresentScreen();
}

@Override
public void onDismissScreen(Ad ad) {
    this.bannerListener.onDismissScreen();
}

@Override
public void onLeaveApplication(Ad ad) {
    this.bannerListener.onLeaveApplication();
}


}

問題は、onReceivedAd()でlayout.add(adview)を使用して追加する方法が本当にわからないことです。

任意の入力が役立ちます。

4

1 に答える 1

3

カスタム イベントは、通常の AdMob 実装とは少し異なります。広告ネットワークのadviewrequestBannerAdを作成し、広告をリクエストします。広告を受信したら (このonReceiveAdコールバックで)、次を呼び出します。

this.bannerListener.onReceivedAd(this.adView);

あなたはすでにコードでこれを行っています。これを呼び出すと、AdMob メディエーション レイヤーに「広告の読み込みに成功しました。これが私のビューです」と伝えます。メディエーション レイヤーは adview を受け取り、基本的layout.addView(adView)にユーザーに代わって呼び出します (アプリで定義したメインの AdView の子として追加します)。

したがって、あなたの場合、このコードはうまくいくはずです。

于 2012-07-26T21:57:42.940 に答える