Translate_offine/HD wallpaper/WallPapaerADManager/WallPapaerADManager.m
2024-07-03 17:31:03 +08:00

170 lines
5.3 KiB
Objective-C

//
// WallPapaerADManager.m
// HD wallpaper
//
// Created by aaa on 2024/7/3.
//
#import "WallPapaerADManager.h"
#import <AppLovinSDK/AppLovinSDK.h>
@interface WallPapaerADManager()<MAAdDelegate>
@property (nonatomic,strong) MAAppOpenAd *openAD;
@property (nonatomic,strong) MAInterstitialAd *interstitialAD_Back;
@property (nonatomic,strong) MAInterstitialAd *interstitialAD_Save;
@property (nonatomic,strong) MAInterstitialAd *interstitialAD_Search;
@property (nonatomic,strong) ALSdkInitializationConfiguration *adConfig;
@property (nonatomic) NSInteger retryAttempt_OpenAD;
@property (nonatomic) NSInteger retryAttempt_backAD;
@property (nonatomic) NSInteger retryAttempt_saveAD;
@property (nonatomic) NSInteger retryAttempt_searchAD;
@property (nonatomic,strong) NSTimer *openADTimer;
@end
//
#define kAppLovinSDK_Key @"EG89nBMcGXrN1_U_svJiPhCMTsVu7TEkWvOGtVJUbh4x1Ds9cKJy8pzKr6LXKL7zQXbN3PLy4Q6MRl3oT3lgbX"
#define kWallPaper_OpenAD @"228275830e494edc" //开屏
#define kInterstitial_BackAD @"43c096614eb15e06"//返回 插页
#define kInterstitial_SaveAD @"99a545c14fe760b4" //保存 插页
#define kInterstitial_SearchAD @"fcfba91be4420a25" //搜索 插页
@implementation WallPapaerADManager
//配置广告
- (void)configureAD{
_adConfig = [ALSdkInitializationConfiguration configurationWithSdkKey: kAppLovinSDK_Key builderBlock:^(ALSdkInitializationConfigurationBuilder *builder) {
builder.mediationProvider = ALMediationProviderMAX;
}];
// Initialize the SDK with the configuration
[[ALSdk shared] initializeWithConfiguration: _adConfig completionHandler:^(ALSdkConfiguration *sdkConfig) {
// Start loading ads
}];
}
+ (instancetype)shareInstance {
static WallPapaerADManager * instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [WallPapaerADManager new];
});
return instance;
}
- (id)init {
self = [super init];
if(self){
}
return self;
}
- (void)initOpenAD{
__weak typeof(self)wealSelf = self;
[[ALSdk shared] initializeWithConfiguration:_adConfig completionHandler:^(ALSdkConfiguration * _Nonnull configuration) {
wealSelf.openAD = [[MAAppOpenAd alloc] initWithAdUnitIdentifier:kWallPaper_OpenAD];
wealSelf.openAD.delegate = wealSelf;
[wealSelf.openAD loadAd];
}];
}
- (void)showOpenAD {
if ( ![[ALSdk shared] isInitialized] )
{
return;
}
if ( [self.openAD isReady] )
{
[self.openAD showAdForPlacement: @"«test-placement-ID»"];
}
else
{
[self.openAD loadAd];
}
}
- (void)loadAD:(MAAd *)ad{
if([ad.adUnitIdentifier isEqualToString:self.openAD.adUnitIdentifier]) {
[self.openAD loadAd];
}
else if ([ad.adUnitIdentifier isEqualToString:self.interstitialAD_Back.adUnitIdentifier]) {
[self.interstitialAD_Back loadAd];
}
else if ([ad.adUnitIdentifier isEqualToString:self.interstitialAD_Save.adUnitIdentifier]) {
[self.interstitialAD_Save loadAd];
}
else if ([ad.adUnitIdentifier isEqualToString:self.interstitialAD_Search.adUnitIdentifier]) {
[self.interstitialAD_Search loadAd];
}
}
//#pragma mark - MAAdDelegate Protocol
- (void)didLoadAd:(MAAd *)ad {
self.retryAttempt_OpenAD = 0;
self.retryAttempt_saveAD = 0;
self.retryAttempt_backAD = 0;
self.retryAttempt_searchAD = 0;
}
- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error {
NSLog(@"加载广告失败....");
if([adUnitIdentifier isEqualToString:self.openAD.adUnitIdentifier]) {
self.retryAttempt_OpenAD++;
NSInteger delaySec = pow(2, MIN(6, self.retryAttempt_OpenAD));
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.openAD loadAd];
});
}
else if ([adUnitIdentifier isEqualToString:self.interstitialAD_Search.adUnitIdentifier]) {
self.retryAttempt_searchAD++;
NSInteger delaySec = pow(2, MIN(6, self.retryAttempt_searchAD));
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.interstitialAD_Search loadAd];
});
}
else if ([adUnitIdentifier isEqualToString:self.interstitialAD_Back.adUnitIdentifier]) {
self.retryAttempt_backAD++;
NSInteger delaySec = pow(2, MIN(6, self.retryAttempt_backAD));
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.interstitialAD_Back loadAd];
});
}
else if ([adUnitIdentifier isEqualToString:self.interstitialAD_Save.adUnitIdentifier]) {
self.retryAttempt_saveAD++;
NSInteger delaySec = pow(2, MIN(6, self.retryAttempt_saveAD));
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self.interstitialAD_Save loadAd];
});
}
}
- (void)didDisplayAd:(MAAd *)ad {
NSLog(@"成功展示了ad....");
}
- (void)didClickAd:(MAAd *)ad {
NSLog(@"点击了广告.....");
}
- (void)didHideAd:(MAAd *)ad{
NSLog(@"隐藏了ad....");
[self loadAD:ad];
}
- (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error{
NSLog(@"展示广告失败....");
[self loadAD:ad];
}
@end