Pangle: A global platform dedicated to developer growth.|Integration Docs
Knowledge Center

Migrate to New API

In order to enhance the integration experience, we have made substantial modifications to the interface in version 4600 and adopted a new set of integration methods. This document serves as a comprehensive interface comparison guide for upgrading from the prior version to version 4600. For further integration details, please refer to the detailed document below. If you require assistance with integrating versions prior to 4600, please refer to the old integration document.

Initialization

4500

4600

BUAdSDKConfiguration

PAGConfig

+ configuration;

+ shareConfig;

@property (nonatomic, assign) BUAdSDKTerritory territory;

N/A

@property (nonatomic, copy) NSString *appID;

@property (nonatomic, copy) NSString *appID;

@property (nonatomic, copy) NSString *secretKey;

N/A

@property (nonatomic, assign) BUAdSDKLogLevel logLevel;

N/A

@property (nonatomic, assign) BUAdSDKAgeGroup ageGroup;

N/A

@property (nonatomic, strong) NSNumber *coppa;

@property (nonatomic, assign) PAGChildDirectedType childDirected;

@property (nonatomic, copy) NSString *userExtData;

@property (nonatomic, copy) NSString *userDataString;

@property (nonatomic, assign) BUOfflineType webViewOfflineType;

N/A

@property (nonatomic, strong) NSNumber *GDPR;

@property (nonatomic, assign) PAGGDPRConsentType GDPRConsent;

@property (nonatomic, strong) NSNumber *CCPA;

@property (nonatomic, assign) PAGDoNotSellType doNotSell;

@property (nonatomic, strong) NSNumber *debugLog;

@property (nonatomic, assign) BOOL debugLog;

@property (nonatomic, strong) NSNumber *themeStatus;

@property (nonatomic, assign) PAGAdSDKThemeStatus themeStatus;

@property (nonatomic, strong) NSArray<NSNumber *> *abvids;

N/A

@property (atomic, copy) NSString *abSDKVersion;

N/A

@property (nonatomic, copy) NSString *customIdfa;

N/A

@property (nonatomic, assign) BOOL allowModifyAudioSessionSetting;

N/A

@property (nonatomic, assign) BOOL unityDeveloper;

N/A

@property (nonatomic, strong) id<BUAdSDKPrivacyProvider> privacyProvider;

N/A

@property (nonatomic, strong, nullable) UIImage *appLogoImage;

N/A

@property (nonatomic, assign) BOOL SDKDEBUG;

N/A

4500

4600

BUAdSDKManager

PAGSdk

@property (nonatomic, copy, readonly, class) NSString *SDKVersion;

@property (nonatomic, copy, readonly, class) NSString *SDKVersion;

@property (nonatomic, assign, readonly, class) BUAdSDKInitializationState initializationState;

@property (nonatomic, assign, readonly, class) PAGSDKInitializationState initializationState;

+ (void)startWithSyncCompletionHandler:(BUCompletionHandler)completionHandler;

N/A

+ (void)startWithAsyncCompletionHandler:(BUCompletionHandler)completionHandler;

+ (void)startWithConfig:(PAGConfig *)config completionHandler:(nullable PAGAdsCompletionHandler)completionHandler;

+ (void)openGDPRPrivacyFromRootViewController:(UIViewController *)rootViewController confirm:(BUConfirmGDPR)confirm;

N/A

+ (void)setTerritory:(BUAdSDKTerritory)territory;

N/A

+ (void)setAppID:(NSString *)appID;

N/A

+ (void)setSecretKey:(NSString *)secretKey;

N/A

+ (void)setLoglevel:(BUAdSDKLogLevel)level;

N/A

+ (void)setAgeGroup:(BUAdSDKAgeGroup)ageGroup;

N/A

+ (void)setCoppa:(NSInteger)coppa;

N/A

+ (void)setUserKeywords:(NSString *)keywords;

N/A

+ (void)setUserExtData:(NSString *)data;

@property (nonatomic, copy) NSString *userDataString;

+ (void)setOfflineType:(BUOfflineType)type;

N/A

+ (void)setGDPR:(NSInteger)GDPR;

N/A

+ (void)setCCPA:(NSInteger)CCPA;

N/A

+ (void)setABVidArray:(NSArray<NSNumber *> *)abvids;

N/A

+ (void)setABSDKVersion:(NSString *)abSDKVersion;

N/A

+ (void)setCustomIDFA:(NSString *)idfa;

N/A

+ (void)setThemeStatus:(BUAdSDKThemeStatus)themeStatus;

N/A

+ (NSString *)appID;

N/A

+ (NSInteger)GDPR;

N/A

+ (NSInteger)coppa;

N/A

+ (NSInteger)CCPA;

N/A

