Реализация собственных объявлений в android с помощью Admob? возможно ли это?

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

Я знаю, что это возможно, используя MoPub.

что я хотел сделать это: Показать объявления внутри элемента списка, что означает один из ListView/RecyclerView элемент может быть одним объявлением, как показано ниже. Image

Я нашел несколько ссылок, но это не объясните правильную реализацию нативных объявлений.

ссылка 1: обзор родных объявлений

Ссылка 2: DFP Android руководства > таргетинг

Ссылка 3: DFP краткое руководство

Если это невозможно сделать с помощью admob,MoPub - это лучшее решение для меня сейчас.

любая помощь будет полезна. спасибо.

9 ответов


в дополнение к этой теме, Теперь вы можете реализовать NativeAds для Admob очень легко, следуя руководству, предоставленному Google с помощью NativeExpressAdView . Дополнительные сведения см. В документации google : https://firebase.google.com/docs/admob/android/native-express?hl=en


попробуйте использовать некоторые другие рекламные сети, где он предоставляет различные типы собственных объявлений. Разработчики могут настроить объявления, где разместить и использовать его. Например: если вам нужно разместить рекламу во второй ячейке каждые 15 строк,вы можете использовать это.

Avocarrot предусматривает, что.

 AvocarrotInstream myAd = new AvocarrotInstream(<yourListAdapter>);
  myAd.initWithKey( "<your API Key>" );
  myAd.setSandbox(true);
  myAd.setLogger(true ,"ALL"); 

// Populate with In-Stream ads
 myAd.loadAdForPlacement(this,  "<your Placement Name>" );
// Bind the adapter to your list view component
<yourListView>.setAdapter(myAd);// here you are integrating ads to listview
 myAd.setFrequency(2,15); // every 15 cells starting from the 2nd cell. 

здесь документация он предоставляет список объявлений и подача объявлений.


недавно я задал тот же вопрос. Затем я решил опубликовать свое решение для этого admobadapter. Надеюсь, это поможет вам.

на основное использование может выглядеть так:

    ListView lvMessages;
    AdmobAdapterWrapper adapterWrapper;    

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

    /**
     * Inits an adapter with items, wrapping your adapter with a {@link AdmobAdapterWrapper} and setting the listview to this wrapper
     * FIRST OF ALL Please notice that the following code will work on a real devices but emulator!
     */
    private void initListViewItems() {
        lvMessages = (ListView) findViewById(R.id.lvMessages);

        //creating your adapter, it could be a custom adapter as well
        ArrayAdapter<String> adapter  = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1);

        adapterWrapper = new AdmobAdapterWrapper(this);
        adapterWrapper.setAdapter(adapter); //wrapping your adapter with a AdmobAdapterWrapper.
        //here you can use the following string to set your custom layouts for a different types of native ads
        //adapterWrapper.setInstallAdsLayoutId(R.layout.your_installad_layout);
        //adapterWrapper.setcontentAdsLayoutId(R.layout.your_installad_layout);

        //Sets the max count of ad blocks per dataset, by default it equals to 3 (according to the Admob's policies and rules)
        adapterWrapper.setLimitOfAds(3);

        //Sets the number of your data items between ad blocks, by default it equals to 10.
        //You should set it according to the Admob's policies and rules which says not to
        //display more than one ad block at the visible part of the screen,
        // so you should choose this parameter carefully and according to your item's height and screen resolution of a target devices
        adapterWrapper.setNoOfDataBetweenAds(10);

        //It's a test admob ID. Please replace it with a real one only when you will be ready to deploy your product to the Release!
        //Otherwise your Admob account could be banned
        //String admobUnitId = getResources().getString(R.string.banner_admob_unit_id);
        //adapterWrapper.setAdmobReleaseUnitId(admobUnitId);

        lvMessages.setAdapter(adapterWrapper); // setting an AdmobAdapterWrapper to a ListView

        //preparing the collection of data
        final String sItem = "item #";
        ArrayList<String> lst = new ArrayList<String>(100);
        for(int i=1;i<=100;i++)
            lst.add(sItem.concat(Integer.toString(i)));

        //adding a collection of data to your adapter and rising the data set changed event
        adapter.addAll(lst);
        adapter.notifyDataSetChanged();
    }

