From 62908597debfcec95e2c52c3a1fb6110610338cd Mon Sep 17 00:00:00 2001 From: GaoYu Date: Fri, 9 Sep 2022 12:16:01 +0800 Subject: [PATCH 01/11] support flutter 3.3 --- example/ios/Podfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/ios/Podfile b/example/ios/Podfile index f7d6a5e..bfd60c4 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +platform :ios, '11.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' From b80622fd48b00f3d5cc5626ad6d6113620fb341a Mon Sep 17 00:00:00 2001 From: GaoYu Date: Fri, 9 Sep 2022 12:16:27 +0800 Subject: [PATCH 02/11] iOS personal ad type setting --- ios/Classes/FlutterPangleAdsPlugin.m | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ios/Classes/FlutterPangleAdsPlugin.m b/ios/Classes/FlutterPangleAdsPlugin.m index 3a21d00..19be921 100644 --- a/ios/Classes/FlutterPangleAdsPlugin.m +++ b/ios/Classes/FlutterPangleAdsPlugin.m @@ -46,6 +46,8 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { [self loadFeedAd:call result:result]; }else if ([@"clearFeedAd" isEqualToString:methodStr]){ [self clearFeedAd:call result:result]; + }else if ([@"setUserExtData" isEqualToString:methodStr]){ + [self setUserExtData:call]; }else { result(FlutterMethodNotImplemented); } @@ -117,6 +119,17 @@ - (void) clearFeedAd:(FlutterMethodCall*) call result:(FlutterResult) result{ result(@(YES)); } +// 设置个性化推荐 +// personalAdsType: String +// 不传或传空或传非01值没任何影响,默认不屏蔽 +// 0,屏蔽个性化推荐广告; +// 1,不屏蔽个性化推荐广告 +- (void) setUserExtData:(FlutterMethodCall*) call{ + NSString *personalAdsType = call.arguments[@"personalAdsType"]; + NSString *data = [NSString stringWithFormat:@"[{\"name\":\"personal_ads_type\",\"value\":\"%@\"}]", personalAdsType]; + [BUAdSDKManager setUserExtData: data]; +} + #pragma mark - FlutterStreamHandler - (FlutterError * _Nullable)onCancelWithArguments:(id _Nullable)arguments { self.eventSink=nil; From 9189610c943796a956492c3523b4238cd30f9305 Mon Sep 17 00:00:00 2001 From: GaoYu Date: Fri, 9 Sep 2022 12:17:00 +0800 Subject: [PATCH 03/11] add flutter user ext data func --- lib/flutter_pangle_ads.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/flutter_pangle_ads.dart b/lib/flutter_pangle_ads.dart index 0599a80..1c25a35 100644 --- a/lib/flutter_pangle_ads.dart +++ b/lib/flutter_pangle_ads.dart @@ -172,4 +172,15 @@ class FlutterPangleAds { hanleAdEvent(data, onAdEventListener); }); } + + /// 设置个性化推荐 + /// @params personalAdsType,不传或传空或传非01值没任何影响,默认不屏蔽, 0屏蔽个性化推荐广告, 1不屏蔽个性化推荐广告 + static setUserExtData({required String personalAdsType}) async { + await _methodChannel.invokeMethod( + 'setUserExtData', + { + 'personalAdsType': personalAdsType, + }, + ); + } } From aa9b2c5c9ea0e98bd638469612803bd96150cd7a Mon Sep 17 00:00:00 2001 From: GaoYu Date: Fri, 9 Sep 2022 12:29:26 +0800 Subject: [PATCH 04/11] Android personal ad type setting --- .../flutter_pangle_ads/PluginDelegate.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java b/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java index 1451853..e21e96e 100644 --- a/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java +++ b/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java @@ -93,6 +93,8 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result loadFeedAd(call, result); } else if ("clearFeedAd".equals(method)) { clearFeedAd(call, result); + } else if ("setUserExtData".equals(method)) { + setUserExtData(call, result); } else { result.notImplemented(); } @@ -292,4 +294,31 @@ public void clearFeedAd(MethodCall call, MethodChannel.Result result) { result.success(true); } + + /** + * 个性化推荐广告开关 + * + * @param call MethodCall + * @param result Result + */ + public void setUserExtData(MethodCall call, MethodChannel.Result result) { + try { + String personalTypeValue = call.argument("personalAdsType"); + + JSONArray jsonArray = new JSONArray(); + JSONObject personalObject = new JSONObject(); + personalObject.put("name", "personal_ads_type"); + personalObject.put("value", personalTypeValue); + jsonArray.put(personalObject); + + TTAdConfig ttAdConfig = new TTAdConfig.Builder() + .data(jsonArray.toString()) + .build(); + TTAdSdk.updateAdConfig(ttAdConfig); + result.success(true); + } catch (Exception e) { + e.printStackTrace(); + result.success(false); + } + } } From 192b55dd050c085b3c1c4ff6ba3e3100a004b49e Mon Sep 17 00:00:00 2001 From: GaoYu Date: Sun, 11 Sep 2022 09:54:01 +0800 Subject: [PATCH 05/11] fix Android import issue --- .../main/java/com/zero/flutter_pangle_ads/PluginDelegate.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java b/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java index e21e96e..c3b3502 100644 --- a/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java +++ b/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java @@ -17,6 +17,9 @@ import com.zero.flutter_pangle_ads.page.RewardVideoPage; import com.zero.flutter_pangle_ads.utils.DataUtils; +import org.json.JSONArray; +import org.json.JSONObject; + import java.util.ArrayList; import java.util.List; From 38810804f7b24ed3a43a0d4f11b7f6dcb7fcccab Mon Sep 17 00:00:00 2001 From: GaoYu Date: Mon, 12 Sep 2022 16:29:08 +0800 Subject: [PATCH 06/11] add readme --- README.md | 7 +++++++ example/lib/home_page.dart | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/README.md b/README.md index da0cc59..9a1bb2a 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,13 @@ import 'package:flutter_pangle_ads/flutter_pangle_ads.dart'; FlutterPangleAds.initAd(appId); ``` +### 个性化广告开关 + +```dart +/// 不调用默认为开,'1'打开,'0'关闭 +FlutterPangleAds.setUserExtData(personalAdsType: '1'); +``` + ### 开屏广告 - 全屏 diff --git a/example/lib/home_page.dart b/example/lib/home_page.dart index 05ca97a..06f6948 100644 --- a/example/lib/home_page.dart +++ b/example/lib/home_page.dart @@ -170,6 +170,10 @@ class _HomePageState extends State { ], ); _result = "广告SDK 初始化${result ? '成功' : '失败'}"; + + // 打开个性化广告推荐 + FlutterPangleAds.setUserExtData(personalAdsType: '1'); + setState(() {}); return result; } on PlatformException catch (e) { From 6827177fe926380eb42eb85b900da44c11f5bc58 Mon Sep 17 00:00:00 2001 From: GaoYu Date: Tue, 13 Sep 2022 17:01:41 +0800 Subject: [PATCH 07/11] clean code --- example/lib/home_page.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/lib/home_page.dart b/example/lib/home_page.dart index 06f6948..08d61e9 100644 --- a/example/lib/home_page.dart +++ b/example/lib/home_page.dart @@ -170,7 +170,7 @@ class _HomePageState extends State { ], ); _result = "广告SDK 初始化${result ? '成功' : '失败'}"; - + // 打开个性化广告推荐 FlutterPangleAds.setUserExtData(personalAdsType: '1'); From 3f5330e7e084ffaf9f55d556e6af3bcbce8da237 Mon Sep 17 00:00:00 2001 From: Zero <1300326388@qq.com> Date: Sat, 28 Jan 2023 14:48:35 +0800 Subject: [PATCH 08/11] =?UTF-8?q?1=E3=80=81=E5=8D=87=E7=BA=A7=E5=B9=BF?= =?UTF-8?q?=E5=91=8A=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/build.gradle | 2 +- example/android/app/build.gradle | 2 +- ios/Classes/FlutterPangleAdsPlugin.h | 2 - ios/Classes/FlutterPangleAdsPlugin.m | 9 --- ios/Classes/Page/InterstitialPage.h | 13 ---- ios/Classes/Page/InterstitialPage.m | 82 ------------------------- ios/Classes/Page/SplashViewController.m | 1 - ios/flutter_pangle_ads.podspec | 2 +- 8 files changed, 3 insertions(+), 110 deletions(-) delete mode 100644 ios/Classes/Page/InterstitialPage.h delete mode 100644 ios/Classes/Page/InterstitialPage.m diff --git a/android/build.gradle b/android/build.gradle index 41939fb..b885551 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -39,6 +39,6 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.legacy:legacy-support-v4:1.0.0' // 广告 SDK - implementation 'com.pangle.cn:ads-sdk-pro:4.7.1.2' + implementation 'com.pangle.cn:ads-sdk-pro:5.1.0.2' // compileOnly fileTree(dir: 'libs', include: ['*.jar', '*.aar']) } diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 3ce82b9..1de8e24 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -52,6 +52,6 @@ flutter { dependencies { // 广告 SDK -// implementation 'com.pangle.cn:ads-sdk-pro:4.7.0.8' +// implementation 'com.pangle.cn:ads-sdk-pro:5.1.0.2' // implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) } diff --git a/ios/Classes/FlutterPangleAdsPlugin.h b/ios/Classes/FlutterPangleAdsPlugin.h index 33ad35b..8dfd7d5 100644 --- a/ios/Classes/FlutterPangleAdsPlugin.h +++ b/ios/Classes/FlutterPangleAdsPlugin.h @@ -1,7 +1,6 @@ #import #import #import "SplashPage.h" -#import "InterstitialPage.h" #import "RewardVideoPage.h" #import "FullScreenVideoPage.h" #import "FeedAdLoad.h" @@ -10,7 +9,6 @@ @interface FlutterPangleAdsPlugin : NSObject @property (strong,nonatomic) FlutterEventSink eventSink; @property (strong, nonatomic) SplashPage *sad; -@property (strong, nonatomic) InterstitialPage *iad; @property (strong, nonatomic) RewardVideoPage *rvad; @property (strong,nonatomic) FullScreenVideoPage *fsad; @property (strong,nonatomic) FeedAdLoad *fad; diff --git a/ios/Classes/FlutterPangleAdsPlugin.m b/ios/Classes/FlutterPangleAdsPlugin.m index 19be921..2be308c 100644 --- a/ios/Classes/FlutterPangleAdsPlugin.m +++ b/ios/Classes/FlutterPangleAdsPlugin.m @@ -36,8 +36,6 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { [self initAd:call result:result]; }else if([@"showSplashAd" isEqualToString:methodStr]) { [self showSplashAd:call result:result]; - }else if ([@"showInterstitialAd" isEqualToString:methodStr]){ - [self showInterstitialAd:call result:result]; }else if ([@"showRewardVideoAd" isEqualToString:methodStr]){ [self showRewardVideoAd:call result:result]; }else if ([@"showFullScreenVideoAd" isEqualToString:methodStr]){ @@ -84,13 +82,6 @@ - (void) showSplashAd:(FlutterMethodCall*) call result:(FlutterResult) result{ result(@(YES)); } -// 显示插屏广告 -- (void) showInterstitialAd:(FlutterMethodCall*) call result:(FlutterResult) result{ - self.iad=[[InterstitialPage alloc] init]; - [self.iad showAd:call eventSink:self.eventSink]; - result(@(YES)); -} - // 显示激励视频广告 - (void) showRewardVideoAd:(FlutterMethodCall*) call result:(FlutterResult) result{ self.rvad=[[RewardVideoPage alloc] init]; diff --git a/ios/Classes/Page/InterstitialPage.h b/ios/Classes/Page/InterstitialPage.h deleted file mode 100644 index 3f6a521..0000000 --- a/ios/Classes/Page/InterstitialPage.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// InterstitialPage.h -// flutter_pangle_ads -// -// Created by zero on 2021/8/18. -// - -#import "BaseAdPage.h" - -// 插屏广告 -@interface InterstitialPage : BaseAdPage -@property (nonatomic, strong) BUNativeExpressInterstitialAd *iad; -@end diff --git a/ios/Classes/Page/InterstitialPage.m b/ios/Classes/Page/InterstitialPage.m deleted file mode 100644 index edefa4d..0000000 --- a/ios/Classes/Page/InterstitialPage.m +++ /dev/null @@ -1,82 +0,0 @@ -// -// InterstitialPage.m -// flutter_pangle_ads -// -// Created by zero on 2021/8/18. -// - -#import "InterstitialPage.h" - -@implementation InterstitialPage - -- (void)dealloc -{ - NSLog(@"InterstitialPage dealloc"); -} -// 加载广告 -- (void)loadAd:(FlutterMethodCall *)call{ - int width = [call.arguments[@"width"] intValue]; - int height = [call.arguments[@"height"] intValue]; - - self.iad=[[BUNativeExpressInterstitialAd alloc] initWithSlotID:self.posId adSize:CGSizeMake(width, height)]; - self.iad.delegate=self; - [self.iad loadAdData]; -} - -#pragma mark - BUNativeExpresInterstitialAdDelegate - -- (void)nativeExpresInterstitialAdDidLoad:(BUNativeExpressInterstitialAd *)interstitialAd { - NSLog(@"%s",__FUNCTION__); - // 发送广告事件 - [self sendEventAction:onAdLoaded]; -} - -- (void)nativeExpresInterstitialAd:(BUNativeExpressInterstitialAd *)interstitialAd didFailWithError:(NSError *)error { - NSLog(@"%s",__FUNCTION__); - // 发送广告错误事件 - [self sendErrorEvent:error.code withErrMsg:error.localizedDescription]; -} - -- (void)nativeExpresInterstitialAdRenderSuccess:(BUNativeExpressInterstitialAd *)interstitialAd { - NSLog(@"%s",__FUNCTION__); - if(self.iad){ - [self.iad showAdFromRootViewController:self.rootController]; - } - // 发送广告事件 - [self sendEventAction:onAdPresent]; -} - -- (void)nativeExpresInterstitialAdRenderFail:(BUNativeExpressInterstitialAd *)interstitialAd error:(NSError *)error { - NSLog(@"%s",__FUNCTION__); - // 发送广告错误事件 - [self sendErrorEvent:error.code withErrMsg:error.localizedDescription]; -} - -- (void)nativeExpresInterstitialAdWillVisible:(BUNativeExpressInterstitialAd *)interstitialAd { - NSLog(@"%s",__FUNCTION__); - // 发送广告事件 - [self sendEventAction:onAdExposure]; -} - -- (void)nativeExpresInterstitialAdDidClick:(BUNativeExpressInterstitialAd *)interstitialAd { - NSLog(@"%s",__FUNCTION__); - // 发送广告事件 - [self sendEventAction:onAdClicked]; -} - -- (void)nativeExpresInterstitialAdWillClose:(BUNativeExpressInterstitialAd *)interstitialAd { - NSLog(@"%s",__FUNCTION__); - // 发送广告事件 - [self sendEventAction:onAdClosed]; -} - -- (void)nativeExpresInterstitialAdDidClose:(BUNativeExpressInterstitialAd *)interstitialAd { - NSLog(@"%s",__FUNCTION__); - self.iad = nil; -} - -- (void)nativeExpresInterstitialAdDidCloseOtherController:(BUNativeExpressInterstitialAd *)interstitialAd interactionType:(BUInteractionType)interactionType { - NSLog(@"%s",__FUNCTION__); -} - -@end diff --git a/ios/Classes/Page/SplashViewController.m b/ios/Classes/Page/SplashViewController.m index 5548012..6bf8f4d 100644 --- a/ios/Classes/Page/SplashViewController.m +++ b/ios/Classes/Page/SplashViewController.m @@ -36,7 +36,6 @@ - (void)viewDidLoad { // 广告区域大小 CGSize adSize = CGSizeMake(width,adHeight); // 广告数据构建 - self.splashAd=[[BUSplashAd alloc] initWithSlotID:self.posId adSize:adSize]; self.splashAd.tolerateTimeout=self.timeout; self.splashAd.delegate=self; diff --git a/ios/flutter_pangle_ads.podspec b/ios/flutter_pangle_ads.podspec index 36fd70e..3e70def 100644 --- a/ios/flutter_pangle_ads.podspec +++ b/ios/flutter_pangle_ads.podspec @@ -16,7 +16,7 @@ FlutterAds 致力于构建优质的 Flutter 广告插件 s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'Ads-CN', '>=4.7.0.8' #SDK版本 >=3.4.0.0 + s.dependency 'Ads-CN', '>=5.0.0.5' #SDK版本 >=5.0.0.5 s.platform = :ios, '9.0' s.static_framework = true From ee20493564f9a613a5fd45659451d3197f683731 Mon Sep 17 00:00:00 2001 From: Zero <1300326388@qq.com> Date: Sat, 28 Jan 2023 14:54:34 +0800 Subject: [PATCH 09/11] =?UTF-8?q?1=E3=80=81=E5=8D=87=E7=BA=A7=20v2.7.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ README.md | 4 ++-- example/pubspec.yaml | 2 +- ios/flutter_pangle_ads.podspec | 2 +- pubspec.yaml | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec94a0f..aeff72c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.7.0 [2023-01-28] +* [修复] iOS SDK 版本升级后不可用问题 # +* 升级 iOS SDK 到 `v5.0.0.5` +* 升级 Android SDK 到 Pro 版 `v5.1.0.2` ## 2.6.1 [2022-09-06] * [修复] iOS 开屏广告点击后不跳转的问题 * [修复] Android 激励视频通知两次激励的问题 diff --git a/README.md b/README.md index 9a1bb2a..1b50810 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