+ (void)allowModifyAudioSessionSetting:(BOOL)isAllow;

N/A

+ (BUAdSDKThemeStatus)themeStatus;

N/A

- (void)setAdMarkup:(NSString *)adm;

PAGRequest :

/// Ad string that represents an ad response. The SDK will render this ad and ignore all other

/// targeting information set on this request.

@property (nonatomic, copy) NSString *adString;

- (void)setMopubAdMarkUp:(NSString *)adm;

N/A

+ (nullable NSDictionary *)AdTypeWithRit:(NSString *)rit error:(NSError **)error;

N/A

+ (NSDictionary *)AdTypeWithAdMarkUp:(NSString *)adm;

N/A

+ (NSString *)mopubBiddingToken;

+ (NSString *)getBiddingToken:(nullable NSString *)slotID;

+ (NSString *)getBiddingToken:(nullable NSString *)slotID;


Native

4500

4600

BUNativeAd

PAGLNativeAd

@property (nonatomic, strong, readwrite, nullable) BUAdSlot *adslot;

N/A

@property (atomic, strong, readonly, nullable) BUMaterialMeta *data;

@property (nonatomic, strong, readonly) PAGLMaterialMeta *data;

@property (nonatomic, weak, readwrite, nullable) id<BUNativeAdDelegate> delegate;

@property (nonatomic, weak, nullable) id<PAGLNativeAdDelegate> delegate;

@property (nonatomic, weak, readwrite) UIViewController *rootViewController;

@property (nonatomic, weak) UIViewController *rootViewController;

- (instancetype)initWithSlot:(BUAdSlot *)slot;

N/A

- (void)registerContainer:(__kindof UIView *)containerView withClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews;

- (void)registerContainer:(__kindof UIView *)containerView withClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews;

- (void)unregisterView;

- (void)unregisterView;

- (void)loadAdData;

+ (void)loadAdWithSlotID:(NSString *)slotID request:(PAGNativeRequest *)request completionHandler:(PAGNativeADLoadCompletionHandler)completionHandler;

- (NSString *)getAdCreativeToken;

N/A

4500

4600

BUNativeAdDelegate

PAGLNativeAdDelegate

- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd;

PAGNativeADLoadCompletionHandler

- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd view:(UIView *_Nullable)view;

- (void)nativeAd:(BUNativeAd *)nativeAd didFailWithError:(NSError *_Nullable)error;

- (void)nativeAdDidBecomeVisible:(BUNativeAd *)nativeAd;

- (void)adDidShow:(id<PAGAdProtocol>)ad;

- (void)nativeAdDidCloseOtherController:(BUNativeAd *)nativeAd interactionType:(BUInteractionType)interactionType;

N/A

- (void)nativeAdDidClick:(BUNativeAd *)nativeAd withView:(UIView *_Nullable)view;

- (void)adDidClick:(id<PAGAdProtocol>)ad;

- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd dislikeWithReason:(NSArray<BUDislikeWords *> *_Nullable)filterWords;

- (void)adDidDismiss:(id<PAGAdProtocol>)ad;

- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd adContainerViewDidRemoved:(UIView *)adContainerView;

4500

4600

BUNativeAdRelatedView

PAGNativeAdRelatedView

@property (nonatomic, strong, readonly, nullable) UIButton *dislikeButton;

@property (nonatomic, strong, readonly) UIButton *dislikeButton;

@property (nonatomic, strong, readonly, nullable) UILabel *adLabel;

@property (nonatomic, strong, readonly) PAGMediaView *mediaView;

@property (nonatomic, strong, readonly, nullable) UIImageView *logoImageView;

@property (nonatomic, strong, readonly, nullable) BUVideoAdView *videoAdView;

@property (nonatomic, strong, readonly, nullable) UIImageView *logoADImageView;

@property (nonatomic, strong, readonly) UIImageView *logoADImageView;

@property (nonatomic, strong, readonly, nullable) id<BUVideoAdReportor> videoAdReportor;

N/A

- (void)refreshData:(BUNativeAd *)nativeAd;

- (void)refreshWithNativeAd:(PAGLNativeAd *)nativeAd;

Banner

4500

4600

BUNativeExpressBannerView

PAGBannerAd

@property (nonatomic, weak, nullable) id<BUNativeExpressBannerViewDelegate> delegate

@property (nonatomic, weak, nullable) id<PAGBannerAdDelegate> delegate

N/A

@property (nonatomic, strong, readonly) UIView *bannerView

@property (nonatomic, assign, readonly) NSInteger interval

N/A

@property (nonatomic, copy, readonly) NSDictionary *mediaExt

N/A

- (instancetype)initWithSlotID:(NSString *)slotIDrootViewController:(UIViewController *)rootViewControlleradSize:(CGSize)adsize

