Android AdSense. Не вижу рекламу в приложении
У меня проблема с AdSence. Я пытался решить эту проблему последние пару дней, но безрезультатно. Я использовал руководство разработчика, но оно все еще пусто на месте баннера.
Что я делаю в приложении. Прежде всего, я добавил объект TableRow и добавил к нему AdView:
banner = new TableRow(engine);
banner.setGravity(Gravity.TOP & Gravity.RIGHT);
adView = new AdView(engine, AdSize.BANNER, "a14def8xxxxxxxx");
banner.addView(adView);
AdRequest request = new AdRequest();
adView.loadAd(request);
После этого я просто добавил этот объект "баннер" в другой вид. В конце - там нет выхода. В случае, если я изменил AdView на TextView, просто для подтверждения концепции, он работает нормально.
Выходной журнал:
06-13 18: 04: 38.476: ИНФОРМАЦИЯ / Объявления (576): URL полученного объявления: <"url": "http: //r.admob.com: 80 / ad_source.php?...>06-13 18: 04: 40.406: ИНФОРМАЦИЯ / Объявления (576): onReceiveAd()
Единственная странная вещь для меня в журнале:
06-13 18: 04: 40.336: WARN / webcore (576): невозможно получить viewWidth после первого макета
Я не нашел, что это значит, и это из-за AdSence.
Обновить
У меня есть класс:
public class QuestEngine extends Activity {
Затем я пытаюсь создать новый AdView в методе:
public IntroView(QuestEngine engine) {
Вот почему в "новом AdView" я использую движок объекта.
2 ответа
Измените новое объявление AdView на:
adView = new AdView(this, AdSize.BANNER, "a14def820df0417");
Объект engine не содержит контекст для своих размеров. Размеры строки таблицы находятся в контексте действия "this"
Хорошо, если вы устанавливаете свой adView
с помощью xml/layout file
затем сделайте, как указано ниже:
В вашем activity.xml
файл вставьте следующий тег, где вы хотите, чтобы ваш AdView
быть показано:-
<com.google.ads.doubleclick.DfpAdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="/XXXXX/XXXXX"
ads:adSize="BANNER"
/>
И в твоем Activity.java
файл напишите этот код в вашем onCreate() Method
из Activity Life Cycle
:-
// Look up the DfpAdView as a resource and load a request.
adView = (DfpAdView)this.findViewById(R.id.adView);
adView.loadAd(new AdRequest());
Теперь, если вы хотите программно установить AdView
в своей деятельности, затем выполните шаги, как указано ниже:
Напишите следующий код в вашем onCreate() method
Я демонстрирую для Fragment
так что напишите следующий код в вашем onActivityCreated()Method
,
// Create an ad view as a second header for now to meet deadlines
DfpAdView mAdView=null; //you can also define this as a Global Variable.
if (mAdView == null) {
mAdView = new DfpAdView(getActivity(), AdSize.BANNER, "/XXXX/XXXX"); //give your adId incase of XXXX
iaddHeight= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics()); //This code is used to set the height of the addHeight as 50 pixels, which could be used in layout params.
RelativeLayout fl =new RelativeLayout(this.getActivity());
RelativeLayout.LayoutParams flParams =new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
flParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
FrameLayout.LayoutParams para =new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
para.setMargins(0, 0, 0,iaddHeight);
getListView().setLayoutParams(para);
this.getActivity().addContentView(fl, flParams);
fl.addView(mAdView,flParams);
}
mAdView.loadAd(new AdRequest());
Надеюсь, что это может помочь любым будущим пользователям...