怎么在unity3d 添加广告里添加admob广告

1387人阅读
网上有很多在unity3d 中加入admob方法这里只是记录一些要点给自己做个备忘,必竞广告搞好一次就不用再管了,下一个新项目时容易忘记!
主要方法来自/zhiweifire/archive//2216892.html 这篇博客,这里感谢一下博主的分享
1、包名必需一致 package name&
2、在unity 工程目录中的Asset/plugins/android/目录中&AndroidManifest.xml,res,libs,bin 这几个是需的,其它可以不要,看着整奇一些
3、用eclipse 导出jar时,可以只打包src这个目录。生成的jar 放在unity 工程目录中的Asset/plugins/android/bin 目录中&
4、在unity 工程目录中的Asset/plugins/android/libs 中放入admob的jar包,其它广告平台也是一样的!
说得不是很清楚明白,不清楚的地方可以参考上面那篇博文!
下面这篇博文还有利用JNI 调用android 通信的调用java方法来达到展示与隐藏广告的目的,类似的也可以通过此方法来与android应用通信。
http://blog.csdn.net/libeifs/article/details/7110371&感谢一下博主的分享
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:46498次
排名:千里之外
原创:19篇
评论:21条unity调用Admob广告服务和IOS调用没有太大区别,几乎80%的工作都是OC完成,Unity仅需要以插件形式调用OC函数就成,所以此文需要一定的OC基础,有了OC的基础,仅需要注意一点,unity导出的xcode工程与普通Xcode不同之处在于,unity导出的iPhone_target2AppDelegate文件不起作用,他把所有的代码都放到AppController里。祝大家好运!
Admob1.h文件
#import &UIKit/UIKit.h&
#import "GADBannerViewDelegate.h"
@class GADBannerView,GADR
@interface Admob1 : UIViewController&GADBannerViewDelegate&{
GADBannerView *adBanner_;
UIView *shareV
@property(nonatomic,retain)GADBannerView *adB
@property(nonatomic,retain)UIView *shareV
+(Admob1*)returnAdmobV
-(GADRequest*)createR
-(id)admobS
-(void)refreshAd;
Admob1.m文件
#import "Admob1.h"
#import "GADBannerView.h"
"GADRequest.h"
#define AdmobID @"****************"//admob的ID
@implementation Admob1
@synthesize adBanner=adBanner_;
@synthesize shareV
static Admob1*
+(Admob1*)returnAdmobView{
if(admob==NULL){
admob=[[Admob1 alloc]init];
-(id)admobShow{
CGRect frame=CGRectMake(0.0,0.0,//self.view.frame.size.height-GAD_SIZE_320x50.height
GAD_SIZE_320x50.width,
GAD_SIZE_320x50.height);
UIView *tempView=[[[UIView alloc]initWithFrame:frame]autorelease];
adBanner_=[[[GADBannerView alloc]initWithFrame:frame] retain];
adBanner_.adUnitID=AdmobID;
adBanner_.delegate=
[adBanner_ setRootViewController:self];
[[[UIApplication sharedApplication] keyWindow]
addSubview:tempView];//把新建的View添加到整个视图的window上
[tempView addSubview:adBanner_];//把广告view添加到新建的view上
[adBanner_ loadRequest:[self createRequest]];
tempView.transform = CGAffineTransformMakeRotation(M_PI_2);//把新建的view选装90度,也就意味着广告被选装90度,这个可以根据需求来,(注意:读者可能很纳闷,为什么要无缘无故多创建一个tempView,因为要对广告做旋转,直接操作adBanner_会有错误,所以必须的创建tempView,通过他来旋转。不做旋转的朋友可以直接[[[UIApplication sharedApplication] keyWindow]
addSubview:adBanner_]),省略对tempView的操作)
[[NSTimer scheduledTimerWithTimeInterval:15 target:self selector:@selector(refreshAd) userInfo:nil repeats:YES]retain];//添加循环计数器,每隔15秒调用一次刷新函数
tempView.hidden=YES;//因为不想让游戏一起来,就看到广告 所以对广告隐藏,需要的时候 设置他显示
return tempV
-(void)refreshAd
[adBanner_ loadRequest:[self createRequest]];//刷新广告
-(void)dealloc{
adBanner_.delegate=
[adBanner_ release];
[super dealloc];
#pragma mark GADRequest generation
// Here we're creating a simple GADRequest and whitelisting the application
// for test ads. You should request test ads during development to avoid
// generating invalid impressions and clicks.
-(GADRequest*)createRequest{
GADRequest *request=[GADRequest request];
#pragma mark GADBannerViewDelegate impl
-(void)adViewDidReceiveAd:(GADBannerView *)adview{
[UIView animateWithDuration:1.0 animations:^{
adview.frame=CGRectMake(0.0,50.0,//self.view.frame.size.height-adview.frame.size.height
adview.frame.size.width,
adview.frame.size.height);
-(void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error{
NSLog(@"failed to receive ad with error :%@",[error localizedFailureReason]);
#import "Admob1.h"
extern "C" {
void _Admob() //C#中以插件的形式调用
此函数在start函数里面调用
[Admob1 returnAdmobView].shareView=[[Admob1 returnAdmobView] admobShow];
void _setAdHide(int bHide, int x, int y, int width, int height)//调用这个来设置广告的位置 大小 是否可见
if([Admob1 returnAdmobView].shareView!=NULL)
if(bHide==1)
[[Admob1 returnAdmobView].shareView setHidden:NO];
((UIView*)[[Admob1 returnAdmobView].shareView ]).frame=CGRectMake(x,y,width,height);
[[Admob1 returnAdmobView].shareView setHidden:YES];
阅读(...) 评论()下次自动登录
现在的位置:
& 综合 & 正文
android应用中加入admob(unity,eclipse均可)
1.注册admob账号,获取ID 网址
2.下载admob的SDK,在eclipse中导入admob的jar包
4.我使用的是4.3.1的版本,这个版本要求SDK版本在3.2以上,即在project.properties文件中target=android-13,如果这个不改,那么在AndroidManifest.xml的配置中,你就悲剧了。
5.AndroidManifest.xml配置如下
&?xml version="1.0" encoding="utf-8"?&
&manifest xmlns:android="/apk/res/android"
package="com.mjm.nono"
android:versionCode="1"
android:versionName="1.0" &
&uses-sdk android:minSdkVersion="7" /&
&application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" &
android:label="@string/app_name"
android:name=".AdsActivity"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" &
&intent-filter &
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.LAUNCHER" /&
&/intent-filter&
&/activity&
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:name="com.google.ads.AdActivity" /&
&/application&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&/manifest&
如果没有修改之前的project.properties文件中target=android-13,
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
这句话就会报错。因为uiMode是到8才出现的,而screenSize和smallestScreenSize是到13才出现的。
6.设置如下,适用于Unity:
我没有用xml进行布局,直接代码控制布局叠加在当前布局之上,间隔一段时间就会出现广告,点击广告上的关闭按钮,进行关闭。
如果是在Unity进行添加,还需导入classes.jar的包,然后继承UnityPlayerActivity类。如果不是的话,直接继承Activity类。然后在onCreate设置你的View
public class AdsActivity extends UnityPlayerActivity {
protected static final int HANDLER_SHOW = 0;
protected static final int HANDLER_HIDE = 1;
private boolean adVisible =
private AdView adV
private Button bt1;
boolean show =
boolean rec=
Handler h = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case HANDLER_HIDE:
if (adVisible) {
System.out.println("hahahahah");
bt1.setVisibility(View.GONE);
adView.setVisibility(View.GONE);
adVisible =
case HANDLER_SHOW:
if (!adVisible) {
bt1.setVisibility(View.VISIBLE);
adView.setVisibility(View.VISIBLE);
adVisible =
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ShowAds();
timer = new Timer(true);
timer.schedule(task, );
TimerTask task = new TimerTask() {
public void run() {
System.out.println("start");
if (!adVisible&&rec) {
Message message = new Message();
message.what = HANDLER_SHOW;
h.sendMessage(message);
public void onDestroy() {
if (adView != null) {
adView.destroy();
timer.cancel();
super.onDestroy();
public void ShowAds() {
RelativeLayout layout2 = new RelativeLayout(this);
adView = new AdView(this, AdSize.IAB_BANNER, "a14f436bec13378");
AdRequest adRequest = new AdRequest();
adView.loadAd(adRequest);
adView.setAdListener(new AdListener() {
public void onReceiveAd(Ad arg0) {
// TODO Auto-generated method stub
bt1.setVisibility(View.VISIBLE);
System.out.println("ad rec");
public void onPresentScreen(Ad arg0) {
// TODO Auto-generated method stub
public void onLeaveApplication(Ad arg0) {
// TODO Auto-generated method stub
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
// TODO Auto-generated method stub
public void onDismissScreen(Ad arg0) {
// TODO Auto-generated method stub
RelativeLayout.LayoutParams lpLayoutParams2 = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lpLayoutParams2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout2.addView(adView, lpLayoutParams2);
bt1 = new Button(this);
bt1.setText("close");
bt1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
RelativeLayout.LayoutParams lpLayoutParams = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lpLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layout2.addView(bt1, lpLayoutParams);
bt1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("close");
h.sendEmptyMessage(HANDLER_HIDE);
bt1.setVisibility(View.GONE);
addContentView(layout2, new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
&&&&推荐文章:
【上篇】【下篇】}

我要回帖

更多关于 unity3d添加子物体 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信