一款优质的 Flutter 广告插件(字节跳动、巨量引擎、穿山甲)

- + @@ -40,7 +40,7 @@ ``` Dart dependencies: - flutter_pangle_ads: ^2.6.1 + flutter_pangle_ads: ^2.7.0 ``` ### 初始化广告 diff --git a/example/pubspec.yaml b/example/pubspec.yaml index c5312f5..d15198d 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -4,7 +4,7 @@ description: FlutterAds 穿山甲广告 SDK 插件示例 # The following line prevents the package from being accidentally published to # pub.dev using `pub publish`. This is preferred for private packages. publish_to: "none" # Remove this line if you wish to publish to pub.dev -version: 2.6.1+16 +version: 2.7.0+18 environment: sdk: ">=2.12.0 <3.0.0" diff --git a/ios/flutter_pangle_ads.podspec b/ios/flutter_pangle_ads.podspec index 3e70def..79db7e1 100644 --- a/ios/flutter_pangle_ads.podspec +++ b/ios/flutter_pangle_ads.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'flutter_pangle_ads' - s.version = '2.6.1' + s.version = '2.7.0' s.summary = '一款优质的 Flutter 广告插件(字节跳动、穿山甲)' s.description = <<-DESC FlutterAds 致力于构建优质的 Flutter 广告插件 diff --git a/pubspec.yaml b/pubspec.yaml index e5d7810..8a09879 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_pangle_ads description: 一款优质的 Flutter 广告插件(字节跳动、穿山甲) -version: 2.6.1 +version: 2.7.0 homepage: https://github.com/FlutterAds environment: From 3e5b48762000441a8d2b16a304e93641ce20dd52 Mon Sep 17 00:00:00 2001 From: Zero <1300326388@qq.com> Date: Sat, 28 Jan 2023 15:12:05 +0800 Subject: [PATCH 10/11] =?UTF-8?q?1=E3=80=81=E5=BD=BB=E5=BA=95=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E6=97=A7=E6=8F=92=E5=B1=8F=E5=B9=BF=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flutter_pangle_ads/PluginDelegate.java | 21 +---- .../page/InterstitialPage.java | 94 ------------------- example/lib/home_page.dart | 29 ------ lib/flutter_pangle_ads.dart | 20 ---- 4 files changed, 3 insertions(+), 161 deletions(-) delete mode 100644 android/src/main/java/com/zero/flutter_pangle_ads/page/InterstitialPage.java diff --git a/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java b/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java index c3b3502..71b5267 100644 --- a/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java +++ b/android/src/main/java/com/zero/flutter_pangle_ads/PluginDelegate.java @@ -12,7 +12,6 @@ import com.zero.flutter_pangle_ads.load.FeedAdManager; import com.zero.flutter_pangle_ads.page.AdSplashActivity; import com.zero.flutter_pangle_ads.page.FullScreenVideoPage; -import com.zero.flutter_pangle_ads.page.InterstitialPage; import com.zero.flutter_pangle_ads.page.NativeViewFactory; import com.zero.flutter_pangle_ads.page.RewardVideoPage; import com.zero.flutter_pangle_ads.utils.DataUtils; @@ -86,8 +85,6 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result initAd(call, result); } else if ("showSplashAd".equals(method)) { showSplashAd(call, result); - } else if ("showInterstitialAd".equals(method)) { - showInterstitialAd(call, result); } else if ("showRewardVideoAd".equals(method)) { showRewardVideoAd(call, result); } else if ("showFullScreenVideoAd".equals(method)) { @@ -234,18 +231,6 @@ public void showSplashAd(MethodCall call, MethodChannel.Result result) { result.success(true); } - /** - * 显示插屏广告 - * - * @param call MethodCall - * @param result Result - */ - public void showInterstitialAd(MethodCall call, MethodChannel.Result result) { - InterstitialPage adPage = new InterstitialPage(); - adPage.showAd(activity, call); - result.success(true); - } - /** * 显示激励视频广告 * @@ -313,10 +298,10 @@ public void setUserExtData(MethodCall call, MethodChannel.Result result) { personalObject.put("name", "personal_ads_type"); personalObject.put("value", personalTypeValue); jsonArray.put(personalObject); - + TTAdConfig ttAdConfig = new TTAdConfig.Builder() - .data(jsonArray.toString()) - .build(); + .data(jsonArray.toString()) + .build(); TTAdSdk.updateAdConfig(ttAdConfig); result.success(true); } catch (Exception e) { diff --git a/android/src/main/java/com/zero/flutter_pangle_ads/page/InterstitialPage.java b/android/src/main/java/com/zero/flutter_pangle_ads/page/InterstitialPage.java deleted file mode 100644 index ccb2fd9..0000000 --- a/android/src/main/java/com/zero/flutter_pangle_ads/page/InterstitialPage.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.zero.flutter_pangle_ads.page; - -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; - -import com.bytedance.sdk.openadsdk.AdSlot; -import com.bytedance.sdk.openadsdk.TTAdNative; -import com.bytedance.sdk.openadsdk.TTNativeExpressAd; -import com.zero.flutter_pangle_ads.event.AdEventAction; - -import java.util.List; - -import io.flutter.plugin.common.MethodCall; - -/** - * 插屏广告 - */ -public class InterstitialPage extends BaseAdPage implements TTAdNative.NativeExpressAdListener, TTNativeExpressAd.AdInteractionListener { - private final String TAG = InterstitialPage.class.getSimpleName(); - // 渲染广告对象 - TTNativeExpressAd iad; - - @Override - public void loadAd(@NonNull MethodCall call) { - int expressViewWidth = call.argument("width"); - int expressViewHeight = call.argument("height"); - adSlot = new AdSlot.Builder() - .setCodeId(posId) - .setExpressViewAcceptedSize(expressViewWidth, expressViewHeight) - .build(); - ad.loadInteractionExpressAd(adSlot, this); - } - - @Override - public void onError(int i, String s) { - Log.e(TAG, "onError code:" + i + " msg:" + s); - sendErrorEvent(i, s); - } - - @Override - public void onNativeExpressAdLoad(List list) { - Log.i(TAG, "onRenderSuccess"); - if (list == null || list.size() == 0) { - return; - } - iad = list.get(0); - iad.setExpressInteractionListener(this); - iad.render(); - // 添加广告事件 - sendEvent(AdEventAction.onAdLoaded); - } - - - @Override - public void onAdClicked(View view, int i) { - Log.i(TAG, "onAdClicked"); - // 添加广告事件 - sendEvent(AdEventAction.onAdClicked); - } - - @Override - public void onAdShow(View view, int i) { - Log.i(TAG, "onAdShow"); - // 添加广告事件 - sendEvent(AdEventAction.onAdExposure); - } - - @Override - public void onRenderFail(View view, String s, int i) { - Log.e(TAG, "onRenderFail code:" + i + " msg:" + s); - // 添加广告错误事件 - sendErrorEvent(i, s); - } - - @Override - public void onRenderSuccess(View view, float v, float v1) { - Log.i(TAG, "onRenderSuccess"); - if (iad != null && activity != null) { - iad.showInteractionExpressAd(activity); - // 添加广告事件 - sendEvent(AdEventAction.onAdPresent); - } - } - - @Override - public void onAdDismiss() { - Log.i(TAG, "onAdDismiss"); - // 添加广告事件 - sendEvent(AdEventAction.onAdClosed); - iad = null; - } -} \ No newline at end of file diff --git a/example/lib/home_page.dart b/example/lib/home_page.dart index 08d61e9..56a5742 100644 --- a/example/lib/home_page.dart +++ b/example/lib/home_page.dart @@ -137,20 +137,6 @@ class _HomePageState extends State { height: 50, autoClose: false, ), - SizedBox(height: 20), - ElevatedButton( - child: Text('展示全屏视频广告(已过时)'), - onPressed: () { - showFullScreenVideoAd(AdsConfig.fullScreenVideoId); - }, - ), - SizedBox(height: 20), - ElevatedButton( - child: Text('展示插屏广告(已过时)'), - onPressed: () { - showInterstitialAd(); - }, - ), ], ), ), @@ -238,21 +224,6 @@ class _HomePageState extends State { } } - /// 展示插屏广告 - Future showInterstitialAd() async { - try { - bool result = await FlutterPangleAds.showInterstitialAd( - AdsConfig.interstitialId, - width: 300, - height: 300, - ); - _result = "展示插屏广告${result ? '成功' : '失败'}"; - } on PlatformException catch (e) { - _result = "展示插屏广告失败 code:${e.code} msg:${e.message} details:${e.details}"; - } - setState(() {}); - } - /// 展示激励视频广告 Future showRewardVideoAd() async { try { diff --git a/lib/flutter_pangle_ads.dart b/lib/flutter_pangle_ads.dart index 1c25a35..78be935 100644 --- a/lib/flutter_pangle_ads.dart +++ b/lib/flutter_pangle_ads.dart @@ -81,26 +81,6 @@ class FlutterPangleAds { return result; } - /// 展示插屏广告 - /// [posId] 广告位 id - /// [width] 请求模板广告素材的尺寸宽度(对应 expressViewWidth 参数) - /// [height] 请求模板广告素材的尺寸高度(对应 expressViewWidth 参数) - static Future showInterstitialAd( - String posId, { - int width = 300, - int height = 300, - }) async { - final bool result = await _methodChannel.invokeMethod( - 'showInterstitialAd', - { - 'posId': posId, - 'width': width, - 'height': height, - }, - ); - return result; - } - /// 展示激励视频广告 /// [posId] 广告位 id /// [customData] 设置服务端验证的自定义信息 From a022d49a4eb2d0d81466a65e2939f5ed557a8b9c Mon Sep 17 00:00:00 2001 From: Zero <1300326388@qq.com> Date: Sat, 28 Jan 2023 15:21:32 +0800 Subject: [PATCH 11/11] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/lib/ads_config.dart | 3 -- test/ads_config.dart | 48 ++++++++++++++++++++++++++----- test/flutter_pangle_ads_test.dart | 16 +++++------ 3 files changed, 48 insertions(+), 19 deletions(-) diff --git a/example/lib/ads_config.dart b/example/lib/ads_config.dart index 77672ae..79c5c11 100644 --- a/example/lib/ads_config.dart +++ b/example/lib/ads_config.dart @@ -26,9 +26,6 @@ class AdsConfig { /// 获取开屏广告位id static String get splashId => '887870893'; - /// 获取插屏广告位id - static String get interstitialId => '949641653'; - /// 获取新插屏广告位id static String get newInterstitialId => '949641653'; diff --git a/test/ads_config.dart b/test/ads_config.dart index 7a87848..79c5c11 100644 --- a/test/ads_config.dart +++ b/test/ads_config.dart @@ -21,17 +21,51 @@ class AdsConfig { } /// 获取 App id - static String get appId => '5195673'; + static String get appId => '5324024'; /// 获取开屏广告位id - static String get splashId => '887516177'; - - /// 获取插屏广告位id - static String get interstitialId => '946584889'; + static String get splashId => '887870893'; /// 获取新插屏广告位id - static String get newInterstitialId => '946584893'; + static String get newInterstitialId => '949641653'; + + /// 获取新插屏(半屏)广告位id + static String get newInterstitialId2 => '949641665'; /// 获取激励视频广告位id - static String get rewardVideoId => '946584890'; + static String get rewardVideoId => '949641706'; + + /// 获取进阶激励视频广告位id + static String get rewardInteractVideoId => '949641720'; + + /// 获取全屏视频广告位id + static String get fullScreenVideoId => '946593099'; + + /// 获取 Banner 广告位id + static String get bannerId => '949641731'; + + /// 获取 Banner 广告位id 01 + static String get bannerId01 => '949641733'; + + /// 获取 Banner 广告位id 02 + static String get bannerId02 => '949641736'; + + /// 获取 Feed 信息流列表 + static List get feedIdList => + [feedId01, feedId02, feedId03, feedId04, feedId05]; + + /// 获取 Feed 信息流广告位id(左右图文 2.4) + static String get feedId01 => '949641744'; + + /// 获取 Feed 信息流广告位id(上下文图0.9) + static String get feedId02 => '949641747'; + + /// 获取 Feed 信息流广告位id(三图2) + static String get feedId03 => '949641752'; + + /// 获取 Feed 信息流广告位id(文字悬浮1) + static String get feedId04 => '949641755'; + + /// 获取 Feed 信息流广告位id(竖版0.5) + static String get feedId05 => '949641756'; } diff --git a/test/flutter_pangle_ads_test.dart b/test/flutter_pangle_ads_test.dart index 00fbd70..ef20eb0 100644 --- a/test/flutter_pangle_ads_test.dart +++ b/test/flutter_pangle_ads_test.dart @@ -1,6 +1,6 @@ import 'package:flutter/services.dart'; -import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_pangle_ads/flutter_pangle_ads.dart'; +import 'package:flutter_test/flutter_test.dart'; import 'ads_config.dart'; @@ -16,7 +16,7 @@ void main() { return true; } else if (method == 'showSplashAd') { return true; - } else if (method == 'showInterstitialAd') { + } else if (method == 'showFullScreenVideoAd') { return true; } else if (method == 'showRewardVideoAd') { return true; @@ -56,16 +56,14 @@ void main() { ); }); - test('showInterstitialAd', () async { + test('showFullScreenVideoAd', () async { expect( - await FlutterPangleAds.showInterstitialAd(AdsConfig.interstitialId), + await FlutterPangleAds.showFullScreenVideoAd(AdsConfig.newInterstitialId), true, ); expect( - await FlutterPangleAds.showInterstitialAd( - AdsConfig.interstitialId, - width: 600, - height: 600, + await FlutterPangleAds.showFullScreenVideoAd( + AdsConfig.newInterstitialId2, ), true, ); @@ -78,7 +76,7 @@ void main() { ); expect( await FlutterPangleAds.showRewardVideoAd( - AdsConfig.interstitialId, + AdsConfig.rewardVideoId, customData: 'FlutterAds', userId: '1024', ),