Flutter版聚合廣告外掛

gstory發表於2021-08-16

flutter_universalad是一個聚合位元組跳動穿山甲廣告外掛flutter_unionad、騰訊優量匯聚合廣告flutter_tencentad外掛,方便直接呼叫多個廠商廣告,外掛倉庫體驗demo

整合步驟

1、pubspec.yaml

flutter_universalad: ^0.0.3
複製程式碼

2、引入

import 'package:flutter_universalad/flutter_universalad.dart';
複製程式碼

使用

1、SDK初始化

await FlutterUniversalad.register(
      pangolinId: "5098580",
      tencentId: "1200009850",
      appName: "Flutter_universalad",
      debug: true,
      callBack: RegisterCallBack(pangolinInit: (result) {
        setState(() {
          _registerResult = "$_registerResult 穿山甲初始化 $result";
        });
      }, tencentInit: (result) {
        setState(() {
          _registerResult = "$_registerResult 優量匯初始化 $result";
          _getVersion();
        });
      }),
    );

複製程式碼

2、獲取SDK版本

VersionEntity versionEntity = await FlutterUniversalad.getSDKVersion();
    _sdkVersion =
        "穿山甲SDK ${versionEntity.pangolinVersion}  優量匯SDK ${versionEntity.tencentVersion}";
複製程式碼

3、激勵廣告

預載入激勵廣告

await FlutterUniversalad.loadRewardVideoAd(
                    pangolinId: "945418088",//穿山甲廣告id
                    tencentId: "5042816813706194",//優量匯廣告id
                    rewardName: "金幣",//獎勵名稱
                    rewardAmount: 10,//獎勵數量
                    userID: "123",//使用者id
                    loadType: UniversalLoadType.INTURN,//廣告載入模式 UniversalLoadType.INTURN 交替拉取廣告,UniversalLoadType.RANDOWM 完全隨機拉去廣告
                    probability: 0.5);//穿山甲出現的機率,UniversalLoadType.RANDOWM 起效,「0-1取值,0為不出現 1必出現」
              },
複製程式碼

激勵廣告監聽

FlutterUniversalAdStream.initAdStream(
      uRewardCallBack: URewardCallBack(
        onShow: (sdkType) {
          print("$sdkType  激勵廣告開始顯示");
        },
        onFail: (sdkType, code, message) {
         //只有兩個外掛都失敗的情況下才會返回失敗,只返回最後一次失敗的引數,單獨一個失敗,會保底去拉取另一個sdk廣告
          print("$sdkType  激勵廣告失敗 $code $message");
        },
        onClick: (sdkType) {
          print("$sdkType  激勵廣告點選");
        },
        onClose: (sdkType) {
          print("$sdkType  激勵廣告關閉");
        },
        onReady: (sdkType) {
          print("$sdkType  激勵廣告預載入完成");
          FlutterUniversalad.showRewardVideoAd();
        },
        onUnReady: (sdkType) {
          print("$sdkType  激勵廣告未預載入");
        },
        onVerify: (sdkType, transId, verify, amount, name) {
          print("$sdkType  激勵廣告觀看成功 transId=$transId verify=$verify amount=$amount name=$name");
        },
      ),
   );
複製程式碼

展示激勵廣告

FlutterUniversalad.showRewardVideoAd();
複製程式碼

4、插屏廣告

預載入插屏廣告

await FlutterUniversalad.loadInterstitialAd(
                    pangolinId: "946201351",//穿山甲廣告id
                    tencentId: "9062813863614416",//優量匯廣告id
                    isFullScreen: false,//是否全屏 僅優量匯起效
                    loadType: UniversalLoadType.INTURN,//廣告載入模式 UniversalLoadType.INTURN 交替拉取廣告,UniversalLoadType.RANDOWM 完全隨機拉去廣告
                    probability: 0.5);//穿山甲出現的機率,UniversalLoadType.RANDOWM 起效,「0-1取值,0為不出現 1必出現」
              },
複製程式碼

插屏廣告監聽

