Управление идентификатором издателя Admob из центрального места с несколькими местами размещения рекламы - PullRequest
0 голосов
/ 06 мая 2011

Итак, с новым google-admob SDK для Android правильный способ размещения баннерной рекламы в макете, например, выглядит следующим образом:

<com.google.ads.AdView android:id="@+id/adView"
    android:layout_width="fill_parent"
    android:layout_gravity="bottom"
    android:layout_height="wrap_content"
    ads:adUnitId="some id"
    ads:adSize="BANNER"/>

Моя проблема заключается в том, что у меня есть несколько баннеров на различных мероприятиях икогда я по какой-то причине хочу изменить adUnitId, я не хочу прогонять этот фрагмент кода через все мои файлы макета xml.Я хочу иметь одно место, где я определяю свой adUnitId, который используют все рекламные баннеры в приложении.Это было возможно в предыдущем SDK с поддержкой только привязок, установив метаданные в файле манифеста.И я не хочу размещать AdView в коде Java, хочу, чтобы он был в xml, если это возможно, с новым SDK.Я пробовал что-то вроде этого:

ads:adUnitId="@string/admob_id"

, но я вижу это как строку, как я вижу, не следуя фактической строке, определенной в strings.xml.Есть идеи?

1 Ответ

1 голос
/ 06 мая 2011

С последним обновлением admob я был вынужден выполнять большинство моих действий с AdMob в своих классах Java. Вот как я это сделал (с централизованным идентификатором):

ad = new AdView(this, AdSize.BANNER, UtilClass.AD_PUBLISHER_ID); //Ad is the global AdView
LinearLayout layout = (LinearLayout) findViewById(R.id.main_admob_layout);

Редактировать: я сохраняю определение LinearLayout в файлах xml, поэтому все позиционирование выполняется по всему XML:

<LinearLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:gravity="bottom" android:weightSum="0"
    android:layout_alignParentBottom="true" android:id="@+id/main_admob_layout">
...