N/A

- (instancetype)initWithSlotID:(NSString *)slotIDrootViewController:(UIViewController *)rootViewControlleradSize:(CGSize)adsizeinterval:(NSInteger)interval

N/A

- (instancetype)initWithSlot:(BUAdSlot *)slotrootViewController:(UIViewController *)rootViewControlleradSize:(CGSize)adsize

N/A

- (instancetype)initWithSlot:(BUAdSlot *)slotrootViewController:(UIViewController *)rootViewControlleradSize:(CGSize)adsizeinterval:(NSInteger)interval

N/A

N/A

@property (nonatomic, weak, readwrite) UIViewController *rootViewController

- (void)loadAdData

+ (void)loadAdWithSlotID:(NSString *)slotIDrequest:(PAGBannerRequest *)requestcompletionHandler:(PAGBannerADLoadCompletionHandler)completionHandler

- (NSString *)getAdCreativeToken

N/A

4500

4600

BUNativeExpressBannerViewDelegate

PAGBannerAdDelegate

- (void)nativeExpressBannerAdViewWillBecomVisible:(BUNativeExpressBannerView *)bannerAdView

- (void)adDidShow:(id<PAGAdProtocol>)ad

- (void)nativeExpressBannerAdViewDidClick:(BUNativeExpressBannerView *)bannerAdView

- (void)adDidClick:(id<PAGAdProtocol>)ad

- (void)nativeExpressBannerAdViewDidRemoved:(BUNativeExpressBannerView *)bannerAdVie

- (void)adDidDismiss:(id<PAGAdProtocol>)ad

- (void)nativeExpressBannerAdViewDidLoad:(BUNativeExpressBannerView *)bannerAdView

N/A

- (void)nativeExpressBannerAdView:(BUNativeExpressBannerView *)bannerAdView didLoadFailWithError:(NSError *_Nullable)error

N/A

- (void)nativeExpressBannerAdViewRenderSuccess:(BUNativeExpressBannerView *)bannerAdView

N/A

- (void)nativeExpressBannerAdViewRenderFail:(BUNativeExpressBannerView *)bannerAdView error:(NSError * __nullable)error

N/A

- (void)nativeExpressBannerAdView:(BUNativeExpressBannerView *)bannerAdView dislikeWithReason:(NSArray<BUDislikeWords *> *_Nullable)filterwords

N/A

- (void)nativeExpressBannerAdViewDidCloseOtherController:(BUNativeExpressBannerView *)bannerAdView interactionType:(BUInteractionType)interactionType

N/A

Interstitial

4500

4600

BUFullscreenVideoAd

PAGLInterstitialAd

@property (nonatomic, weak, nullable) id<BUFullscreenVideoAdDelegate> delegate;

@property(nonatomic, weak, nullable) id<PAGLInterstitialAdDelegate> delegate;

@property (nonatomic, copy, readonly) NSDictionary *mediaExt;

N/A

@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload;

N/A

@property (nonatomic, assign, readonly) NSTimeInterval expireTimestamp;

N/A

- (instancetype)initWithSlotID:(NSString *)slotID;

N/A

- (instancetype)initWithSlot:(BUAdSlot *)slot;

N/A

- (void)loadAdData;

+ (void)loadAdWithSlotID:(NSString *)slotIDrequest:(PAGInterstitialRequest *)requestcompletionHandler:(PAGInterstitialAdLoadCompletionHandler)completionHandler;

- (NSString *)getAdCreativeToken;

N/A

- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController;

- (void)presentFromRootViewController:(UIViewController *)rootViewController;

