2012-03-12 10 views
3

私のAndroidアプリケーションに表示AdMobのバナー。ユーザーがバナーをクリックすると、その欲しいと思います。私は、コードAdView.setOnClickListenerを試してみるが、それは動作しません...Android:AdMob onClickListener

EDIT:これはコード

private void visual_banner(){ 
//##### Pubblicità ##### 
     //Create the adView  
     adView = new AdView(this, AdSize.BANNER, "a14e5bed604ebf8"); 
     // Lookup your LinearLayout assuming it’s been given  
     // the attribute android:id="@+id/mainLayout"  
     LinearLayout layout = (LinearLayout)findViewById(R.id.layout_ads_streaming);  
     // Add the adView to it  
     layout.addView(adView); 
     // Initiate a generic request to load it with an ad  
     adView.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View arg0) { 
       adView.destroy(); 
       img.setVisibility(View.VISIBLE); 
      } 
     }); 
     adView.loadAd(new AdRequest()); 
     //### FINE PUBBLICITA' 
} 
+0

次のようにたぶん、あなたはあなたがたものたちを表示したいときはいつでも今

adView.setAdListener(adListener); com.google.android.gms.ads.AdListener adListener = new AdListener() { @Override public void onAdClosed() { super.onAdClosed(); } @Override public void onAdFailedToLoad(int i) { super.onAdFailedToLoad(i); } @Override public void onAdLeftApplication() { super.onAdLeftApplication(); isClicked = true; } @Override public void onAdOpened() { super.onAdOpened(); } @Override public void onAdLoaded() { super.onAdLoaded(); } @Override public void onAdClicked() { super.onAdClicked(); } @Override public void onAdImpression() { super.onAdImpression(); } }; 

試したので、問題があるかどうかを確認します。 – MByD

+0

質問を編集してコードを挿入しました – MimmoG

答えて

2

である私はAdWhirlのお手伝いをすることができます追加します。

私はソースを見ていると、次行っている:

public class AdWhirlLayoutCustom extends AdWhirlLayout { 

public AdWhirlLayoutCustom(Activity context, String keyAdWhirl) { 
    super(context, keyAdWhirl); 
} 

public AdWhirlLayoutCustom(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

// We intercept clicks 
@Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
    boolean result = super.onInterceptTouchEvent(event); 
    switch (event.getAction()) { 

    case MotionEvent.ACTION_DOWN: 
        // Click! 
     break; 
    } 

    return result; 
} 

}

+0

ありがとうございました! ;-) – MimmoG

+1

クリックイベントを傍受して広告を非表示にすると、広告のクリックに対するクレジットは得られません。そのような場合は、最初に広告を表示する目的に反することになります。 –

10

イベントをリッスンするためにAdMobのadListenerを使用してみてください。

public interface AdListener { 
    public void onReceiveAd(Ad ad); 
    public void onFailedToReceiveAd(Ad ad, AdRequest.ErrorCode error); 
    public void onPresentScreen(Ad ad); 
    public void onDismissScreen(Ad ad); 
    public void onLeaveApplication(Ad ad); 
} 

あなたのクラスがリスナーを実装し、その後adViewにリスナーを追加しておいてください。

adView.setAdListener(this); 

あなたのアプリが広告のクリックを処理した後に制御を再開した後に発生onDismissScreenイベントを実装します。この時点でAdViewを削除できます。クリックするとクレジットを獲得できます。

@Override 
public void onDismissScreen(Ad ad) { 
    if (adView != null) { 
    adView.destroy(); 
    } 
} 
0

以下の詳細をチェックするために

私はすべての答えは上記に同意するが、私はちょうど答えを拡張しています。私は次のようadView上の広告リスナーを設定今

AdView adView = (AdView)findViewById(R.id.adView); 
adView.loadAd(new AdRequest.Builder() 
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
        .addTestDevice("your device id") 
        .build()); 

以下のよう

以下のようにロード AdViewで広告を行っています。 isClickedのような1つのグローバルブール変数を取るので、ユーザーが広告をクリックしてそのページをスイッチするたびに onAdLeftApplication()メソッドが呼ばれ、その変数をtrueにします。ユーザーが広告をクリックすると、その広告ページにリダイレクトされるので、現在のアプリはonPause状態になります。ユーザーがバック onResume()メソッドが呼び出され、現在のアプリの活動に来る、だから、あるでしょう、あなたの他のものを実装したり、

@Override 
    protected void onResume() { 
     super.onResume(); 
     if (isClicked){ 
      isClicked = false; 
      // do your other stuff whatever you want; 
     } 
    }