Flet flet-ads PrecisionType 详解:广告付费价值精度枚举的语义与实战用法
前端跨平台桌面应用移动开发【免费下载链接】fletBuild realtime web, mobile and desktop apps in Python only. No frontend experience required.项目地址https://gitcode.com/gh_mirrors/fl/flet点击查看免费下载导读PrecisionType是 Flet 官方扩展包 flet-ads基于 Google AdMob 的 Flutter 移动端广告插件中用于描述广告付费价值报告精度的枚举类型。它在广告的on_paid付费事件中与金额、货币代码一同回传给开发者用于判断 SDK 报告的每次展示收益到底有多可信。读完本文你将掌握PrecisionType全部四个枚举值的语义、它在PaidAdEvent与BannerAd.on_paid回调中的调用链路以及如何在 Flet 移动端应用中基于精度值做收益统计与对账。PrecisionType 是什么在 types.py 中PrecisionType被定义为继承自Enum的普通枚举class PrecisionType(Enum): Describes how accurately a paid ad value is reported. UNKNOWN unknown An ad value with unknown precision. ESTIMATED estimated An ad value estimated from aggregated data. PUBLISHER_PROVIDED publisherProvided A publisher-provided ad value, such as manual CPMs in a mediation group. PRECISE precise The precise value paid for this ad.它只有一个文档字符串级别的说明描述一个广告付费价值被报告的准确程度。也就是说它本身不携带金额而是给金额打标签回答这样一个问题SDK 报给我的这条收益数字到底有多精确从源码结构看PrecisionType的取值直接对齐 AdMob/Google Mobile Ads 原生 SDK 对onPaidEvent中precision参数的定义PrecisionType枚举与 google_mobile_ads Flutter 包同名flet-ads 的 Flutter 侧实现直接复用了该类型详见下文调用链路一节。四个枚举值的完整语义枚举成员字符串值含义典型场景UNKNOWNunknown精度未知的广告价值广告平台未提供任何精度信息时ESTIMATEDestimated由聚合数据估算出的广告价值基于历史数据、市场均价估算的收益PUBLISHER_PROVIDEDpublisherProvided发布商自己提供的广告价值例如在聚合平台mediation group中手工配置的 CPMPRECISEprecise本次广告实际支付的精确价值实时竞价/精确结算数据判断精度高低的核心规律是PRECISE是最可信的结算级数据ESTIMATED是估算值PUBLISHER_PROVIDED是人工配置值UNKNOWN无法确定。如果你的业务需要用广告收益做财务对账只有PRECISE应当进入精确账目ESTIMATED与PUBLISHER_PROVIDED适合做趋势分析或粗略预估。PrecisionType 的载体PaidAdEventPrecisionType并不是孤立存在的它的实际使用场景是on_paid付费事件。在 types.py 中定义了承载该事件的PaidAdEvent数据类dataclass class PaidAdEvent(ft.Event[ft.EventControlType]): value: float # 本次广告的货币金额 precision: PrecisionType # 该金额的精度 currency_code: str # 金额的货币代码如 USD三个字段的职责非常清晰valuefloat本次广告的货币价值。注意 Flutter 侧上报时单位是微单位micros即1_000_000微单位等于 1 个货币单位换算时需要注意precisionPrecisionType描述value的准确程度currency_codestrISO 4217 货币代码如USD、EUR用于正确解读金额。PaidAdEvent从ft.Event派生因此它符合 Flet 的事件回调约定——事件处理器可以拿到携带这些字段的事件对象。事件处理器on_paid 与精度使用PrecisionType通过on_paid事件处理器暴露给开发者。在 banner_ad.py 中on_paid: Optional[ft.ControlEventHandler[PaidAdEvent[BannerAd]]] None Called when this ad is estimated to have earned money. Available for allowlisted accounts only. 两点关键信息适用范围on_paid挂在BannerAd上原生广告NativeAd继承自BannerAd同样具备该能力但注释明确标注Available for allowlisted accounts only仅对白名单账户开放。也就是说不是所有 AdMob 账户都能收到付费事件需要 Google 审核/白名单授权这一点在接入时务必注意触发时机当广告被估算为产生收益时触发——这个措辞与ESTIMATED枚举值的语义完全呼应事件本身不保证金额是结算级的具体可信度要靠precision字段判断。在事件回调中读取精度在 Flet 应用中最典型的使用方式是在on_paid回调中读取e.data并解析PrecisionTypeimport flet as ft import flet_ads as fta def main(page: ft.Page): def on_paid(e: ft.Event[fta.PaidAdEvent[fta.BannerAd]]): data e.data precision fta.PrecisionType(data[precision]) print(fvalue{data[value]}, precision{precision}, currency{data[currency_code]}) if precision fta.PrecisionType.PRECISE: # 仅对精确值记账用于财务对账 pass page.add( fta.BannerAd( unit_idca-app-pub-3940256099942544/9214589741, # Android 测试 ID width320, height50, on_paidon_paid, ) ) ft.run(main)参考仓库中的完整示例 banner_ad_and_interstitial_ad/main.py可以看到BannerAd其它生命周期回调on_load、on_error、on_open、on_close、on_impression、on_click、on_will_dismiss与on_paid的并列使用方式。调用链路从 Flutter 到 Python 的精度传递PrecisionType虽然定义在 Python 侧但它的数据来源是 Flutter 的 google_mobile_ads 插件。flet-ads 的 Flutter 实现 banner.dart 中onPaidEvent: (ad, double valueMicros, PrecisionType precision, String currencyCode) { widget.control.triggerEvent(paid, { value: valueMicros, precision: precision.name, currency_code: currencyCode }); },链路可以概括为AdMob 原生 SDK 通过 google_mobile_ads 插件触发onPaidEvent携带valueMicros、PrecisionType precision、currencyCode三个参数Flutter 侧将precision.name即枚举成员的字符串值如precise与金额、货币代码一起通过triggerEvent(paid, ...)序列化回传给 Python 侧Python 侧PaidAdEvent数据类接收这三个字段precision字段被反序列化为PrecisionType枚举成员。注意precision.name对应 Python 枚举成员名如UNKNOWN、ESTIMATED、PUBLISHER_PROVIDED、PRECISE因此事件数据中的precision键值是成员名而非__all__中可见的字符串值。使用前提与平台限制PrecisionType所服务的on_paid事件仅在满足以下条件时才有意义仅限移动端flet-ads 只支持 Android 与 iOS见 README.md 的平台支持表格Windows/macOS/Linux/Web 均不支持。在 base_ad.py 的before_update中非移动平台会直接抛出FletUnsupportedPlatformException需要有效广告单元 IDBaseAd.unit_id是必填字段。开发调试时可用 AdMob 官方测试 IDAndroid 横幅广告ca-app-pub-3940256099942544/9214589741iOS 横幅广告ca-app-pub-3940256099942544/2435281174见 banner_ad.py生产环境必须替换为真实 ID账户白名单on_paid仅对 AdMob 白名单账户开放普通账户即使代码正确也可能收不到付费事件。小结PrecisionType是 flet-ads 中体积最小但语义最精炼的类型之一四个枚举值UNKNOWN、ESTIMATED、PUBLISHER_PROVIDED、PRECISE定义了广告付费价值精度的全部可能状态。它随PaidAdEvent通过BannerAd.on_paid事件回传从 Flutter 原生层一路传递到 Python 层是开发者判断广告收益数据可信度的唯一依据。接入时只需记住先确认账户在白名单内再在on_paid回调中读取precision字段并据此决定收益数据的用途精确记账还是趋势预估。赞分享前端跨平台桌面应用移动开发【免费下载链接】fletBuild realtime web, mobile and desktop apps in Python only. No frontend experience required.项目地址https://gitcode.com/gh_mirrors/fl/flet点击查看免费下载相关推荐OmX 项目 Wiki 知识层实战指南为 Agent 构建可提交、可检索的 Markdown 知识库OmX 项目 Wiki 知识层实战指南为 Agent 构建可提交、可检索的 Markdown 知识库 导读 OmXOh My codeX为 Agent 会前端跨平台桌面应用移动开发PyPTO VF 枚举类型全解析MaskPattern、MergeMode、LoadDist 等 18 个枚举的语义与实战用法PyPTO VF 枚举类型全解析MaskPattern、MergeMode、LoadDist 等 18 个枚举的语义与实战用法 导读 PyPTOParall人工智能编译器模型编译高性能计算深度学习CANNflet-ads 从 0.1.0 到 0.86.0在 Flet 移动应用中集成 Google Ads 与 UMP 用户同意管理flet ads 从 0.1.0 到 0.86.0在 Flet 移动应用中集成 Google Ads 与 UMP 用户同意管理 flet ads 是 Flet前端跨平台桌面应用移动开发上一篇MAA自动化助手明日方舟代肝日常一键跑完公招、基建与打本下一篇League Akari英雄联盟本地效率工具自动选人、战绩分析、日常自动化一键托管创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

3条命令备份你的QQ空间全部说说:GetQzonehistory完整使用指南

3条命令备份你的QQ空间全部说说:GetQzonehistory完整使用指南

3条命令备份你的QQ空间全部说说:GetQzonehistory完整使用指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory QQ空间的历史消息列表只能翻到一定深度,五六年前的…

2026/9/21 22:52:50 阅读更多 →
周棋洛原理详解:新手避坑指南,面试不再卡壳

周棋洛原理详解:新手避坑指南,面试不再卡壳

周棋洛原理详解:新手避坑指南,面试不再卡壳 面试时被问“周棋洛”相关原理,90%的人脑子一片空白。别慌,这不是玄学,是典型的“背了概念没看源码”导致的断层。今天这篇干货,专为 新手避坑…

2026/9/21 22:51:50 阅读更多 →
搞定qq攻击性能优化,这3个面试坑你必须填

搞定qq攻击性能优化,这3个面试坑你必须填

搞定qq攻击性能优化,这3个面试坑你必须填 配置环境就卡半天?别急,这通常是底层网络层没吃透。 很多后端兄弟在准备面试时,对 qq攻击 这类安全场景下的 性能优化 总是含糊其辞。 面试官问得细,你答得虚,直接挂掉,这很冤。…

2026/9/21 22:51:50 阅读更多 →

最新新闻

石察卡图解原理:3个核心考点拆解版本升级痛点

石察卡图解原理:3个核心考点拆解版本升级痛点

石察卡图解原理:3个核心考点拆解版本升级痛点 版本升级后 API 全变了,石察卡图解原理能救命。 别再对着报错日志发呆,大厂面试最爱问这个。 用图解原理看透石察卡,面试直接拿高分。 考点梳理:为什么石察卡成为高频面试题…

2026/9/22 2:27:22 阅读更多 →
应的繁体字避坑指南:3步搞定环境配置完整示例

应的繁体字避坑指南:3步搞定环境配置完整示例

应的繁体字避坑指南:3步搞定环境配置完整示例 配置环境就卡半天,这种痛谁懂?很多开发者在搭建项目时,因为一个不起眼的字符编码问题,导致依赖安装失败、构建报错,甚至前端页面出现乱码。今天要解决的核心痛点,就是“应的繁体字”这一类特殊字符在不同…

2026/9/22 2:27:21 阅读更多 →
成都入户性能优化源码解析:3步解决报错堆积

成都入户性能优化源码解析:3步解决报错堆积

成都入户性能优化源码解析:3步解决报错堆积 盯着屏幕上一长串红色的 StackTrace,心里那个慌啊。每一行调用栈都像天书,尤其是当业务逻辑嵌套了七八层,报错信息指向某个陌生的类名时,根本不知道从哪下手。很多刚接触后端开发的兄弟,面对这种…

2026/9/22 2:27:21 阅读更多 →
剑三抓马插件性能优化实战:3个底层原理让你面试不再卡壳

剑三抓马插件性能优化实战:3个底层原理让你面试不再卡壳

剑三抓马插件性能优化实战:3个底层原理让你面试不再卡壳 面试被问原理答不上来,是无数转岗开发者的噩梦。当你还在纠结业务逻辑时,面试官却盯着底层实现追问细节,这种落差感让人窒息。今天不讲虚的,直接拆解【剑三抓马插件】在【性能优化】上的底层逻辑…

2026/9/22 2:27:21 阅读更多 →
文字扫描识别软件面试避坑:3个核心考点助你搞定性能优化

文字扫描识别软件面试避坑:3个核心考点助你搞定性能优化

文字扫描识别软件面试避坑:3个核心考点助你搞定性能优化 很多开发者学了 OCR 基础语法,却卡在“怎么把识别准确率提到 99% 以上”这一步。别慌,这正是面试大厂时最容易被问到的 性能优化…

2026/9/22 2:26:20 阅读更多 →
车架号查询车辆信息实战:5种后端方案对比与最佳实践

车架号查询车辆信息实战:5种后端方案对比与最佳实践

车架号查询车辆信息实战:5种后端方案对比与最佳实践 学会语法却不知怎么搭项目?这是很多开发者从教程走向生产环境时最大的拦路虎。尤其是面对像 车架号查询车辆信息 这种典型的高频业务场景,很多人只会写 SELECT * FROM cars…

2026/9/22 2:26:20 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →