我有一个我在多个活动中使用的布局。 我想在所有这些广告中展示adMob adView。 如果我做对了,我需要每个活动的ID。 我尝试从onCreate中的每个活动中的代码更改adUnitId,但它表示需要在加载前设置adUnitId。
我的布局adView:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adUnitId="@string/view_album_banner_ad_unit_id"
ads:adSize="BANNER"
>
我的代码:
_adView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("TEST_DEVICE_ID")
.build();
_adView.setAdUnitId(getResources().getString(R.string.view_album_banner_ad_unit_id));
_adView.loadAd(adRequest);
答案 0 :(得分:0)
这是正常行为。我为此实现了一些延迟加载视图,但这是太多的开销。只需按代码添加广告即可。如果要在正确的位置插入问题,请使用ViewStub
类。你可以在充气的同时change the desired adview containing layout。
答案 1 :(得分:0)
可能几乎不需要在每个不同的活动中使用不同的adUnitId。如果所有人都在同一个应用程序中,我不会担心它。
但如果这是库代码并且活动在不同的应用程序中,那么只需通过String变量更改adUnitId。