IOS和Android OpenGL游戏引擎的集成AdMob新版教程

大城市里の小女人 提交于 2019-12-06 00:24:49

一:前提条件
下载适用于Android 或IOS的Google移动广告SDK

二:实用的入门信息
如果您使用采用Android或IOS代码的OpenGL来集成Google 移动广告,快速入门指南 (Android | IOS) 和插页式广告指南(Android |IOS) 是很好的入门信息,可帮助您了解如何使用SDK。

三:OpenGL 游戏 - 横幅广告
如果您使用基于OpenGL的游戏引擎,但使用原生的Android和IOS SDK 来集成广告,我们建议您仅在游戏暂停或结束时,或者在用户未主动玩游戏的屏幕上展示横幅广告。这样做的优势在于:
1:更好的用户体验 - 用户不希望在玩游戏的过程中被广告干扰

2:效果 - 广告可能会影响游戏的帧速率

3:防止出现意外点击

以下示例说明如何使用最少的代码添加横幅广告。在适当的时间加载横幅广告则是您的责任。

四:IOS
此示例基于SpriteKit,但适用于所有框架。当为SpriteKit游戏创建新的 Xcode 项目时,您的GameViewController的viewDidLoad方法的样板代码如下所示:
- (void)viewDidLoad{

[super viewDidLoad];

// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = YES;
skView.showsNodeCount = YES;

/* Sprite Kit applies additional optimizations to improve rendering performance */

skView.ignoresSiblingOrder = YES;

// Create and configure the scene.
GameScene *scene = [GameScene unarchiveFromFile:@"GameScene"];
scene.scaleMode = SKSceneScaleModeAspectFill;

[skView presentScene:scene];

}

将SDK添加到项目后,请更新viewDidLoad方法以加入一个横幅广告。在此示例中,我们使用了智能横幅广告格式并在屏幕左上方将其初始化:
- (void)viewDidLoad {

[super viewDidLoad];

// Create a banner ad and add it to the view hierarchy.
self.bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait];

self.bannerView.hidden=YES;
self.bannerView.adUnitID=@"ca-app-pub-3940256099942544/2934735716";
self.bannerView.rootViewController=self;
[self.view addSubview:self.bannerView];

// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = YES;
skView.showsNodeCount = YES;

/* Sprite Kit applies additional optimizations to improve rendering performance */

skView.ignoresSiblingOrder = YES;

// Create and configure the scene.
GameScene *scene = [GameScene unarchiveFromFile:@"GameScene"];
scene.scaleMode = SKSceneScaleModeAspectFill;

// Present the scene.
[skView presentScene:scene];

}

要解决编译错误,请在文件上部导入GADBannerView并添加bannerView属性。

#import "GADBannerView.h"

@interface GameViewController()

@property(nonatomic, strong) GADBannerView *bannerView;

@end

您的应用现在已经可以展示横幅广告了。剩下的一个步骤是显示广告和发送广告请求。这可以采用名为showBanner的辅助方法来完成:

- (void)showBanner {
self.bannerView.hidden = NO;
GADRequest *request = [GADRequest request];
request.testDevices = @[ GAD_SIMULATOR_ID ];
[self.bannerView loadRequest:request];

}

调用showBanner之后,您的游戏将显示一个横幅广告。

您希望在用户玩游戏期间将广告隐藏起来,这可以通过调用 hideBanner方法来完成:
- (void)hideBanner {

self.bannerView.hidden = YES;

}

游戏结束时,请再次调用showBanner方法以刷新并显示广告。

五:Android
大部分基于OpenGL的Android游戏都使用SurfaceView的形式。您的主活动如下所示:
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

SurfaceView gameView = new SurfaceView(this);
setContentView(gameView);
    }

}

以下示例使用RelativeLayout将智能横幅广告固定在屏幕底部。
public class MainActivity extends Activity {
       private AdView adView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

SurfaceView gameView = new SurfaceView(this);

// Create and load the AdView.
adView = new AdView(this);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
adView.setAdSize(AdSize.SMART_BANNER);

// Create a RelativeLayout as the main layout and add the gameView.
RelativeLayout mainLayout = new RelativeLayout(this);
mainLayout.addView(gameView);

// Add adView to the bottom of the screen.
RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
mainLayout.addView(adView, adParams);

// Set the RelativeLayout as the main layout.
setContentView(mainLayout);
    }

}

您的应用现在已经可以展示横幅广告了。剩下的一个步骤是显示广告和发送广告请求。这可以采用名为showBanner的辅助方法来完成:

private void showBanner() {
adView.setVisibility(View.VISIBLE);

adView.loadAd(new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build());

}

调用showBanner之后,您的游戏将显示一个横幅广告。

您希望在用户玩游戏期间将广告隐藏起来,这可以通过调用hideBanner方法来完成:
private void hideBanner() {

adView.setVisibility(View.GONE);

}
游戏结束时,请再次调用showBanner方法以刷新并显示广告。

KeyMob是一个专业的移动应用广告管理工具,他可以集成admob广告、iad、等众多流行广告平台。即可以集成Android版还可以集成IOS版OpenGL游戏引擎。可以看出KeyMob对各个平台集成是最方便快捷,支持的平台也比较多。无需单独的SDK来集成,还可以在应用内进行交叉推广的广告聚合平台。唯一存在不足之处就是他的发展历史比较晚,了解这个工具的人比较少,但是随着互联网在发展,KeyMob也在不断地升级与优化之中。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!