Bái này mình sẽ hướng dẫn cách tích hợp Admob Banner vào Cocos Creator cho iOS. Sau khi build project từ Cocos Creator, mở project bằng Xcode rồi tiến hành các bước sau:
1. Thêm package “Google Mobile Ads” vào dự án
Từ Navigator panel, chọn tên dự án. Từ menu “File”, chọn “Add package dependencies”. Nhập đường link sau vào phần “Search”
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Tại phần “Add to Project”, chọn tên dự án đang làm việc sau đó chọn “Add Package”
2. Tạo class quản lý Banner Ad
Nhấp chuột phải vào thư mục “ios”, chọn “New File”, “Cocoa Touch Class”, nhập vào tên “BannerAdManager”. Lúc này Xcode sẽ tạo ra 2 file “BannerAdManager.h” và “BannerAdManager.mm”
3. Nhập nội dung sau vào file BannerAdManager.h
#ifndef BannerAdManager_h
#define BannerAdManager_h
#import <Foundation/Foundation.h>
#import <GoogleMobileAds/GoogleMobileAds.h>
@interface BannerAdManager : NSObject
+(BannerAdManager *)sharedInstance: (UIViewController *)uiController;
@property(nonatomic, strong) GADBannerView *bannerView;
@property(strong, nonatomic) UIViewController* rootController;
- (void)loadAd;
@end
#endif /* BannerAdManager_h */
4. Nhập nội dung sau vào file BannerAdManager.mm
#import "BannerAdManager.h"
@implementation BannerAdManager
+(BannerAdManager *)sharedInstance: (UIViewController *)uiController {
static dispatch_once_t pred;
static BannerAdManager *sharedInstance = nil;
dispatch_once(&pred, ^{
sharedInstance = [[BannerAdManager alloc] init];
sharedInstance.rootController = uiController;
sharedInstance.bannerView = [[GADBannerView alloc]
initWithAdSize:GADAdSizeBanner];
[sharedInstance addBannerViewToView];
});
return sharedInstance;
}
- (void)addBannerViewToView {
self.bannerView.translatesAutoresizingMaskIntoConstraints = NO;
[self.rootController.view addSubview:self.bannerView];
[self.rootController.view addConstraints:@[
[NSLayoutConstraint constraintWithItem:self.bannerView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.rootController.view.safeAreaLayoutGuide
attribute:NSLayoutAttributeBottom
multiplier:1
constant:0],
[NSLayoutConstraint constraintWithItem:self.bannerView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.rootController.view
attribute:NSLayoutAttributeCenterX
multiplier:1
constant:0]
]];
}
- (void)loadAd {
NSString *adUnitID = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"GADBannerUnitID"];
self.bannerView.adUnitID = adUnitID;
self.bannerView.rootViewController = self.rootController;
[self.bannerView loadRequest:[GADRequest request]];
}
@end
5. Thêm vào file AppController.mm nội dung sau:
#import "BannerAdManager.h"
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[SDKWrapper getInstance] application:application didFinishLaunchingWithOptions:launchOptions];
// initialize Google admob
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
...
[[BannerAdManager sharedInstance:_viewController] loadAd];