wake-up-neo.net

Native Anzeigen in Android mit Admob implementieren? ist es möglich?

Ich versuche, native Anzeigen in meiner Android-Anwendung zu implementieren. Aber ich möchte es nur mit Admob machen. Ich habe viel nach einer Lösung gesucht, konnte aber keine genaue Lösung finden. 

Ich weiß, dass es möglich ist, MoPub zu verwenden.

Was ich wollte, ist folgendes: Anzeigen innerhalb des Listenelements anzeigen. Dies bedeutet, dass eines der Elemente ListView/RecyclerView eine Anzeige wie unter image ..__ sein kann.Image

Ich habe einige Links und Verweise gefunden, aber das erklärt nicht die korrekte Implementierung der nativen Anzeigen.

Link 1 : Native Anzeigenübersicht

Link 2 : DFP-Android-Handbücher> Targeting

Link 3 : DFP-Kurzanleitung

Wenn dies mit admob nicht möglich ist, ist MoPub die beste Lösung für mich.

Jede Hilfe und Anleitung wäre hilfreich. Vielen Dank.

10
Amrut Bidri

Als Ergänzung zu diesem Thread können Sie NativeAds für Admob jetzt ganz einfach implementieren, indem Sie der von Google bereitgestellten Anleitung mit NativeExpressAdView folgen. Weitere Informationen finden Sie in der Google-Dokumentation: https://firebase.google.com/docs/admob/Android/native-express?hl=de

3
Houcine

Vor kurzem blieb ich bei der gleichen Frage. Dann entschied ich mich, meine Lösung dafür auf admobadapter zu posten. Ich hoffe es wird dir helfen.

Die basic use könnte folgendermaßen aussehen:

    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();
    }

Und das Ergebnis sieht wie folgt aus

 enter image description here

6
kot331107

Native Anzeigen sind in den Google Play-Services enthalten, zusammen mit den übrigen DFP/AdMob-Anzeigen. Stellen Sie sicher, dass in Ihrem build.gradle die folgenden Abhängigkeiten aufgeführt sind (beachten Sie, dass 7.5.0 die höchste Version zum Zeitpunkt der Veröffentlichung ist).

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

Dann können Sie native Anzeigen anzeigen

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();

Klicken Sie hier für eine vollständige Dokumentation.

5
James McCracken

Versuchen Sie es mit einem anderen Anzeigennetzwerk, bei dem verschiedene Arten von nativen Anzeigen bereitgestellt werden. Entwickler können die Anzeigen anpassen, wo sie platziert und verwendet werden. Zum Beispiel: Wenn Sie alle 15 Zeilen Anzeigen in der zweiten Zelle platzieren müssen, können Sie dies wie folgt verwenden.

Avocarrot liefert das.

 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. 

Hier ist Dokumentation Hier werden List-Anzeigen und Feed-Anzeigen bereitgestellt.

5
Shadow

Das Tooleap Ads SDK bietet eine einfache Möglichkeit, die nativen Anzeigen von Admob zu implementieren. 

Anstatt dass Sie den traditionellen listView-Adapter verwenden müssen, um die Anzeige in Ihrem Content zu zeigen, zeigen sie Admob-Anzeigen als kleine schwebende Blase an. Wenn Sie darauf drücken, können Sie die vollständige native Anzeige sehen.

Hier ein Beispiel für die Verwendung ihres SDKs in Ihrer activity-Klasse:

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

Sie können sie hier auschecken.

enter image description here enter image description here

2
Danny

Nun, dieser Thread ist wahrscheinlich veraltet. Ab Mai 2015 unterstützt AdMob jedoch native Anzeigen (noch in der Beta-Phase).

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

Es steht auch nur einer begrenzten Anzahl von Entwicklern zum Beta-Stadium zur Verfügung.

1
Anshu Dwibhashi
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"
                />

// In Ihrer Java-Klassendatei

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

Fügen Sie diesen Code Ihrem Listview-Adapter hinzu 

       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());

Nehmen Sie einige Änderungen am listview Adapter vor und Sie erhalten die populateAppInstallAdView () -Methode über den Link unten

In diesem Beispiel wird alles behandelt, bitte gehen Sie durch https://github.com/googleads/googleads-mobile-Android-examples/tree/master/admob

1
arun

Ja, es ist möglich, dass Sie den Code in der XML-Datei verwenden können

<com.google.Android.gms.ads.NativeExpressAdView
                    Android:id="@+id/adView"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_centerHorizontal="true"
                    Android:layout_alignParentBottom="true"
                    ads:adSize="320x300"
                    ads:adUnitId="@string/ad_unit_id">

mAdView.setVideoOptions(new VideoOptions.Builder()
    .setStartMuted(true)
    .build());
mVideoController = mAdView.getVideoController();
mVideoController.setVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks() {
@Override
public void onVideoEnd() {
    Log.d(LOG_TAG, "Video playback is finished.");
    super.onVideoEnd();
}
});


mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
    if (mVideoController.hasVideoContent()) {
        Log.d(LOG_TAG, "Received an ad that contains a video asset.");
    } else {
        Log.d(LOG_TAG, "Received an ad that does not contain a video asset.");
    }
}
});

mAdView.loadAd(new AdRequest.Builder().build());
0
Sunil Kumar

Es ist momentan auf ausgewählte Verlage beschränkt. Sie müssen sich zur Umsetzung an einen Google-Kontomanager in Ihrer Region wenden.

0
user6128114