Flutter: 谷歌原生广告集成到 Flutter 小部件树中

创建于 2017-09-15  ·  133评论  ·  资料来源: flutter/flutter

此评论讨论了我们正在考虑解决此问题的不同方式,并提供了指向更具体问题的链接,这些问题涵盖了解决此问题的具体步骤: https ://github.com/flutter/flutter/issues/12114#issuecomment -505633342
我们今天正在研究其中的一些。 有关详细信息,请参阅各个错误。


Firebase (AdMob) 和 Facebook 都支持“原生广告”格式:

原生广告与应用内容内联呈现,呈现和格式(颜色、字体)由应用本身控制。

P3 crowd firebase firebase_admob passed first triage plugin new feature transferred

最有用的评论

再次重新激活。 #8098 仅限于跟踪横幅和插页式支持。

如果对 Admob 原生广告的支持对您很重要,请考虑通过单击此错误最顶部评论中的“竖起大拇指”来对此进行“投票”。

所有133条评论

拥有 DFP 支持不是更好吗? 是否允许我们集成更广泛的产品,包括内部横幅、Ad Exchange/AdSense 以及原生/流动广告?

感谢您的反馈意见! 能否将我们链接到 DFP?

我认为@gcshri的意思是DFP广告管理系统,有趣的是以前称为DART 😄

完整的循环!

2017 年 10 月 12 日星期四 11:34 Eugenio Marletti [email protected]
写道:

我认为@gcshri https://github.com/gcshri意味着 DoubleClick for
发布者 https://en.wikipedia.org/wiki/DoubleClick_for_Publishers ,
有趣的是以前称为DART 😄


您收到此消息是因为您编写了该主题。
直接回复此邮件,在 GitHub 上查看
https://github.com/flutter/flutter/issues/12114#issuecomment-336227022
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAAVZzZFhnb80PxDhsBj6k_30sbrs7qXks5srlu6gaJpZM4PZQgi
.

是的。 避免使用 Dart,因为我一直认为它是来自双击商店的某种脚本语言。 但说真的,与 DFP 的集成将为我们中的一些依赖 Google 和其他来源的广告收入的人打开 Flutter。

谢谢。 如果您可以为与 DFP 相关的 API 添加一些链接,我们(和社区)可以查看要求是什么。

这可能是相关的链接。

https://developers.google.com/doubleclick-publishers/docs/clients

大多数发布者将在网络上使用 javascript 实现或
在 HTML5 / 混合应用程序上。

Git回购:

https://github.com/googleads

再次重新激活。 #8098 仅限于跟踪横幅和插页式支持。

如果对 Admob 原生广告的支持对您很重要,请考虑通过单击此错误最顶部评论中的“竖起大拇指”来对此进行“投票”。

如果没有 Admob 方面的一些工作,这甚至可能吗? 我的意思是 Flutter 使用自定义绘制的控件,而原生广告使用原生控件。

一般来说,这个问题是我当前项目中使用 Flutter 的主要障碍,因为我不知道什么时候可以使用原生广告以及是否可以使用。

这将是一个很好的补充,原生广告可以与应用程序的内容内联显示。

这方面有什么进展吗?

我们(社区)真的需要这个。 这方面有什么进展吗?

甚至 Unity 游戏(和应用)也可以展示原生广告: https ://developers.google.com/admob/unity/custom-native

同意,确实需要此功能。 有点雄心勃勃,但我们能把它带入 1.0 里程碑或更早的阶段吗? 抄送@mit-mit

抱歉,我们没有可以为此功能提供的时间表。

如果它不能作为颤振小部件完成,我们(即我)是否可以考虑编辑代码的 kotlin / swift 版本并与它们一起使用移动广告 sdk? 不太清楚 Flutter 是如何工作的,但我认为既然它允许挂钩到本机 API,这应该是可能的吗?

如果开发人员能够使用 AdMob 软件包并使用指导方针和某种形式的批准来定位它,那将是惊人的——在我看来,来自用户和开发人员。

任何进展?

这方面的任何进展。 这个东西是非常需要的。

此功能是否需要对颤振引擎进行核心更改?

这个有计划发布吗?

我也想知道是否有计划发布或任何消息。 我很想在即将到来的项目中使用 Flutter,但原生广告至关重要。 我不想在我的应用程序底部出现丑陋的横幅......

一样。 一个好看的应用程序需要原生广告。

等这个东西好久了:'(

喜欢这个最受欢迎的功能吗? 不维护其他相关的第 3 方包。 所以这是唯一的希望。

我是一名学生,想通过我的申请赚取一些钱,但默认的广告类型太突兀了。 我真的希望能尽快解决这个问题。

我在我的项目中使用 rxDart 包,并从服务器获取数据作为流,添加 firebase_admob 并在应用程序中显示广告,但是当横幅上的广告发生变化时,我的流会自动启动。 为什么这样?

看起来很有希望.. https://github.com/YoussefKababe/admob_flutter

@Purus - 除了缺乏 iOS 和 AndroidX 支持之外,还有什么其他原因阻止您使用上述插件? 考虑到那里最近的事态发展,我相信后者应该很快得到解决......

@theneshofficial - https://pub.dartlang.org/packages/flutter_google_ad_manager支持原生广告吗?

