{"id":19777403,"url":"https://github.com/gstory0404/flutter_universalad","last_synced_at":"2025-06-22T02:34:23.623Z","repository":{"id":41852911,"uuid":"393623066","full_name":"gstory0404/flutter_universalad","owner":"gstory0404","description":"字节跳动穿山甲广告、腾讯优量汇(广点通)聚合广告插件 Flutter版本","archived":false,"fork":false,"pushed_at":"2024-01-22T06:35:27.000Z","size":6750,"stargazers_count":39,"open_issues_count":1,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-30T19:42:10.508Z","etag":null,"topics":["flutter","flutter-ads","flutter-plugin","flutter-widget"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gstory0404.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-07T08:16:05.000Z","updated_at":"2025-03-27T12:01:16.000Z","dependencies_parsed_at":"2024-01-22T07:47:25.453Z","dependency_job_id":null,"html_url":"https://github.com/gstory0404/flutter_universalad","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gstory0404/flutter_universalad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gstory0404%2Fflutter_universalad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gstory0404%2Fflutter_universalad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gstory0404%2Fflutter_universalad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gstory0404%2Fflutter_universalad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gstory0404","download_url":"https://codeload.github.com/gstory0404/flutter_universalad/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gstory0404%2Fflutter_universalad/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261225480,"owners_count":23127150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter","flutter-ads","flutter-plugin","flutter-widget"],"created_at":"2024-11-12T05:24:46.813Z","updated_at":"2025-06-22T02:34:18.610Z","avatar_url":"https://github.com/gstory0404.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 字节跳动穿山甲广告、腾讯优量汇(广点通)聚合广告插件 Flutter版本\n\n\u003cp\u003e\n\u003ca href=\"https://pub.flutter-io.cn/packages/flutter_universalad\"\u003e\u003cimg src=https://img.shields.io/pub/v/flutter_universalad?color=orange\u003e\u003c/a\u003e\n\u003ca href=\"https://pub.flutter-io.cn/packages/flutter_universalad\"\u003e\u003cimg src=https://img.shields.io/pub/likes/flutter_universalad\u003e\u003c/a\u003e\n\u003ca href=\"https://pub.flutter-io.cn/packages/flutter_universalad\"\u003e\u003cimg src=https://img.shields.io/pub/points/flutter_universalad\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/gstory0404/flutter_universalad/commits\"\u003e\u003cimg src=https://img.shields.io/github/last-commit/gstory0404/flutter_universalad\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/gstory0404/flutter_universalad\"\u003e\u003cimg src=https://img.shields.io/github/stars/gstory0404/flutter_universalad\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\n\u003ca href=\"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027\u0026k=VhD0AZSmzvsD3fu7CeQFkzpBQHMHANb1\u0026authKey=W7JGJ0HKklyhP1jyBvbTF2Dkw0cq4UmhVSx2zXVdIm6n48Xrto%2B7%2B1n9jbkAadyF\u0026noverify=0\u0026group_code=649574038\"\u003e\u003cimg src=https://img.shields.io/badge/flutter%E4%BA%A4%E6%B5%81%E7%BE%A4-649574038-blue\u003e\u003c/a\u003e\n\u003ca href=\"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027\u0026k=9I9lyXewEsEnx0f00EOF_9hEcFmG5Bmg\u0026authKey=AJfQ8%2FhOLcoJ0p5B16EITjFav1IIs3UAerZSUsWZfa0evuklgxibHti51AYlZgI3\u0026noverify=0\u0026group_code=769626410\"\u003e\u003cimg src=https://img.shields.io/badge/flutter%E4%BA%A4%E6%B5%81%E7%BE%A42-769626410-blue\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## 📢 推荐使用新版聚合插件[GTAds](https://github.com/gstory0404/GTAds)，支持自定义广告插入\n\n## 简介\n  flutter_universalad是一款聚合字节跳动穿山甲[flutter_unionad](https://github.com/gstory0404/flutter_unionad)、腾讯优量汇(广点通)[flutter_tencentad](https://github.com/gstory0404/flutter_tencentad)的聚合广告插件,方便直接调用多个厂商广告。[体验demo](https://www.pgyer.com/j7YB)\n  \n\u003cimg src=\"https://github.com/gstory0404/flutter_universalad/blob/master/images/universalad.gif\" width=\"30%\"\u003e\n \n  \n## 文档\n\n推荐参考以下插件的文档进行插件的集成。\n\n* [flutter_unionad](https://github.com/gstory0404/flutter_unionad)\n\n* [flutter_tencentad](https://github.com/gstory0404/flutter_tencentad)\n\n## 开发环境\n```\n[✓] Flutter (Channel stable, 3.16.6, on macOS 14.2.1 23C71 darwin-x64, locale zh-Hans-CN)\n[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)\n[✓] Xcode - develop for iOS and macOS (Xcode 15.2)\n[✓] Chrome - develop for the web\n[✓] Android Studio (version 2022.1)\n[✓] Android Studio (version 2023.1)\n[✓] IntelliJ IDEA Ultimate Edition (version 2023.3.2)\n[✓] VS Code (version 1.85.2)\n[✓] Connected device (4 available)\n[✓] Network resources\n```\n\n## 集成步骤\n#### 1、pubspec.yaml\n```Dart\nflutter_universalad: ^latest\n```\n  \n#### 2、引入\n```Dart\nimport 'package:flutter_universalad/flutter_universalad.dart';\n```\n\n## 使用\n\n#### 1、SDK初始化\n\n```Dart\nawait FlutterUniversalad.register(\n        pAndroidId: \"5098580\",\n        //穿山甲android id\n        pIosId: \"5098580\",\n        //穿山甲ios id\n        tAndroidId: \"1200009850\",\n        //优量汇android id\n        tIosId: \"1200082163\",\n        //优量汇ios id\n        appName: \"Flutter_universalad\",\n        //app名字\n        debug: true,\n        //是否显示日志\n      callBack: RegisterCallBack(pangolinInit: (result) {\n        setState(() {\n          _registerResult = \"$_registerResult 穿山甲初始化 $result\";\n        });\n      }, tencentInit: (result) {\n        setState(() {\n          _registerResult = \"$_registerResult 优量汇初始化 $result\";\n          _getVersion();\n        });\n      }),\n    );\n\n```\n\n#### 2、获取SDK版本\n```Dart\nVersionEntity versionEntity = await FlutterUniversalad.getSDKVersion();\n    _sdkVersion =\n        \"穿山甲SDK ${versionEntity.pangolinVersion}  优量汇SDK ${versionEntity.tencentVersion}\";\n```\n\n#### 3、激励广告\n\n预加载激励广告\n\n```dart\nawait FlutterUniversalad.loadRewardVideoAd(\n        //穿山甲广告android id\n        pAndroidId: \"945418088\",\n        //穿山甲广告ios id\n        pIosId: \"945418088\",\n        //优量汇广告android id\n        tAndroidId: \"5042816813706194\",\n        //优量汇广告ios id\n        tIosId: \"8062535056034159\",\n        //奖励名称\n        rewardName: \"金币\",\n        //奖励数量\n        rewardAmount: 10,\n        //用户id\n        userID: \"123\",\n        //交替加载\n        loadType: UniversalLoadType.INTURN,\n        //穿山甲出现的几率\n        probability: 0.5,\n        //扩展参数，开启服务器验证时上报\n        customData: \"\",\n    );\n```\n\n激励广告监听\n\n```dart\nFlutterUniversalAdStreamSubscription? _subscripti;\n_subscripti = FlutterUniversalAdStream.initAdStream(\n    uRewardCallBack: URewardCallBack(\n    onShow: (sdkType) {\n        print(\"$sdkType  激励广告开始显示\");\n        },\n    onFail: (sdkType, code, message) {\n        print(\"$sdkType  激励广告失败 $code $message\");\n        },\n    onClick: (sdkType) {\n        print(\"$sdkType  激励广告点击\");\n        },\n    onClose: (sdkType) {\n        print(\"$sdkType  激励广告关闭\");\n        },\n    onReady: (sdkType) {\n    print(\"$sdkType  激励广告预加载完成\");\n        FlutterUniversalad.showRewardVideoAd();\n        },\n    onUnReady: (sdkType) {\n        print(\"$sdkType  激励广告未预加载\");\n        },\n    onVerify: (sdkType, transId, verify, amount, name) {\n        print(\n        \"$sdkType  激励广告观看成功 transId=$transId verify=$verify amount=$amount name=$name\");\n        },\n    ),  \n   );\n//移除监听\n@override\nvoid dispose() {\n  super.dispose();\n  _subscription?.cancel();\n}\n```\n展示激励广告\n```dart\nFlutterUniversalad.showRewardVideoAd();\n```\n\n#### 4、插屏广告\n\n预加载插屏广告\n\n```dart\nawait FlutterUniversalad.loadInterstitialAd(\n    //穿山甲广告android id\n    pAndroidId: \"946201351\",\n    //穿山甲广告ios id\n    pIosId: \"946201351\",\n    //优量汇广告android id\n    tAndroidId: \"9062813863614416\",\n    //优量汇广告ios id\n    tIosId: \"1052938046031440\",\n    //是否全屏 仅优量汇起效\n    isFullScreen: false,\n    //交替加载\n    loadType: UniversalLoadType.INTURN,\n    //穿山甲出现的几率\n    probability: 0.5,\n);\n```\n\n插屏广告监听\n\n```dart\nFlutterUniversalAdStreamSubscription? _subscripti;\n_subscription = FlutterUniversalAdStream.initAdStream(\n     uInteractionCallBack: UInteractionCallBack(\n        onShow: (sdkType) {\n          print(\"$sdkType  插屏广告开始显示\");\n        },\n        onFail: (sdkType, code, message) {\n         //只有两个插件都失败的情况下才会返回失败，只返回最后一次失败的参数，单独一个失败，会保底去拉取另一个sdk广告\n          print(\"$sdkType  插屏广告失败 $code $message\");\n        },\n        onClick: (sdkType) {\n          print(\"$sdkType  插屏广告点击\");\n        },\n        onClose: (sdkType) {\n          print(\"$sdkType  插屏广告关闭\");\n        },\n        onReady: (sdkType) {\n          print(\"$sdkType  插屏广告预加载完成\");\n          FlutterUniversalad.showInterstitialAd();\n        },\n        onUnReady: (sdkType) {\n          print(\"$sdkType  插屏广告未预加载\");\n        },\n      ),\n   );\n\n//移除监听\n@override\nvoid dispose() {\n  super.dispose();\n  _subscription?.cancel();\n}\n```\n展示插屏广告\n```dart\nFlutterUniversalad.showInterstitialAd();\n```\n\n#### 5、开屏广告\n\n```dart\nFlutterUniversalad.splashAdView(\n        //穿山甲广告android id\n        pAndroidId: \"887367774\",\n        //穿山甲广告ios id\n        pIosId: \"887367774\",\n        //优量汇广告android id\n        tAndroidId: \"4052216802299999\",\n        //优量汇广告ios id\n        tIosId: \"8012030096434021\",\n        //广告加载模式 UniversalLoadType.INTURN 交替拉取广告，UniversalLoadType.RANDOWM 完全随机拉去广告\n        loadType: UniversalLoadType.INTURN,\n        //穿山甲出现的几率，UniversalLoadType.RANDOWM 起效，「0-1取值，0为不出现 1必出现」\n        probability: 0.5,\n        callBack: USplashCallBack(\n          onShow: (sdkType) {\n            print(\"$sdkType  开屏广告显示\");\n          },\n          onFail: (sdkType, code, message) {\n            print(\"$sdkType  开屏广告失败  $code $message\");\n            Navigator.pop(context);\n          },\n          onClick: (sdkType) {\n            print(\"$sdkType  开屏广告点击\");\n          },\n          onClose: (sdkType) {\n            print(\"$sdkType  开屏广告关闭\");\n            Navigator.pop(context);\n          },\n        )\n```\n\n#### 6、信息流广告\n```dart\nFlutterUniversalad.nativeAdView(\n                //穿山甲广告android id\n                pAndroidId: \"945417699\",\n                //穿山甲广告ios id\n                pIosId: \"945417699\",\n                //优量汇广告android id\n                tAndroidId: \"4072918853903023\",\n                //优量汇广告ios id\n                tIosId: \"7082132016439065\",\n                width: 400.0,\n                height: 260.0,\n                //广告加载模式 UniversalLoadType.INTURN 交替拉取广告，UniversalLoadType.RANDOWM 完全随机拉去广告\n                loadType: UniversalLoadType.INTURN,\n                //穿山甲出现的几率，UniversalLoadType.RANDOWM 起效，「0-1取值，0为不出现 1必出现」\n                probability: 0.5,\n              callBack: UNativeCallBack(\n                onShow: (sdkType) {\n                  print(\"$sdkType  Native广告显示\");\n                },\n                onFail: (sdkType, code, message) {\n                  print(\"$sdkType  Native广告失败  $code $message\");\n                },\n                onClick: (sdkType) {\n                  print(\"$sdkType  Native广告点击\");\n                },\n                onClose: (sdkType) {\n                  print(\"$sdkType  Native广告关闭\");\n                },\n              ),\n            )\n```\n#### 7、Banner广告\n```dart\nFlutterUniversalad.bannerAdView(\n                //穿山甲广告android id\n                pAndroidId: \"945410197\",\n                //穿山甲广告ios id\n                pIosId: \"945410197\",\n                //优量汇广告android id\n                tAndroidId: \"8042711873318113\",\n                //优量汇广告ios id\n                tIosId: \"6062430096832369\",\n                width: 300.0,\n                height: 100.0,\n                //广告加载模式 UniversalLoadType.INTURN 交替拉取广告，UniversalLoadType.RANDOWM 完全随机拉去广告\n                loadType: UniversalLoadType.INTURN,\n                //穿山甲出现的几率，UniversalLoadType.RANDOWM 起效，「0-1取值，0为不出现 1必出现」\n                probability: 0.5,\n              callBack: UBannerCallBack(\n                onShow: (sdkType) {\n                  print(\"$sdkType  Banner广告显示\");\n                },\n                onFail: (sdkType, code, message) {\n                  print(\"$sdkType  Banner广告失败  $code $message\");\n                },\n                onClick: (sdkType) {\n                  print(\"$sdkType  Banner广告点击\");\n                },\n                onClose: (sdkType) {\n                  print(\"$sdkType  Banner广告关闭\");\n                },\n              ),\n            )\n```\n\n## 插件链接\n\n|插件|地址|\n|:----|:----|\n|穿山甲广告插件|[flutter_unionad](https://github.com/gstory0404/flutter_unionad)|\n|腾讯优量汇广告插件|[flutter_tencentad](https://github.com/gstory0404/flutter_tencentad)|\n|聚合广告插件|[flutter_universalad](https://github.com/gstory0404/flutter_universalad)|\n|百度百青藤广告插件|[flutter_baiduad](https://github.com/gstory0404/flutter_baiduad)|\n|字节穿山甲内容合作插件|[flutter_pangrowth](https://github.com/gstory0404/flutter_pangrowth)|\n|文档预览插件|[file_preview](https://github.com/gstory0404/file_preview)|\n|滤镜|[gpu_image](https://github.com/gstory0404/gpu_image)|\n|Gromore聚合广告|[gromore](https://github.com/gstory0404/gromore)|\n\n### 开源不易，觉得有用的话可以请作者喝杯奶茶🧋\n\u003cimg src=\"https://github.com/gstory0404/flutter_universalad/blob/master/images/weixin.jpg\" width = \"200\" height = \"160\" alt=\"打赏\"/\u003e\n\n## 联系方式\n* Email: gstory0404@gmail.com\n* Blog：https://www.gstory.cn/\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgstory0404%2Fflutter_universalad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgstory0404%2Fflutter_universalad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgstory0404%2Fflutter_universalad/lists"}