标签: native-ads

React Native中的原生广告

如何在React Native中实现AdMob的原生广告?我发现的最好的是react-native-admob,但它只能修复横幅和全屏插页式广告.如何我的React Native应用中使用AdMob或任何其他原生广告提供商实施原生广告?

admob react-native native-ads

16
推荐指数
1
解决办法
8222
查看次数

在Android中的WebView内容中显示原生广告?

我想知道如何在每次随机位置的webview内容中显示原生广告.假设我在webview中加载静态html页面.当用户阅读页面原生广告的内容出现在内容中时,是否可以在随机位置显示本地内部webview html页面.

android admob android-webview native-ads

15
推荐指数
1
解决办法
1479
查看次数

Facebook NativeAdsManager在RecyclerView中出现内存不足异常

我正在创建一个NativeAdsManager在a中使用的应用程序RecyclerView.当我加载广告时,我发现内存不足异常.这是我初始化的地方NativeAdsManager:

NativeAdsManager manager = new NativeAdsManager(MainActivity.this,PLACEMENT_ID,5);
manager.setListener(MainActivity.this); 
manager.loadAds(NativeAd.MediaCacheFlag.ALL);
Run Code Online (Sandbox Code Playgroud)

当我收到错误时,这是​​我的日志:

07-07 16:44:37.513 14833-15332/com.example.fbads E/dalvikvm-heap: Out of memory on a 1324560-byte allocation.
07-07 16:44:37.528 14833-15332/com.example.fbads E/k: Error downloading image: https://external.xx.fbcdn.net/safe_image.php?d=AQAUgFkrAP5pYhO4&w=796&h=416&url=http%3A%2F%2Fwww.facebook.com%2Fads%2Fimage%2F%3Fd%3DAQJm1ZveY2ilC4oqvu3Hf63USTwVITC5XBV-qrlWjCWeNgKXrAn5SBB9J6cFyDL0sqpnMWqMDehXuXprwbAKycgE-kskX1q8_jpYlyB4sfhCxSRpHM_5n9ZA8-xhlcZ-VxlRs9DT4i5qeLy6kEZxOSQG&cfs=1&ext=jpg
java.lang.OutOfMemoryError
 at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
 at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:620)
 at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:596)
 at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:376)
 at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:402)
 at com.facebook.ads.internal.util.m.a(Unknown Source)
 at com.facebook.ads.internal.util.k.b(Unknown Source)
 at com.facebook.ads.internal.util.k.doInBackground(Unknown Source)
 at android.os.AsyncTask$2.call(AsyncTask.java:288)
 at java.util.concurrent.FutureTask.run(FutureTask.java:237)
 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
 at java.lang.Thread.run(Thread.java:841)
Run Code Online (Sandbox Code Playgroud)

出现这种情况的原因是什么?有关如何解决此问题的任何建议?

android facebook android-recyclerview native-ads

11
推荐指数
0
解决办法
525
查看次数

Google Ads MediaView在显示图片时未正确调整高度以适应wrap_content

我今天收到了来自AdMob的电子邮件说:

更改为原生广告政策:原生广告需要MediaView才能呈现视频或主要图片资源.为了帮助您更轻松地提供更好的广告体验,从10月29日开始,原生广告将要求MediaView呈现视频或主要图片资源.不符合此日期的广告单元将停止投放广告,这可能会影响您的广告收入.

我在我的Android应用程序中尝试了这一点,删除了单独的图像处理ImageView和视频MediaView,但我发现MediaView没有根据显示的图像高度调整视图的高度.

在Google的这个代码示例示例中,使用了固定的高度和宽度MediaView.我无法做到这一点,因为此屏幕响应屏幕大小,这将根据设备而变化.可以动态调整图像大小的事实是使用UnifiedNativeAds而不是使用横幅等预定义广告的主要好处之一.

这就是我需要显示的方法MediaView,match_parent用于宽度和wrap_content高度.

<com.google.android.gms.ads.formats.MediaView
            android:id="@+id/ad_media"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:scaleType="fitXY"/>
Run Code Online (Sandbox Code Playgroud)

这是我目前从上面的代码得到的

这就是我所需要的,并期望它看起来像使用 wrap_content

在之前的情况下,我们可以使用ImageView单独渲染图像,该wrap_content值正确地调整了图像的大小.

有人有解决方法吗?如何在没有硬编码MediaView高度的情况下遵循新的Google要求?

我完整的代码可以发现在这里,在GitHub上我的演示应用程序.

android admob google-dfp native-ads mediaview

10
推荐指数
1
解决办法
1414
查看次数

Android共享存储保护问题

我已经按照原生广告中的说明实施了Google原生广告

除Android 4.x版本外,它在所有设备上均可完美运行。崩溃日志控制台是

Non-fatal Exception: java.lang.IllegalArgumentException: Optimized data directory /storage/emulated/0/Android/data/com.myapp/cache is not owned by the current user. Shared storage cannot protect your application from code injection attacks.
       at dalvik.system.DexFile.(DexFile.java:100)
       at dalvik.system.DexFile.loadDex + 149(DexFile.java:149)
       at dalvik.system.DexPathList.loadDexFile + 251(DexPathList.java:251)
       at dalvik.system.DexPathList.makeDexElements + 219(DexPathList.java:219)
       at dalvik.system.DexPathList.(DexPathList.java:96)
       at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:56)
       at dalvik.system.DexClassLoader.(DexClassLoader.java:57)
       at ir.b + 31(ir.java:31)
       at ir.a + 5(ir.java:5)
       at iu.a + 1(iu.java:1)
       at com.google.android.gms.ads.internal.ag.run + 5(ag.java:5)
       at java.util.concurrent.ThreadPoolExecutor.runWorker + 1080(ThreadPoolExecutor.java:1080)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run + 573(ThreadPoolExecutor.java:573)
       at java.lang.Thread.run + 856(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)

在崩溃上方,它显示为优化数据目录 /storage/emulated/0/Android/data/com.myapp/cache不属于当前用户。共享存储无法保护您的应用程序免受代码注入攻击 …

android admob native-ads

10
推荐指数
1
解决办法
202
查看次数

如何在 GridView.builder 内部的内容之间显示 AdMob 原生广告?

我有一个壁纸应用程序,它在主屏幕中显示来自 Firestore 的图片,我正在使用flutter_native_admob包来显示本机,并且广告工作正常。

我已经尝试过使用staggered_grid_view包,但它没有用,每次我将 StaggeredGridTile 中的值从 1 更改为 2 以显示原生广告而不是网格时,包都会中断,即使我设置了一个数字以在 x 张图片后显示广告,它显示在错误的地方滚动。

我需要什么:

例子

