Поместить нативную рекламу AdMob в список

Я хотел бы использовать новую встроенную функциональность AdMob в своем приложении. Я хочу поместить нативное объявление в listView, где каждый 20-й элемент в списке является рекламой. Можно ли добиться этого с помощью рекламы Native Express? Или я должен использовать расширенную рекламу Natve?

4 ответа

Ну @Jagjit показал правильный подход. Я напишу это шаг за шагом
1. Создайте свой собственный адаптер (расширяя BaseAdapter), которые будут показаны как элементы списка
2. Создайте другой файл ресурсов макета для показа нативной рекламы (дизайн должен быть похож на пользовательский адаптер, созданный на предыдущем шаге)
3. В getView метод сделать что-то следующим образом (для показа рекламы на 2-й позиции)

if (position == 1) {
    rowView = inflater.inflate(R.layout.native_ad_adapter, null);
    NativeExpressAdView adView = (NativeExpressAdView)rowView.findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);
} else {
    rowView = inflater.inflate(R.layout.my_custom_list, null);
    TextView bigtxt = (TextView) rowView.findViewById(R.id.txt1);
    ...
    ...
}

Здесь ваш пользовательский адаптер my_custom_list
Вы увидите, что реклама загружается. Но есть небольшая проблема, фактический элемент списка в позиции 1 не будет показан.
4. Для этого добавьте дополнительный элемент в список перед заполнением ListView, я использовал ArrayList так что я мог бы сделать это легко. Мой подход заключается в следующем

arrayList1.add(1,"ad here");
listview1.setAdapter(new MyAdapter(callerView.getContext(), arrayList1.toArray(new String[arrayList1.size()])));

Я думаю, что Admobadapter lib - это то, что вы ищете... он оборачивает ваш адаптер, чтобы автоматически извлекать и показывать рекламные блоки в каждом элементе X вашего списка или повторного просмотра. Вы просто делаете это следующим образом: 1. Установите упаковщик подходящего типа (в основном это 4 упаковщика - для просмотра списка, для просмотра переработчика, чтобы показать расширенные объявления и 2 для экспресс-рекламы) 2. Вставьте ваш адаптер в оболочку 3. Внедрить Оболочка для просмотра списка / повторного просмотра 4. Заполните ваш адаптер вашими данными, поднимите onDataSetChanged(), тогда обертка сделает все сам.

Кроме того, он поддерживает экспресс-объявления и расширенные нативные объявления. В соответствии с этой проблемой они собираются добавить поддержку Maven/Gradle в ближайшее время. Удачи!

Подход заключается в расширении BaseAdapter и создании собственного настраиваемого адаптера вместо использования ArrayAdapter по умолчанию. Затем вам нужно вернуть просмотр "Реклама" вместо обычного обычного просмотра, когда вы хотите показывать рекламу. Это означает, что вам нужно переопределить getCount(), чтобы вернуть больше строк (например, если у вас есть 10 строк, это означает, что вам нужно вернуть 11 = 10 фактического контента + 1 объявление)

Затем вам нужно решить, в какой позиции создать этот вид, я думаю, вы можете сделать это, просто проверив переменную позиции:

if (position == VALUE) {
   // Create and return Ad View 
} else {
   // Create and return a normal View 
}

Надеюсь, поможет. Я нашел это как лучшее пока еще надеюсь найти лучший оптимизированный способ для этого

Вам нужно создать свой собственный вид списка и пользовательский адаптер.

  1. Создайте представление прокрутки и LinearLayout как ребенок
  2. Создайте свой шаблон как макет XML, который будет обрабатывать ваш контент
  3. Создайте класс, который будет в Inflat your Layout to The LinearLayout в ScrollView, Как это:

    private static void CreateIntemEmptty(Context context, ViewGroup view) {
        LayoutInflater inflater = (LayoutInflater) Home.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View child = inflater.inflate(R.layout.empty, null);
        ViewGroup Prnt =(ViewGroup)view.getParent().getParent();
        Prnt.removeViewInLayout((View)view.getParent());
        ViewGroup.LayoutParams p =new ViewGroup.LayoutParams(Prnt.getWidth(),Prnt.getHeight());
        Prnt.addView(child,p);
    }
    

    в этом коде я создаю пустой элемент и добавляю его

  4. Вы можете добавить объявления в LinearLayout как ребенок.

Другие вопросы по тегам