2017-02-07 13 views
0

私のアプリにadmob広告を使用しています。私はアンドロイドスタジオからadmobの活動としてデフォルトの活動を取って、その後私はadunit idを変更しました。私はエミュレータで実行したとき、それは広告を表示していたが、私は実際のデバイスで同じコードを実行していたが、何も表示されていなかった、空白の画面が表示されていた。私はAPKを実行するためにsamsung J7とsamsung duosを使用しています。何も表示されなかった、私はさまざまな方法を検索したが、間違っていたものを見つけることができません。ここに私のコードです。 これは私のXMLファイルです。ここでリアルアンドロイドデバイスにAdmob広告が表示されない

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

<!-- view for AdMob Banner Ad --> 
<com.google.android.gms.ads.AdView 

    android:id="@+id/adView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    ads:adSize="BANNER" 
    ads:adUnitId="@string/banner_ad_unit_id" 
    /> 

アクティビティクラス。

public class MainActivity extends AppCompatActivity { 
// Remove the below line after defining your own ad unit ID. 
private static final String TOAST_TEXT = "Test ads are being shown. " 
     + "To show live ads, replace the ad unit ID in res/values/strings.xml with your own ad unit ID."; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // Load an ad into the AdMob banner view. 
    AdView adView = (AdView) findViewById(R.id.adView); 
    AdRequest adRequest = new AdRequest.Builder() 
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
      .addTestDevice("ca-app-pub-3940256099942544/6300978111") 
      .setRequestAgent("android_studio:ad_template").build(); 
    adView.loadAd(adRequest); 

    // Toasts the test ad message on the screen. Remove this after defining your own ad unit ID. 
    Toast.makeText(this, TOAST_TEXT, Toast.LENGTH_LONG).show(); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

} 

カスタマイズされたライブ広告を表示するために変更する必要があるもの。

答えて

1

問題
そのため、あなたがエミュレータでAdView(バナー)を示すことができ、AdRequest.DEVICE_ID_EMULATORを追加しましたが、あなたはあなたの本当のデバイスIDに追加されません。

ca-app-pub-3940256099942544/6300978111広告ユニットIDないデバイスIDです。

ソリューション
https://firebase.google.com/docs/admob/android/targeting

あなたの本当のデバイスIDは、リンクを参照してください追加します。

+0

Idはエミュレータと実際のデバイスのために違うのです "setContentUrl()ターゲットの目的のためにコンテンツのURLを設定しますか"? –

+0

@ UmashankarBはいidは両方とも異なります。テスト広告をリクエストする必要があるデバイスごとにテストデバイスIDを追加することを忘れないでください。デバイスIDはモバイル広告SDKによってシステムログに書き込まれるため、アプリを実行してlogcatを確認することで、端末のIDを見つけることができます。 – dipali

+0

ライブ広告(カスタム広告)にはどのIDが必要ですか、少し混乱してください。 –

0

@ Ethan-Choiの回答は、元の質問に答えているため、受け入れ済みとマークする必要があります。私はAdMobの中で独自のアドオンを作成しましたが、私はその広告を表示することができません」

:私はその答えにコメントするのに十分な評判ポイントを持っていませんが、2番目の質問に応じて、OPはイーサン・崔さんのコメント@で尋ねました実際の デバイス、ディスプレイ自身の広告」

それは解決策がある可能性がありますするための手順は何ですか:AdRequest.Builder().setContentUrl(String contentUrl)、contentUrlは、カスタム広告のURLです。下記参照ごとの通り:

https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest.Builder

関連する問題