我们的应用有一个插件,可以成功实施原生广告 (AdMob)。 我们通过 AndroidViews 和 UIKitViews 实现了它。 遗憾的是,AdMob SDK 强制您将广告嵌入到 UnifiedNativeAd 中,因此您无法将广告数据发送到 Flutter。 这也是为什么为此编写 Flutter 插件并不容易。 相反,我们本质上是在 Dart 中生成大部分 UI,然后在 Android/iOS 本身中创建所有文本、图像等,然后将其覆盖到 Flutter UI 上。 这是可行的,尽管由于必须为两个平台构建布局,这当然不是可取的。 尽管如此,广告显示良好,可以点击等。

然而,对我们来说有两个大障碍,UIKitViews 的状态和一般的性能。 对于前者,可以在#25965 中看到,UIKitViews 目前不能被裁剪。 这意味着它们会通过某些 UI 元素出现故障,例如TabBar 。 对于后者,问题在于嵌入平台视图会影响我们的 UI 性能。 我们竭尽全力将性能影响降至最低,以至于我们不再有任何方法通道用于此插件(我们曾经能够跟踪广告何时加载,但该调用与故障直接相关在 UI 性能方面)。 尽管如此,特别是在启动时,有大量与创建这些平台视图之一相关的卡顿。 加载指示器和动画通常会停止大约一秒钟。 在那之后,这种性能影响会变小,但由于我们希望将广告嵌入到列表中,因此在滚动时我们无法保持 60 FPS(性能分析器显示每帧最多约 100 毫秒)。

这是 Java 代码的一个小示例。 iOS 端确实是一回事。

    private UnifiedNativeAd mAd;
    private FrameLayout mView;

    FlutterAdView(Context context, Registrar registrar, int id) {
        mView = ... // Create a placeholder view

        // request an ad
    }

    <strong i="9">@Override</strong>
    public View getView() {
        return mView;
    }

    <strong i="10">@Override</strong>
    public void onUnifiedNativeAdLoaded(final UnifiedNativeAd unifiedNativeAd) {
        mAd = unifiedNativeAd;

        /* Inflate your layout
        /* ...
        */

        /* Set your views
        /* ...
        */

        adView.setNativeAd(ad);

        mView.addView(adView);
    }

    // Don't forget about dispose, etc


@JaspervanRiet - 伙计,你基本上剥离了主要的 Flutter 专业人士 - 跨平台,同时实施原生广告。 我认为在您的情况下使用 Flutter 没有意义。 你会看看https://github.com/YoussefKababe/admob_flutter看看这种方法是否会让你回到 Flutter 领域?

@angel1st这些是横幅广告,以几乎完全相同的方式实施。 我们需要原生广告。 我们仍然在应用程序的每个其他部分使用 Flutter 的功能,所以你的回复对我来说毫无意义。 这是广告 SDK 中的一个限制,我无法想象这种情况会很快改变,除非由于使用 UnifiedNativeAd 的限制而发布了 Flutter 的官方广告 SDK。

我们@dreamsoftin已经为 Flutter 实现了Facebook Audience Network (https://github.com/dreamsoftin/facebook_audience_network)。 目前该插件仅适用于 Android,它支持横幅、插页式、奖励视频、流内视频和原生广告。 我正在寻找可以帮助我们实现 iOS 部分的人。

原生广告演示:

任何进展? 希望它可以与颤振一起使用

嘿伙计们,开发人员正在按顺序对最喜欢的 (👍) 问题进行优先排序,因此请继续支持该问题。 谢谢!

由于这个(原生广告),我无法更新我的颤振应用程序,如果你们能告诉我们什么时候实施它,我们可以相应地计划事情。

谢谢你。

直到有官方更新,你可以使用 admob_flutter
包 v 0.2.0。

谢谢,

普鲁索塔曼·拉马努贾姆

2019 年 5 月 13 日星期一晚上 10:03 黑巧克力, notifications @github.com
写道:

因此,我无法更新我的颤振应用程序,如果你们
可以告诉我们您什么时候实施它,我们可以计划事情
因此。

谢谢你。


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/flutter/flutter/issues/12114?email_source=notifications&email_token=AAIHDZ245EMJ2W2HX6MIHDDPVGJ7JA5CNFSM4D3FBARKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVI3QJI#issuecomment-4918948
或使线程静音
https://github.com/notifications/unsubscribe-auth/AAIHDZYX4MEYBTZTHKDQQFDPVGJ7JANCNFSM4D3FBARA
.

admob_flutter唯一棘手的部分是缺乏 iOS 支持。 除此之外,它比这个要好得多。

@angel1st这个线程是针对原生广告的,甚至admob_flutter也不支持它。

@SachinGanesh - FAN 存在严重的 CPM 问题。

对本次讨论没有添加任何技术性的小吐槽- 对我来说,谷歌不支持其最热门的收入产品(广告)对开发人员来说是最热门的框架,这让我感到很奇怪。 力量中存在脱节。 :)

查看https://github.com/dreamsoftin/facebook_audience_network。 它支持原生广告。

@SachinGanesh是否可以在 iOS 上支持原生广告?

签到。请让这个插件更好!

我们都需要这个😁😁

此插件已更新以支持 iOS 以及显示内联 admob 广告,但尚不支持原生广告。 https://pub.dev/packages/admob_flutter