FlutterUniversalAdStream.initAdStream(
     uInteractionCallBack: UInteractionCallBack(
        onShow: (sdkType) {
          print("$sdkType  插屏廣告開始顯示");
        },
        onFail: (sdkType, code, message) {
         //只有兩個外掛都失敗的情況下才會返回失敗,只返回最後一次失敗的引數,單獨一個失敗,會保底去拉取另一個sdk廣告
          print("$sdkType  插屏廣告失敗 $code $message");
        },
        onClick: (sdkType) {
          print("$sdkType  插屏廣告點選");
        },
        onClose: (sdkType) {
          print("$sdkType  插屏廣告關閉");
        },
        onReady: (sdkType) {
          print("$sdkType  插屏廣告預載入完成");
          FlutterUniversalad.showInterstitialAd();
        },
        onUnReady: (sdkType) {
          print("$sdkType  插屏廣告未預載入");
        },
      ),
   );
複製程式碼

展示插屏廣告

FlutterUniversalad.showInterstitialAd();
複製程式碼

5、開屏廣告

FlutterUniversalad.splashAdView(
        pangolinId: "887367774",//穿山甲廣告id
        tencentId: "4052216802299999",//優量匯廣告id
        loadType: UniversalLoadType.INTURN,//廣告載入模式 UniversalLoadType.INTURN 交替拉取廣告,UniversalLoadType.RANDOWM 完全隨機拉去廣告
        probability: 0.5,//穿山甲出現的機率,UniversalLoadType.RANDOWM 起效,「0-1取值,0為不出現 1必出現」
        callBack: USplashCallBack(
          onShow: (sdkType) {
            print("$sdkType  開屏廣告顯示");
          },
          onFail: (sdkType, code, message) {
            print("$sdkType  開屏廣告失敗  $code $message");
            Navigator.pop(context);
          },
          onClick: (sdkType) {
            print("$sdkType  開屏廣告點選");
          },
          onClose: (sdkType) {
            print("$sdkType  開屏廣告關閉");
            Navigator.pop(context);
          },
        )
複製程式碼

6、資訊流廣告

FlutterUniversalad.nativeAdView(
              pangolinId: "945417699",//穿山甲廣告id
              tencentId: "4072918853903023",//優量匯廣告id
              width: 400.0,//寬 dp
              height: 260.0,//高 dp
              loadType: UniversalLoadType.INTURN,//廣告載入模式 UniversalLoadType.INTURN 交替拉取廣告,UniversalLoadType.RANDOWM 完全隨機拉去廣告
              probability: 0.5,//穿山甲出現的機率,UniversalLoadType.RANDOWM 起效,「0-1取值,0為不出現 1必出現」
              callBack: UNativeCallBack(
                onShow: (sdkType) {
                  print("$sdkType  Native廣告顯示");
                },
                onFail: (sdkType, code, message) {
                  print("$sdkType  Native廣告失敗  $code $message");
                },
                onClick: (sdkType) {
                  print("$sdkType  Native廣告點選");
                },
                onClose: (sdkType) {
                  print("$sdkType  Native廣告關閉");
                },
              ),
            )
複製程式碼

7、Banner廣告

FlutterUniversalad.bannerAdView(
              pangolinId: "945410197",//穿山甲廣告id
              tencentId: "8042711873318113",//優量匯廣告id
              width: 300.0,//寬 dp
              height: 100.0,//高 dp
              loadType: UniversalLoadType.INTURN,//廣告載入模式 UniversalLoadType.INTURN 交替拉取廣告,UniversalLoadType.RANDOWM 完全隨機拉去廣告
              probability: 0.5,//穿山甲出現的機率,UniversalLoadType.RANDOWM 起效,「0-1取值,0為不出現 1必出現」
              callBack: UBannerCallBack(
                onShow: (sdkType) {
                  print("$sdkType  Banner廣告顯示");
                },
                onFail: (sdkType, code, message) {
                  print("$sdkType  Banner廣告失敗  $code $message");
                },
                onClick: (sdkType) {
                  print("$sdkType  Banner廣告點選");
                },
                onClose: (sdkType) {
                  print("$sdkType  Banner廣告關閉");
                },
              ),
            )
複製程式碼

說明

  • 聚合外掛目前Android端穿山甲、優量匯所有廣告,ios端僅支援穿山甲廣告。

相關文章