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 da0cc59..1b50810 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 <h3 align="center">一款优质的 Flutter 广告插件(字节跳动、巨量引擎、穿山甲)</h3>
 
 <p align="center">
-<a href="https://pub.dev/packages/flutter_pangle_ads"><img src=https://img.shields.io/badge/pub-v2.6.1-success></a>
+<a href="https://pub.dev/packages/flutter_pangle_ads"><img src=https://img.shields.io/badge/pub-v2.7.0-success></a>
 <a href="https://github.com/FlutterAds/flutter_pangle_ads"><img src=https://img.shields.io/badge/platform-iOS%20%7C%20Android-brightgreen></a>
 <a href="https://github.com/FlutterAds/flutter_pangle_ads/actions/workflows/flutter.yml"><img src="https://github.com/FlutterAds/flutter_pangle_ads/actions/workflows/flutter.yml/badge.svg"></a>
 <a href="https://github.com/FlutterAds/flutter_pangle_ads"><img src=https://img.shields.io/github/stars/FlutterAds/flutter_pangle_ads?color=brightgreen></a>
@@ -40,7 +40,7 @@
 
 ``` Dart
 dependencies:
-  flutter_pangle_ads: ^2.6.1
+  flutter_pangle_ads: ^2.7.0
 ```
 ### 初始化广告
 
@@ -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/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/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..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,11 +12,13 @@
 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;
 
+import org.json.JSONArray;
+import org.json.JSONObject;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -83,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)) {
@@ -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();
         }
@@ -229,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);
-    }
-
     /**
      * 显示激励视频广告
      *
@@ -292,4 +282,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);
+        }
+    }
 }
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<TTNativeExpressAd> 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/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/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'
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/example/lib/home_page.dart b/example/lib/home_page.dart
index 05ca97a..56a5742 100644
--- a/example/lib/home_page.dart
+++ b/example/lib/home_page.dart
@@ -137,20 +137,6 @@ class _HomePageState extends State<HomePage> {
                   height: 50,
                   autoClose: false,
                 ),
-                SizedBox(height: 20),
-                ElevatedButton(
-                  child: Text('展示全屏视频广告(已过时)'),
-                  onPressed: () {
-                    showFullScreenVideoAd(AdsConfig.fullScreenVideoId);
-                  },
-                ),
-                SizedBox(height: 20),
-                ElevatedButton(
-                  child: Text('展示插屏广告(已过时)'),
-                  onPressed: () {
-                    showInterstitialAd();
-                  },
-                ),
               ],
             ),
           ),
@@ -170,6 +156,10 @@ class _HomePageState extends State<HomePage> {
         ],
       );
       _result = "广告SDK 初始化${result ? '成功' : '失败'}";
+
+      // 打开个性化广告推荐
+      FlutterPangleAds.setUserExtData(personalAdsType: '1');
+
       setState(() {});
       return result;
     } on PlatformException catch (e) {
@@ -234,21 +224,6 @@ class _HomePageState extends State<HomePage> {
     }
   }
 
-  /// 展示插屏广告
-  Future<void> 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<void> showRewardVideoAd() async {
     try {
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/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 <Flutter/Flutter.h>
 #import <BUAdSDK/BUAdSDK.h>
 #import "SplashPage.h"
-#import "InterstitialPage.h"
 #import "RewardVideoPage.h"
 #import "FullScreenVideoPage.h"
 #import "FeedAdLoad.h"
@@ -10,7 +9,6 @@
 @interface FlutterPangleAdsPlugin : NSObject<FlutterPlugin,FlutterStreamHandler>
 @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 3a21d00..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]){
@@ -46,6 +44,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);
     }
@@ -82,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];
@@ -117,6 +110,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;
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<BUNativeExpresInterstitialAdDelegate>
-@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..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 广告插件
@@ -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
 
diff --git a/lib/flutter_pangle_ads.dart b/lib/flutter_pangle_ads.dart
index 0599a80..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<bool> 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] 设置服务端验证的自定义信息
@@ -172,4 +152,15 @@ class FlutterPangleAds {
       hanleAdEvent(data, onAdEventListener);
     });
   }
+
+  /// 设置个性化推荐
+  /// @params personalAdsType,不传或传空或传非01值没任何影响,默认不屏蔽, 0屏蔽个性化推荐广告, 1不屏蔽个性化推荐广告
+  static setUserExtData({required String personalAdsType}) async {
+    await _methodChannel.invokeMethod(
+      'setUserExtData',
+      {
+        'personalAdsType': personalAdsType,
+      },
+    );
+  }
 }
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:
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<String> 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',
       ),