我为一家每天拥有数百万读者的大型出版商工作(_我与 Flutter 团队的不同成员交谈过,他们知道我所指的出版商_)。 我们有一个 MVP Flutter 应用程序,可以使用基本的 firebase_admob 发布,但我们正在考虑创建另一个需要DFP广告的应用程序,并且缺乏对原生广告的支持是一个障碍。 这是令人失望的,因为我们已经在 Flutter 上投入了资源,并且被许多应用程序开发人员可能最重要的方面所阻碍。 POI:我们的大多数广告合作伙伴在 WebView 中使用 HTML 视图和 JavaScript。

阅读本主题中上面的一些帖子很明显,许多人都试图以与我们自己的开发团队类似的方式解决这个问题,但这些方法不能满足广告网络的要求、他们自己的欺诈检测技术和这基本上是 Flutter 团队需要解决的问题。

我想强调的是,提升这个问题非常重要,因为它最终会影响 Flutter 在广告是重要收入渠道的企业中的采用。

我们需要展示的广告示例包括与以下类似的广告:
https://vimeo.com/186510665

更新:

一些进一步的背景,当使用 Teads 测试我们的示例时,会显示广告并播放嵌入的视频,但是日志显示正确的可见性跟踪存在问题:
Teads: W/teads#Visibility(17978): The Teads AdView is visible at 0%, hidded by 1 View(s): W/teads#Visibility(17978): - View of class io.flutter.plugin.platform.SingleViewPresentation$FakeWindowViewGroup, with id: -1, with contentDescription: null, with a size of: [width: 1050, height: 875] is hidding 100% of the ad

查看https://github.com/dreamsoftin/facebook_audience_network。 它支持原生广告。

@SachinGanesh是否可以在 iOS 上支持原生广告?

是的。 使用 UiKitView 小部件是可能的。 但是facebook_audience_network中尚未实现 iOS 的原生广告

我与@nodinosaur 合作,补充一点,我们有一个即将推出的项目,它对 Flutter 非常有用,但 DFP / 广告上的任何移动都意味着没有 Flutter。

我是我国最大的社交网络的创始人,拥有 1500 万活跃用户。 我决定迁移到 Flutter,当我完成应用程序时,我意识到我无法通过它获利。 我不会用横幅和插页式广告破坏用户体验。 原生 ADS 是当今必备的应用程序,因为它允许您在不激进的情况下通过它获利。
失去了 4 个月的工作,我要回到 Swift + Kotlin。

@jonataslaw感谢您的反馈。 原生 DFP 广告有效。 一些像 Teads 这样的发布者使用他们自己的可见性检测代码。 我相信我已经解决了这个问题。

相关代码为https://github.com/flutter/engine/blob/master/shell/platform/android/io/flutter/plugin/platform/SingleViewPresentation.java

如代码顶部所述:

/*
 * A presentation used for hosting a single Android view in a virtual display.
 *
 * This presentation overrides the WindowManager's addView/removeView/updateViewLayout methods, such that views added
 * directly to the WindowManager are added as part of the presentation's view hierarchy (to fakeWindowViewGroup).
 *
 * The view hierarchy for the presentation is as following:
 *
 *          rootView
 *         /         \
 *        /           \
 *       /             \
 *   container       state.fakeWindowViewGroup
 *      |
 *   EmbeddedView
 */

这个fakeWindowViewGroup被放置在EmbeddedView的顶部,尽管它的透明 Teads 至少认为它覆盖了整个视图。 fakeWindowViewGroup是必需的,以便在添加弹出菜单和面板时它们位于本机视图上方。

然而,这实际上可以稍微不同地实现。 fakeWindowViewGroup中的第一个视图应该是container 。 这使得fakeWindowViewGroup成为父级而不是兄弟级。 然后,WindowManager 的addView / removeView /etc 回调可以像现在一样添加和删除视图,这会将视图的“置于” EmbeddedView的“顶部”,因为那是Android中的标准绘图顺序。 解决fakeWindowViewGroup兄弟姐妹掩盖EmbeddedView的问题。

/cc @amirh

我已经测试了我自己的本地嵌入式视图代码,只是为了测试。

private void findAndHideFakeWindowManagerViewGroup()
{
    final ViewGroup parent = (ViewGroup) ((ViewGroup) getParent()).getParent();
    parent.getChildAt(1).setVisibility(View.INVISIBLE);
}

这解决了这个问题。 因此,如果将平台SingleViewPresentation.java调整为像我之前的评论建议的那样工作,它将解决问题。

__这不是解决方案..这是一种解决方法。 如果您的嵌入视图试图显示对话框或弹出菜单,或全屏视图。 使用上述代码时不会显示。 请等待 PR 合并到__

附加的 PR 应该可以解决 Android 上的问题。 我不知道iOS上是否存在同样的问题。 我目前无法构建引擎来测试它,因此需要有人运行构建。 如果团队可以直接执行此操作,我们就可以根据本地广告 SDK 验证自定义引擎构建,以验证修复工作。

此功能是否有任何进展或我们可以期待的时间表?

@RaresMihalcea它设置为未来里程碑(截止日期为 2033 年 1 月 1 日),考虑到此功能的重要性,这有点令人不安。 我怀疑缺少对原生 admob 广告的支持对于许多开发人员来说是一个改变游戏规则的东西。

达到了我们不得不告诉客户“我们可以做你需要的一切,Flutter 很棒,但我们不能在 iOS 上做原生广告”的地步。 感觉很疯狂,当它对一些进入这个框架的人来说是一个交易破坏者时,这并没有被认为是一件大事。 谷歌请!

签到。有任何更新吗?

所以我一直在寻找可以用于我的项目的替代技术栈,这些技术栈必须有原生广告。
我发现它们都不支持 react-native 和 ionic 或现实的时间表。
难道原生广告只针对原生技术ba dum tss
不幸的是,我似乎必须学习 Kotlin 并下载一个 Mac OS VM 才能真正从事我的宠物项目,因为我已经厌倦了几个月无法启动它。

PS,如果有人知道 Ionic 或 React-Native 的模块,它实际上允许使用原生广告,我将非常感激!

尽管原生广告是理想的,看到原生 admob 广告即使对于原生应用程序开发仍处于测试阶段,同时我很高兴他们能在他们的 firebase_admob 插件中解决这个问题,该插件具有以下限制:

“横幅广告的定位功能有限。它们可以定位在屏幕的顶部或底部,以及与边缘有逻辑像素偏移的位置。”

如果他们至少可以解决这个问题,我们都可以以“原生”方式展示广告,用户可以滚动浏览它们等。

我知道还有其他插件试图解决这个问题,但它们有问题,尤其是对于 iOS。 如果是名为“firebase_admob”的颤振支持插件的一部分,那就太好了。

Flutter 很棒,但我不会等到 2033 年 1 月 1 日才有原生广告。 好笑,真的好笑,都2019年了,能有这么相关的角色,要等孙子出生了(2033年可能连“安卓”都没有,“IOS”技术每十年更新一次) 有原生广告。

感谢大家提供您的反馈。

此线程中讨论了多个功能和潜在的解决方案,我将其拆分为多个问题以更好地了解社区需求,请对您关心的问题竖起大拇指。

通过将特定于平台的原生广告 UI 作为小部件树的一部分嵌入来支持原生广告高级

本期使用的“原生广告”一词是指一种名为“原生广告”的特定 AdMob 广告格式,目前仅面向有限的应用开发者(发布商)提供。 原生广告格式允许开发人员自定义广告的呈现方式(通过为广告构建自己的 Android/iOS 视图)。

这里讨论的功能意味着应用程序开发人员将使用 Android/iOS UI 组件(不是 Flutter 小部件)来配置广告的呈现方式,并且原生广告稍后将嵌入到平台呈现的 Flutter 小部件树中。

这就是我们在当前问题中跟踪的内容。

在 Flutter 小部件树中嵌入AdMob 横幅广告

本期讨论的另一个功能是能够将AdMob 横幅广告嵌入到 Flutter 小部件树的一部分中(与 firebase_admob 插件当前采用的方法是将横幅广告覆盖在 Flutter UI 顶部的方法相比)预设位置)。

这在https://github.com/flutter/flutter/issues/35081中进行了跟踪,如果您对此感兴趣,请竖起大拇指。

通过在 Flutter UI 之上覆盖特定于平台的原生广告 UI 来支持Native Ads Advanced

这将提供与 firebase_admob 插件中当前的横幅支持大致相同的功能,但带有原生广告(例如,原生广告出现在固定位置,漂浮在整个 Flutter UI 上)。

虽然能够嵌入原生广告显然是更好的选择,但这种类似于当前横幅支持的“浮动”方法在更短的时间内是合理的预期。

如果此选项对您有帮助,请将您的拇指添加到https://github.com/flutter/flutter/issues/35082

使用 Flutter 渲染支持高级原生广告

这意味着您将使用 Flutter 小部件来呈现原生广告,类似于为原生 Android/iOS 开发时的做法。

请注意,此选项可能是最难实现的,并且在未来仍然很遥远。

这在https://github.com/flutter/flutter/issues/35083中进行了跟踪

尽管原生广告是理想的,看到原生 admob 广告即使对于原生应用程序开发仍处于测试阶段,同时我很高兴他们能在他们的 firebase_admob 插件中解决这个问题,该插件具有以下限制:

“横幅广告的定位功能有限。它们可以定位在屏幕的顶部或底部,以及与边缘有逻辑像素偏移的位置。”

如果他们至少可以解决这个问题,我们都可以以“原生”方式展示广告,用户可以滚动浏览它们等。

我知道还有其他插件试图解决这个问题,但它们有问题,尤其是对于 iOS。 如果是名为“firebase_admob”的颤振支持插件的一部分,那就太好了。

@matte5031我尝试使用 Android 测试广告“ https://pub.dev/packages/admob_flutter ”,到目前为止,我很高兴可以将广告添加到脚手架下方、列表视图中,并解决了我面临的大部分挑战,而不仅仅是其他颤振的 admob 插件也带有 react.js 和 Apace cordova 的技术栈。 但是,我只是在使用 AdMob 测试广告进行测试,并没有在生产中确认它。

@ashishsukhija是的,我知道 android 测试广告也对我有用,但 iOS 没有。 因此,我更希望将其包含在已经存在但缺少此 atm 的 google 维护插件中

通过将特定于平台的原生广告 UI 作为小部件树的一部分嵌入来支持原生广告高级

这在 Flutter with Platform Views ( Android View / UIKitView ) 中已经成为可能。 我们在Facebook Audience Network插件中实现了原生广告。 这也意味着任何带有原生广告的 Ad SDK 都可以轻松添加到 Flutter 应用中,并且可以在小部件树中显示。

以下是原生广告在我们的生产应用中的外观示例:
Webp net-resizeimage

@SachinGanesh您的插件仅支持 Android。 UIKitView 有很大的限制,比如不能被裁剪(#25965),在我们称之为可靠方法之前必须解决这个问题。 目前使用这种方法也存在显着的性能问题。

@JaspervanRiet是否需要剪辑原生广告 UI。 纠正我如果我错了,它将采用容器的最大宽度,对吗?

@FarmaanElahi需要剪辑不仅仅是因为剪辑实际的小部件很有用,还因为缺乏对它的支持意味着目前,UIKitViews 剪辑通过 UI 元素。 如果您将带有广告的 UIKitView 放在列表中,则该视图将通过TabBar剪辑。 这意味着对于我们的项目,它不能用作展示广告的方式。

@SachinGanesh该插件很棒,老实说,就原生广告而言,我们目前拥有的最好的插件。
我终于能够至少用它的所有元素为我的 UI 编写代码。 您能否在其 GitHub 页面上发布您希望如何改进插件的路线图? 我很好奇IOS支持什么时候出来。

请注意,由于 Flutter 的 AndroidView 和 UiKitView 依赖于对平台 UI 组件的低级操作,因此几乎可以保证它们会以移动广告工程团队未预料到且未测试的方式与 Google 移动广告 SDK 交互。 即使该方法现在看起来可以正常工作,但它也可能会遇到 MRAID 功能、广告中包含的 JS 代码以及展示和点击测量的问题。 最后一点尤为重要,因为印象和点击统计数据异常可能导致帐户被暂停。

虽然我们与相关方一起解决这些问题,但我们强烈建议使用 Flutter 团队的 firebase_admob 插件,并且不鼓励使用确实使用平台视图来嵌入 AdMob 广告的插件。

感谢@amirh <3的信息

这对于 Flutter 成为免费应用程序的可行选择是绝对必要的。

我们可以让 Admob 团队看看使用 AndroidView 和 UiKitView 是否是一个有效的解决方案? 如果不是,正如@amirh上面解释的那样,什么是替代解决方案?

@charleshan请参阅https://github.com/flutter/flutter/issues/12114#issuecomment-505633342以了解跟踪不同解决方案的问题(希望很快解决,手指交叉)。

Google Admob 经过验证的 Twitter 帐户宣布,所有开发人员都可以使用原生广告。 认为这个线程可能想知道它:)。
image

最近好吗?

感谢大家提供您的反馈。

此线程中讨论了多个功能和潜在的解决方案,我将其拆分为多个问题以更好地了解社区需求,请对您关心的问题竖起大拇指。

通过将特定于平台的原生广告 UI 作为小部件树的一部分嵌入来支持原生广告高级

本期使用的“原生广告”一词是指一种名为“原生广告”的特定 AdMob 广告格式,目前仅面向有限的应用开发者(发布商)提供。 原生广告格式允许开发人员自定义广告的呈现方式(通过为广告构建自己的 Android/iOS 视图)。

这里讨论的功能意味着应用程序开发人员将使用 Android/iOS UI 组件(不是 Flutter 小部件)来配置广告的呈现方式,并且原生广告稍后将嵌入到平台呈现的 Flutter 小部件树中。

_这是我们在当前问题中跟踪的内容。_

在 Flutter 小部件树中嵌入AdMob 横幅广告

本期讨论的另一个功能是能够将AdMob 横幅广告嵌入到 Flutter 小部件树的一部分中(与 firebase_admob 插件当前采用的方法是将横幅广告覆盖在 Flutter UI 顶部的方法相比)预设位置)。

_这在#35081中被跟踪,如果你关心这个,请点赞。_

通过在 Flutter UI 之上覆盖特定于平台的原生广告 UI 来支持Native Ads Advanced

这将提供与 firebase_admob 插件中当前的横幅支持大致相同的功能,但带有原生广告(例如,原生广告出现在固定位置,漂浮在整个 Flutter UI 上)。

虽然能够嵌入原生广告显然是更好的选择,但这种类似于当前横幅支持的“浮动”方法在更短的时间内是合理的预期。

_如果此选项对您有帮助,请将您的拇指添加到#35082。_

使用 Flutter 渲染支持高级原生广告

这意味着您将使用 Flutter 小部件来呈现原生广告,类似于为原生 Android/iOS 开发时的做法。

请注意,此选项可能是最难实现的,并且在未来仍然很遥远。

_这在 #35083_ 中被跟踪

我一直在关注这个线程一段时间,并设法错过了这个投票功能的请求。 不确定投票有多大帮助,因为这个问题在近 18 个月以来一直是投票最多的问题之一,而且我们没有任何进展的迹象。

我记得几周前有人在这里分享了这个,但看起来他/她删除了这个帖子。

这里的每个人都应该完成 Flutter 团队的季度调查: https ://twitter.com/flutterdev/status/1160961757118181378

更具体地说,这部分:
image

我记得几周前有人在这里分享了这个,但看起来他/她删除了这个帖子。

这里的每个人都应该完成 Flutter 团队的季度调查: https ://twitter.com/flutterdev/status/1160961757118181378

更具体地说,这部分:
image

调查不再有效。

有关于原生部分的消息吗?

这个问题似乎不会很快得到解决。 也许 Flutter 团队/Google 的某个人可以联系 Admob 人员,看看他们是否有什么可以做的。 我想知道原生广告如何在 Unity 中工作。
https://developers.google.com/admob/unity/custom-native

如果这不是一种选择,我们是否可以暂时考虑替代解决方案? 我们希望以非侵入性的方式通过免费应用获利,那么某种联盟计划服务(CJ 联盟)怎么样? 另外,有人推荐我们可以使用的开源广告技术吗?

@charleshan - 这似乎是一个绝好的机会。 考虑使用广告管理器和关联的 flutter_ad_manager 小部件。 您可以在其中添加一些标准横幅广告素材,并在您的应用中创建多个小部件。

所有Firebase插件都从https://github.com/flutter/plugins移动到https://github.com/FirebaseExtended/flutterfire。
这是否意味着当前问题已过时? 看来我们必须在那里打开新问题。

无论如何,我会在这里保留一个问题,因为我们可能需要更改框架/引擎来完全支持这一点。

这看起来很有希望: https://pub.dev/packages/native_ads。 我们能够让原生测试广告在 Android 上运行。 尚未在 iOS 中测试。 您需要将 native_ad_layout.xml 添加到 android/app/src/res/layout 目录并将 packageName 更改为您的 applicationId。

看起来正在取得一些进展🙌

https://github.com/FirebaseExtended/flutterfire/pull/169

@sethladd

此问题已移至https://github.com/FirebaseExtended/flutterfire/issues/968。 任何进一步的合作都将在那里进行。

由于firebase_admob问题需要在 Flutter 端和插件端进行工作,因此这些问题将在此处保持开放,直到解决。

我还需要这个来通过严重依赖用户提交数据的应用获利。 我真的需要一种非侵入性的方式来显示与内容内联的广告暴民横幅。 感谢您的努力。

几个月来我一直无法让这些工作。 我们是否知道它是否可以同时在 iOS 上运行?

对此有任何更新吗?

您好,有一个名为 native_ads 的软件包,它支持来自 google admob 的原生广告。 我还没有尝试过,但这只是一个建议。

关于native_ads和任何其他尝试使用 Flutter 的PlatformView小部件来显示广告的插件的快速警告:

虽然很高兴看到社区中的人们从事这些类型的工作,但每个人都应该意识到,仅仅在屏幕上展示广告只是任何移动广告插件工作的一部分。 除了展示之外,广告还需要跟踪展示次数、处理点击次数、处理 MRAID、AdChoices 放置、反垃圾邮件功能以及对大量信号的准确测量。

谷歌还没有针对原生广告的插件的原因是,很难做到所有这些,如果没有做到这一点,后果可能是收入损失、统计数据不准确,甚至被 AdMob 或任何其他人暂停帐户中介广告网络。

出于这个原因,我强烈建议现在坚持使用firebase_admob插件。 虽然该插件不包含原生广告,但已知支持的格式可以正确实施。

谷歌的工程师正在努力构建更好的广告集成,但它现在仍然是一个正在进行的项目。

关于native_ads和任何其他尝试使用 Flutter 的PlatformView小部件来显示广告的插件的快速警告:

虽然很高兴看到社区中的人们从事这些类型的工作,但每个人都应该意识到,仅仅在屏幕上展示广告只是任何移动广告插件工作的一部分。 除了展示之外,广告还需要跟踪展示次数、处理点击次数、处理 MRAID、AdChoices 放置、反垃圾邮件功能以及对大量信号的准确测量。

谷歌还没有针对原生广告的插件的原因是,很难做到所有这些,如果没有做到这一点,后果可能是收入损失、统计数据不准确,甚至被 AdMob 或任何其他人暂停帐户中介广告网络。

出于这个原因,我强烈建议现在坚持使用firebase_admob插件。 虽然该插件不包含原生广告,但它_does_ 支持的格式已知可以正确实施。

谷歌的工程师正在努力构建更好的广告集成,但它现在仍然是一个正在进行的项目。

好的,谢谢解释!

关于native_ads和任何其他尝试使用 Flutter 的PlatformView小部件来显示广告的插件的快速警告:

虽然很高兴看到社区中的人们从事这些类型的工作,但每个人都应该意识到,仅仅在屏幕上展示广告只是任何移动广告插件工作的一部分。 除了展示之外,广告还需要跟踪展示次数、处理点击次数、处理 MRAID、AdChoices 放置、反垃圾邮件功能以及对大量信号的准确测量。

谷歌还没有针对原生广告的插件的原因是,很难做到所有这些,如果没有做到这一点,后果可能是收入损失、统计数据不准确,甚至被 AdMob 或任何其他人暂停帐户中介广告网络。

出于这个原因,我强烈建议现在坚持使用firebase_admob插件。 虽然该插件不包含原生广告,但它_does_ 支持的格式已知可以正确实施。

谷歌的工程师正在努力构建更好的广告集成,但它现在仍然是一个正在进行的项目。

移动广告 SDK 不是负责跟踪印象、处理点击、反垃圾邮件功能和准确测量一大堆信号吗? 如果我们正在构建一个原生 android 应用程序并按照这里的说明进行操作,这有什么不同: https ://developers.google.com/admob/android/native/start

关于native_ads和任何其他尝试使用 Flutter 的PlatformView小部件来显示广告的插件的快速警告:
虽然很高兴看到社区中的人们从事这些类型的工作,但每个人都应该意识到,仅仅在屏幕上展示广告只是任何移动广告插件工作的一部分。 除了展示之外,广告还需要跟踪展示次数、处理点击次数、处理 MRAID、AdChoices 放置、反垃圾邮件功能以及对大量信号的准确测量。
谷歌还没有针对原生广告的插件的原因是,很难做到所有这些,如果没有做到这一点,后果可能是收入损失、统计数据不准确,甚至被 AdMob 或任何其他人暂停帐户中介广告网络。
出于这个原因,我强烈建议现在坚持使用firebase_admob插件。 虽然该插件不包含原生广告,但它_does_ 支持的格式已知可以正确实施。
谷歌的工程师正在努力构建更好的广告集成,但它现在仍然是一个正在进行的项目。

移动广告 SDK 不是负责跟踪印象、处理点击、反垃圾邮件功能和准确测量一大堆信号吗? 如果我们正在构建一个原生 android 应用程序并按照这里的说明进行操作,这有什么不同: https ://developers.google.com/admob/android/native/start

问题是平台视图可能有副作用,并且与直接在原生平台上查看的相同广告的行为不同。
例如,如果在特定时间段内显示观看百分比时计算广告可见度。
不是 100% 确定广告的第一个像素出现并在原生和 futter 中以相同的方式计算?

在非预期环境中使用广告可能会导致谷歌反对。 特别是它直接影响他们的商业模式。

这至少是一个灰色地带。

另一种说法是,任何为 Flutter 制作的显示移动广告的插件都必须能够保证它不会干扰广告 SDK 的工作能力,这是一件棘手的事情。 再加上开发一个可能对某人的生计负责的插件所带来的压力,您可以看到在发布之前让插件坚如磐石是多么重要。

这些都是关于第三方原生广告插件的公平点。 一旦我们从 Google 获得更好的解决方案,我们就会更新我们的应用程序。

我一直在开发一个新闻提要应用程序,我真的需要将原生广告混合到帖子中。 所以,很可能我应该使用 add-to-app 而不是插件的方法,所以列表屏幕在 Swift/Kotlin 中实现来处理广告,其余没有广告的屏幕可以在 Flutter 中实现。

我想指出, flutter_admob插件目前正在实施 Admob 政策中至少一项不鼓励的横幅广告实施。

我相信它正在实现“广告与应用内容重叠”,并且在大多数 Android 案例中,“广告夹在应用项目之间”。 您可以在此处找到相关信息。

话虽如此,我不确定最糟糕的是,如果要处于上述“灰色地带”,或者直接实施 Admob 政策页面本身中声明为“违反政策”的内容🤔

我相信我们至少应该得到一份关于当前进展的进度报告。 在这个竞争激烈的应用程序的日子里,至少跟上竞争会很棒。

屏幕上的横幅覆盖看起来_非常恶心_尤其是与漂亮的 Flutter UI/UX 搭配使用时。

除非我们有一个强大的解决方案来通过广告将应用程序货币化,否则这将是小型应用程序开发人员避开 Flutter 的一个重要原因。 制作一个轻量级应用程序作为概念证明是一回事,但没有挂钩来带来一致的广告收入,它只是一个漂亮的闪亮工具,在现实世界中的用例有限。 等待近两年才能获得优先考虑。

好像前几天加了原生广告: https ://github.com/FirebaseExtended/flutterfire/pull/169

好像几天前添加了原生广告: FirebaseExtended/flutterfire#169

他们确实添加了这个真是太好了。 干得好伙计们!
但是,您仍然不能将其放置在视图层次结构中。
据我了解,只有show方法可以从底部弹出视图作为叠加层。

我有 MainActivity.kt 而不是 MainActivity.java;

我可以使用原生广告吗? 如何?

看起来它只是Android?

看起来它只是Android?

看起来 IOS 上的原生广告也已添加https://github.com/FirebaseExtended/flutterfire/pull/2106

但是你能把它放在你的视图层次结构中吗?

似乎只有 show 方法可以从底部弹出视图作为叠加层,这使得它作为原生广告毫无用处。

我认为这就是重点,否则它同样没用。

这方面有什么进展吗?

可以确认,它现在实际上只是一个横幅广告,仅可通过 android 布局进行定制。

如果不使用平台视图,我真的不明白当前的实现如何处理广告视图的显示。

它是否在颤动视图之上显示原生的 Android 视图/iOS UIView?
为插页式广告创建新活动?

有人可以指出我在代码中的位置吗?

它将广告覆盖在颤振小部件之上。 广告不是颤振的一部分
小部件层次结构因此您将无法将其嵌入小部件中。 例子
列表视图

2020 年 4 月 30 日星期四晚上 10:32,dasebasto [email protected]写道:

我真的不明白当前的实现如何处理
广告浏览量,如果它不使用平台浏览量。

它是否在颤动视图上方显示原生 Android 视图/iOS UIView?

有人可以指出我在代码中的位置吗?


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/flutter/flutter/issues/12114#issuecomment-621980272
或退订
https://github.com/notifications/unsubscribe-auth/AESIMECDHHOREM7OCD6UC63RPGVIVANCNFSM4D3FBARA
.

如果真的是这样,那么这一切的意义何在?

原生广告最常见和最自然的位置是在列表视图中,如果这不可能,它会增加什么价值?

确切地说,重点是嵌入它们并在小部件树中自定义它们。 所以他们可以适应应用程序的风格。 从字面上看,这就是原生广告的全部意义所在。

这方面有什么进展吗?

不仅原生广告,横幅广告也应该集成到小部件树中。 在短暂使用这个小部件后,我意识到在应用程序中使用浮动横幅是多么困难。 它们会干扰应用程序、菜单、列表视图、底部对话框和 iOS 上的表面等中的许多视觉元素。它们只是不适合某些类型的应用程序。 普通的小部件横幅是我们需要的。

也可以考虑用于 Flutter Web 的 Adsense

一方面,Flutter 团队表示,他们根据收到的点赞数对问题进行优先级排序(此问题目前在整个 repo 中排名第 4),另一方面,此问题被标记为 P6,意思是“一个功能或错误我们不太可能解决”。
提供一种简单无缝的方式通过广告从移动应用中获利是任何框架的基本功能,但 Flutter 似乎并非如此。

@kf6gpe你能解释一下吗?

我会观察附在这张票上的项目。
“生态系统 - 比特币”确实包含大量用于 PlatformViews 的“东西”,这可能解释了为什么我们没有得到广告的 dart 实施。

Flutter 团队是否希望首先改进 PlatformViews(功能和性能),然后只使用原生广告 SDK 而不重写它们?

尽管如此,我们将不胜感激更多的透明度。

伙计们,我们在做什么? 就大多数人而言,这基本上是一个 cat 1 错误。 对于我的应用程序来说,它看起来像是一个完整的展示器,在阅读了一整天关于此功能如何工作 3 年以上但没有任何重大进展之后,我正在考虑其他跨平台框架。 我不认为将原生广告显示为美化横幅的能力是进步。 我们必须嵌入原生广告,或者至少能够在 Flutter 小部件上覆盖原生广告,否则根本没有动力继续使用原本很棒的平台。

我知道这不是我们想要的,它不是 Admob 原生广告,但它确实有效,因此您可能会发现它很有用。

Facebook Audience Network 原生广告有一个包,效果很好,在 Android 和 iOS 上都经过测试。

https://pub.dev/packages/facebook_audience_network

@jebwatson - 看看这个https://pub.dev/packages/admob_flutter。 关于 AdMob 和 Flutter 的实施,我目前找不到更好的选择。

我也在等这个。 我只想在我的颤动视图中显示 AdMob 横幅。 将横幅浮动在颤振应用程序的顶部是丑陋的,并且破坏了这个平台的整个目的。

我们一直在使用https://pub.dev/packages/native_ads

tidewatch

我担心这是一个灰色地带。
谷歌有可能会阻止使用不是为他们设计的广告解决方案的应用程序。

目前,第三方库用于将原生广告显示为颤振小部件树的一部分(例如:ListView)的唯一可用解决方案是分别使用AndroidViewUiKitView嵌入原生 Android 和 iOS 视图根据 Flutter Docs,这是一项昂贵的操作,应该避免,因此滚动时会出现明显的延迟。

这是否是 Flutter 团队延迟原生广告实施作为 Flutter 小部件树的一部分的原因,因为他们正在等待更好更快的方式将原生视图嵌入到 Flutter 或其他一些改进中?

但是,不依赖 Android 和 iOS 就不能完全在 Flutter/dart 中实现 admob(原生广告)吗?

迫切希望在颤振列表视图中支持原生广告。 任何关于团队何时能够在 Flutter 中使用原生广告的时间表都会有所帮助。

有很多第三方插件可以通过 AdMob 实现原生广告。 知道谷歌因小问题而禁止开发人员的恶名,我害怕使用这些解决方案。 我期待这一点的第一方实施。 请问可以给个时间线吗?

我们有一个好消息要告诉大家,今天宣布支持此功能的测试版:
支持 Flutter 中的内联横幅和原生广告格式

目前这是一个封闭测试版,但如果您准备在生产应用程序中使用此功能,我们强烈建议您申请加入。 假设一切顺利,我们计划在 2021 年初更广泛地开放它。

我们有一个好消息要告诉大家,今天宣布支持此功能的测试版:
支持 Flutter 中的内联横幅和原生广告格式

目前这是一个封闭测试版,但如果您准备在生产应用程序中使用此功能,我们强烈建议您申请加入。 假设一切顺利,我们计划在 2021 年初更广泛地开放它。

这太棒了❤️。 自从我申请测试版程序以来已经有几天了。 期待回复✨

@timsneath
我很高兴这项努力使 Flutter 应用程序易于在不依赖于 Firebase 的情况下获利

我也希望将同样的努力投入到
首先使_flutter web_ seo 友好,然后添加对 adSense 的支持
在所有颤振支持的平台之间有一些_parity_

我还申请了测试版计划。 有没有人收到回复?

此页面是否有帮助?
0 / 5 - 0 等级