【问题标题】:Android native ad admobAndroid 原生广告 admob
【发布时间】:2015-09-09 04:40:10
【问题描述】:

我一直在尝试从 admob 实施原生广告。

我从Github 获得了一些示例代码。我尝试实现此代码,并且演示代码运行良好。原生广告正常显示。

然后我创建了自己的 Admob 帐户并获得了Ad Unit ID。之前的原生广告演示代码不适用于此 id,我收到错误代码 0 尽管我创建的 Ad Unit ID 适用于横幅类型广告。

谁能帮帮我?

【问题讨论】:

  • 哥们,我猜我们在同一条轨道上
  • 请分享您的代码
  • 这里是来自github的课程链接@kgandroid:github.com/googleads/googleads-mobile-android-examples/blob/…
  • 好的...我看到了巨大的代码...但是 admob 非常简单。我将它集成到我的 3 个项目中并且它完美地工作..我将在这里发布代码..跨度>
  • 代码请展示广告

标签: android admob


【解决方案1】:

伙计们,我面临同样的问题,最后我有一个解决方案希望这对你们所有人都有用..:)

在此图像中,当您尝试创建 AdUnitId 时,请确保此处的 宽度和高度 与 XML 文件中的宽度和高度相同,如下所示

 <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="360x320"
  ads:adUnitId="@string/NativeAdId">
</com.google.android.gms.ads.NativeExpressAdView>

还有一件事你必须记住,你的宽度和高度 将要使广告适合您的 xml 布局,因此仅此而已 首先在您的 xml 中尝试它,然后为此创建一个 Native add。

试试吧,如果您在这样做后会遇到任何问题,请随时告诉我。谢谢

【讨论】:

    【解决方案2】:

    试试下面的代码:

    XML 文件:

     <com.google.android.gms.ads.AdView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_alignParentBottom="true"
            android:id="@+id/adView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            ads:adSize="BANNER"
            ads:adUnitId="ca-app-pub-xxxxxxxxx" /> 
    

    .java 类:

    AdView adView = (AdView) this.findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder()
            // Add a test device to show Test Ads
            //.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            //.addTestDevice("B2D638A0BEECBE3464024D83BE163E0E")
            .build();
            // Load ads into Banner Ads
            adView.loadAd(adRequest);
    

    确保打开注释行:

    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    .addTestDevice("B2D638A0BEECBE3464024D83BE163E0E")
    

    当您处于调试模式时。在调试模式下点击真实广告可能会导致阻止您的 Admob 帐户。您将获得 testDevice id你的日志猫,用我的替换它。

    在 manifest.xml 中定义以下内容

    <activity
                android:name="com.google.android.gms.ads.AdActivity"
                android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
                android:theme="@android:style/Theme.Translucent" />
    

    还有权限

    <uses-permission android:name="android.permission.INTERNET" />
    

    你准备好了。

    **注意:**如果广告没有显示,请等待至少 30 分钟。

    【讨论】:

    【解决方案3】:

    最近我遇到了同样的问题。然后我决定将我的解决方案发布到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();
        }
    

    结果看起来像this

    【讨论】:

    • 我已经实现了相同的代码并设置了 adapterWrapper.setAdmobReleaseUnitId(admobUnitId);广告正在展示,但在对 admobUnitId 应用过滤器后,在 admob -> Monetize -> AdMob Network 报告上显示 Network Request 0 Matched Request 0 Impressions 0
    • @KNOWME 请说明您使用的是高级广告还是快速广告?
    【解决方案4】:

    当我第一次从我新创建的 admob 帐户实施 admob 时,我的帐户花了 2 天时间才终于收到广告,所以不用担心,请稍等...如果您的帐户不是新创建的,请查看您是否添加了这个权限与否

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    

    【讨论】:

    • 我也这样做了,但没有成功。我再次想提一下它的原生广告而不是横幅广告。我什至不确定 Google 是否已经在 admob 中发布了对原生广告的支持。
    • OK 做一件事,只是为了测试的目的,问问你的朋友谁有 admod 帐户 n 已经使用了一段时间。拿一个他们的 AdMob id n 看看你是否收到广告。没关系是什么类型的广告
    猜你喜欢
    • 1970-01-01
    • 2021-06-09
    • 2018-05-12
    • 2018-07-09
    • 2020-07-11
    • 2016-10-29
    • 1970-01-01
    • 2020-12-17
    • 2016-10-24
    相关资源
    最近更新 更多