и результат будет выглядеть следующим образом

enter image description here


собственные объявления включены в сервисы Google Play вместе с остальной рекламой DFP/AdMob. Убедитесь, что в вашем build.gradle (обратите внимание, что 7.5.0 является самой высокой версией на момент публикации).

compile "com.google.android.gms:play-services-base:7.5.0"
compile "com.google.android.gms:play-services-ads:7.5.0"

тогда вы можете отображать родные объявления

AdLoader adLoader = new AdLoader.Builder(context, "/6499/example/native")
    .forAppInstallAd(new OnAppInstallAdLoadedListener() {
        @Override
        public void onAppInstallAdLoaded(NativeAppInstallAd appInstallAd) {
            // Show the app install ad.
        }
    })
    .forContentAd(new OnContentAdLoadedListener() {
        @Override
        public void onContentAdLoaded(NativeContentAd contentAd) {
            // Show the content ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(int errorCode) {
            // Handle the failure by logging, altering the UI, etc.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Нажмите здесь для получения полной документации.


добавление в микс Tooleap Ads SDK обеспечивает простой способ реализации собственных объявлений Admob.

вместо того, чтобы требовать от вас использовать традиционный адаптер listView и показывать рекламу внутри вас, они показывают AdMob native ads как небольшой плавающий пузырь. При нажатии на него вы можете увидеть полное собственное объявление.

вот пример использования их SDK внутри вашего activity класс:

BubbleImageAd = new BubbleImageAd(this);
bubbleImageAd.setAdUnitId("YOUR_AD_UNIT_ID");
bubbleImageAd.loadAndShowAd(this);

Вы можете проверить их здесь.

enter image description hereenter image description here


Ну, этот поток, вероятно, устарел. Но начиная с мая 2015 года, и на данный момент AdMob поддерживает собственные объявления (все еще в бета-версии).

https://support.google.com/admob/answer/6239795

также он доступен только ограниченному числу разработчиков из бета-стадии.


добавьте этот код в адаптер Listview

       builder.forAppInstallAd(new NativeAppInstallAd.OnAppInstallAdLoadedListener() {
            @Override
            public void onAppInstallAdLoaded(NativeAppInstallAd ad) {
                FrameLayout frameLayout =
                        (FrameLayout) findViewById(R.id.fl_adplaceholder);
                NativeAppInstallAdView adView = (NativeAppInstallAdView) getLayoutInflater()
                        .inflate(R.layout.ad_app_install, null);
                populateAppInstallAdView(ad, adView);
                frameLayout.removeAllViews();
                frameLayout.addView(adView);
            }
        });

       AdLoader adLoader = builder.withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(int errorCode) {
            Toast.makeText(MainActivity.this, "Failed to load native ad: "
                    + errorCode, Toast.LENGTH_SHORT).show();
        }
      }).build();

        adLoader.loadAd(new AdRequest.Builder().build());

внесите некоторые изменения в адаптер listview, и вы получите метод populateAppInstallAdView() из ссылки

все описано в этом примере, пожалуйста, пройдите через это https://github.com/googleads/googleads-mobile-android-examples/tree/master/admob


Admob in your android these are the codes needed. 
    <com.google.android.gms.ads.AdView
              android:layout_alignParentBottom="true"
                xmlns:ads="http://schemas.android.com/apk/res-auto"
                android:id="@+id/adView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                ads:adSize="SMART_BANNER"
                ads:adUnitId="ca-app-pub-4549020480017205/6066702579"
                />

//в вашем файле класса java

     AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

на данный момент он ограничен выбранными издателями. Для реализации вам необходимо связаться с менеджером аккаунта Google в вашем регионе.