- (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe;

- (NSTimeInterval)getExpireTimestamp;

N/A

4500

4600

BUFullscreenVideoAdDelegate

PAGLInterstitialAdDelegate

- (void)fullscreenVideoMaterialMetaAdDidLoad:(BUFullscreenVideoAd *)fullscreenVideoAd;

N/A

- (void)fullscreenVideoAd:(BUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error;

N/A

- (void)fullscreenVideoAdVideoDataDidLoad:(BUFullscreenVideoAd *)fullscreenVideoAd;

N/A

- (void)fullscreenVideoAdWillVisible:(BUFullscreenVideoAd *)fullscreenVideoAd;

N/A

- (void)fullscreenVideoAdDidVisible:(BUFullscreenVideoAd *)fullscreenVideoAd;

- (void)adDidShow:(id<PAGAdProtocol>)ad;

- (void)fullscreenVideoAdDidClick:(BUFullscreenVideoAd *)fullscreenVideoAd;

- (void)adDidClick:(id<PAGAdProtocol>)ad;

- (void)fullscreenVideoAdWillClose:(BUFullscreenVideoAd *)fullscreenVideoAd;

N/A

- (void)fullscreenVideoAdDidClose:(BUFullscreenVideoAd *)fullscreenVideoAd;

- (void)adDidDismiss:(id<PAGAdProtocol>)ad;

- (void)fullscreenVideoAdDidPlayFinish:(BUFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error;

N/A

- (void)fullscreenVideoAdDidClickSkip:(BUFullscreenVideoAd *)fullscreenVideoAd;

N/A

- (void)fullscreenVideoAdCallback:(BUFullscreenVideoAd *)fullscreenVideoAd withType:(BUFullScreenVideoAdType)fullscreenVideoAdType;

N/A

Rewarded

4500

4600

BURewardedVideoAd

PAGRewardedAd

@property (nonatomic, strong) BURewardedVideoModel *rewardedVideoModel;

N/A

@property (nonatomic, weak, nullable) id<BURewardedVideoAdDelegate> delegate;

@property (nonatomic, weak, nullable) id<PAGRewardedAdDelegate> delegate;

@property (nonatomic, weak, nullable) id<BURewardedVideoAdDelegate> rewardPlayAgainInteractionDelegate;

N/A

@property (nonatomic, getter=isAdValid, readonly) BOOL adValid __attribute__((deprecated("Use rewardedVideoAdDidLoad: instead.")));

N/A

@property (nonatomic, copy, readonly) NSDictionary *mediaExt;

N/A

@property (nonatomic, assign, readonly) BOOL materialMetaIsFromPreload;

N/A

@property (nonatomic, assign,readonly) NSTimeInterval expireTimestamp;

N/A

- initWithSlotID: rewardedVideoModel:

N/A

- initWithSlot: rewardedVideoModel:

N/A

- loadAdData

+ (void)loadAdWithSlotID:(NSString *)slotIDrequest:(PAGRewardedRequest *)requestcompletionHandler:(PAGRewardedAdLoadCompletionHandler)completionHandler;

- getAdCreativeToken

N/A

- showAdFromRootViewController:

- (void)presentFromRootViewController:(UIViewController *)rootViewController;

- showAdFromRootViewController: ritScene: ritSceneDescribe:

N/A

- getExpireTimestamp

N/A

4500

4600

BURewardedVideoAdDelegate

PAGRewardedAdDelegate

- rewardedVideoAdDidLoad:

N/A

- rewardedVideoAd: didFailWithError:

N/A

- rewardedVideoAdVideoDidLoad:

N/A

- rewardedVideoAdWillVisible:

N/A

- rewardedVideoAdDidVisible:

- (void)adDidShow:(id<PAGAdProtocol>)ad;

- rewardedVideoAdWillClose:

N/A

- rewardedVideoAdDidClose:

- (void)adDidDismiss:(id<PAGAdProtocol>)ad;

- rewardedVideoAdDidClick:

- (void)adDidClick:(id<PAGAdProtocol>)ad;

- rewardedVideoAdDidPlayFinish: didFailWithError:

N/A

- rewardedVideoAdServerRewardDidSucceed: verify:

- (void)rewardedAd:(PAGRewardedAd *)rewardedAd userDidEarnReward:(PAGRewardModel *)rewardModel;

- rewardedVideoAdServerRewardDidFail:

N/A

- rewardedVideoAdServerRewardDidFail: error:

- (void)rewardedAd:(PAGRewardedAd *)rewardedAd userEarnRewardFailWithError:(NSError *)error;

- rewardedVideoAdDidClickSkip:

N/A

- rewardedVideoAdCallback: withType:

N/A

OpenAd

4500

4600

BUAppOpenAd

PAGLAppOpenAd

@property (nonatomic, weak, nullable) id<BUAppOpenAdDelegate> delegate;

@property (nonatomic, weak, nullable) id<PAGLAppOpenAdDelegate> delegate;

- initWithSlot:

N/A

- loadOpenAdWithTimeout:completionHandler:

+ (void)loadAdWithSlotID:(NSString *)slotIDrequest:(PAGOpenRequest *)requestcompletionHandler:(PAGAppOpenADLoadCompletionHandler)completionHandler;

- presentFromRootViewController:

- (void)presentFromRootViewController:(UIViewController *)rootViewController;

4500

4600

BUAppOpenAdDelegate

PAGLAppOpenAdDelegate

- didPresentForAppOpenAd:

- (void)adDidShow:(id<PAGAdProtocol>)ad;

- didClickForAppOpenAd:

- (void)adDidClick:(id<PAGAdProtocol>)ad;

- didClickSkipForAppOpenAd:

- (void)adDidDismiss:(id<PAGAdProtocol>)ad;

- countdownToZeroForAppOpenAd: