You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中advertising_id包为何返回全零Google广告ID?

问题分析与解决办法

为什么返回全零广告ID?

以下是常见的几种原因:

  • 设备广告跟踪限制开启:如果设备开启了「限制广告跟踪」,系统会直接返回全零ID,这是Google的机制,不管权限是否配置正确。
  • 设备缺少Google Play服务:广告ID依赖Google Play服务,若使用的模拟器没有搭载Google Play(比如纯Android镜像),或者物理设备的Google Play服务未正常更新,都会导致获取失败。
  • 包配置或版本问题:advertising_id包的版本过旧,或者项目中Google Play服务的依赖存在冲突,也可能引发这个问题。

Flutter中可行的获取方式

先排查基础问题

  1. 检查设备设置:打开设备「设置」→「隐私」→「广告」,关闭「限制广告跟踪」选项,重启应用后重试。
  2. 更换测试环境:使用搭载Google Play的模拟器镜像(比如Pixel系列API 30+带Google Play的版本),或用正常安装Google Play服务的物理设备测试。
  3. 更新依赖:在pubspec.yaml中确保advertising_id使用最新稳定版,执行flutter pub get后重新构建项目。

官方替代方案(推荐)

如果advertising_id包仍有问题,建议使用Google官方的google_mobile_ads包,步骤如下:

  1. 在pubspec.yaml中添加依赖:
dependencies:
  google_mobile_ads: ^2.4.0 # 替换为最新稳定版
  1. 初始化并获取广告ID:
import 'package:google_mobile_ads/google_mobile_ads.dart';

Future<String?> getAdvertisingId() async {
  await MobileAds.instance.initialize();
  final info = await AdvertisingIdInfo.load();
  return info.id;
}
  1. 同样需要在AndroidManifest.xml中添加权限:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

内容的提问来源于stack exchange,提问作者Vitalii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 13:47:18