class HomeScreen extends StatefulWidget {

  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {

  final nativeAdmob = NativeAdmob();
  int counter = 0;
  double result;
  int num = 4;


  @override
  Widget build(BuildContext context) {

    Widget _buildGrid(int index){


      return Container(
        color: Colors.green,
        child: Center(
          child: Text("$index"),
        ),
      );

      /*

    // I need to show this widget between the content
    NativeAdmobBannerView(
      adUnitID: "ca-app-pub-3940256099942544/2247696110", // …
Run Code Online (Sandbox Code Playgroud)

gridview admob dart flutter native-ads

9
推荐指数
1
解决办法
1928
查看次数

以编程方式创建Admob原生广告

我正在尝试以编程方式从Admob设置原生广告,但此处提供的官方指南几乎没有相关文档.我认为我接近解决方案,但我没有看到如何设置它的单位大小.

文件说:

在以编程方式为NativeExpressAdView创建AdSize时,发布者还可以使用FULL_WIDTH常量.

问题是这个FULL_WIDTH单元AdSize不像其他可用的单元,它只返回一个整数.

这是我现在得到的:

mAdmobNativeExpressAdview = new NativeExpressAdView(this);
mAdmobNativeExpressAdview.setAdUnitId(getString(R.string.mediation_native_id));
mAdmobNativeExpressAdview.setAdSize(AdSize.FULL_WIDTH);
Run Code Online (Sandbox Code Playgroud)

但是最后一行无法实现,因为setAdSize期待一个AdSize对象.

还有另一种设置此属性的方法吗?

android admob native-ads

7
推荐指数
1
解决办法
7523
查看次数

NativeAdsExpress强制RecyclerView滚动以在首次加载时使NativeAd完全可见

我有一个奇怪的"问题",或者可能是一个"功能",我只是不知道,只要在我的RecyclerView中加载NativeAdExpress,如果只有部分NativeAd可见,它会强制RecyclerView滚动直到原生广告变得完全可见,这种行为导致列表在我滚动时继续跳跃.

我的布局主要是:

具有Tabs和ViewPager的Activity> AppBar> Pager中的每个页面都包含PullToRefresh,里面有一个RecyclerView,RecyclerView有两种类型的项目(Article和NativeAdExpress).

更新:我猜测为什么会发生这种情况主要是因为原生广告在webview中表达渲染,并且这个webview获得焦点然后这会导致RecyclerView滚动到它,但这只是一个猜测

更新2:显然这是支持库中的一个问题.24.0.0,这太过于up2date的成本:(

Heres是我的完整XML /布局

<?xml version="1.0" encoding="utf-8"?>
<my.package.custom.views.CustomDrawerLayout
    android:id="@+id/drawer_layout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:openDrawer="end">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        style="@style/AlertDialog.AppCompat.Light"
        fontPath="fonts/fonts/DroidKufi-Regular.ttf"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:fitsSystemWindows="true"
        app:elevation="5px"
        app:headerLayout="@layout/nav_header"
        app:itemIconTint="@color/colorPrimary"
        app:itemTextColor="@color/contentColor"
        app:actionLayout="@layout/nav_item_layout"
        app:menu="@menu/drawer_menu"
        app:theme="@style/NavDrawerStyle"
        tools:openDrawer="end"
        />

</my.package.custom.views.CustomDrawerLayout>
Run Code Online (Sandbox Code Playgroud)

其中"app_bar_main.xml"如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".ui.activities.ArticlesListActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="end">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="52dp"
            android:background="?attr/colorPrimary"
            android:gravity="end"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:paddingEnd="14dp"
                android:paddingStart="14dp">

                <android.support.v7.widget.AppCompatImageButton
                    android:id="@+id/ivCustomDrawable"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true" …
Run Code Online (Sandbox Code Playgroud)

android admob android-recyclerview native-ads

7
推荐指数
1
解决办法
1134
查看次数

如何通过Jetpack compose展示原生广告?

我一直在寻找有关如何在撰写时显示原生广告的示例应用程序,但我找不到。有什么解决办法吗?

admob native-ads android-jetpack-compose

7
推荐指数
1
解决办法
3332
查看次数

Admob 原生广告中的可点击区域

我想了解 admob 原生广告政策。

他们在政策中说

确保空白(或背景图像)不可点击。

  • 只有广告标题、URL、CTA 和非背景图像资源应该是可点击的。
  • 检查您不打算放置的文本周围是否有额外的空白。
  • 用于显示原生广告资源的 TextView 与其他资源相同,因此您可以使用正常的布局技术来格式化它们。

例如,您可以使用wrap_content属性值来确保您的TextView不会扩展超出显示文本所需的大小。

https://support.google.com/admob/answer/6240814?hl=zh-CN&ref_topic=7384666

我想确定哪些元素是可点击的?哪些元素不可点击?

在此输入图像描述

我的想法是什么?我认为...

1:不可点击

2:可点击

3:可点击

4:可点击

5:可点击

6:不可点击-现实:这里有问题!Admob 未通过其政策中的评级,但可在其自定义 .xib 文件中单击。

只有广告标题、URL、CTA 和非背景图像资源应该是可点击的。

7:不可点击-现实:这里有问题!Admob 不会在其策略中传递正文,但可以在其自定义 .xib 文件中单击正文。

只有广告标题、URL、CTA 和非背景图像资源应该是可点击的。

8:可点击

你怎么认为?我对吗?根据 Admob 政策,评级或正文是否可点击?

请按照以下格式回答我的问题:

1: CLICKABLE or NOT CLICKABLE
2: CLICKABLE or NOT CLICKABLE
3: CLICKABLE or NOT CLICKABLE
4: CLICKABLE or NOT CLICKABLE
5: CLICKABLE or NOT CLICKABLE
6: CLICKABLE or NOT CLICKABLE
7: CLICKABLE or …
Run Code Online (Sandbox Code Playgroud)

android admob ios flutter native-ads

7
推荐指数
1
解决办法
1404
查看次数