Admob Unity插件简介
Admob Unity插件提供了一种将admob广告集成到Unity3D Game和u3d应用中的方法。您能够将其用于具备相同c#或js代码的Unity iOS和Android App。android
是Unity3d的Admob SDK插件,此插件使js和c#开发人员更容易在Unity3d游戏中添加Google广告,支持iOS和Android,支持admob插页式广告和横幅git
Admob Unity插件说明
Google移动广告SDK是Google移动广告中最新一代的产品,具备完善的广告格式和简化的API,可访问移动广告网络和广告解决方案。该SDK使Unity移动应用程序开发人员可以最大程度地利用本机移动应用程序获利。github
该存储库包含Google Mobile Ads Unity插件的源代码。该插件使Unity开发人员能够轻松地在Android和iOS应用上投放Google移动广告,而无需编写Java或Objective-C代码。该插件提供了一个C#接口,用于请求Unity项目中C#脚本使用的广告。xcode
Unity Admob插件功能
一个插件支持的平台:网络
- Android,经过SDK v18.3.0(Google Play服务平台的一部分)
- iOS,经过SDK v7.53
- 支持全部本地事件
- AdRequest定位方法,例如子级定位,测试模式
- 不须要更改Android包名称
- 很是简单的API
- 支持非个性化广告
广告类型:app
- 标语(全部标语类型和自定义标语尺寸)
- 插页式广告(文字,图片,视频)
- 奖励视频
- 进阶原生广告
下载Admob Unity插件
须要AdmobPluginRes / GoogleMobileAds.framework和admob_unity_plugin.unitypackage。请
从Admob Unity3d插件项目主页https://github.com/unity-plugins/Unity-Admob 下载这些文件,
或者下载全部Unity的admob插件项目https://github.com /unity-plugins/Unity-Admob/archive/master.zip编辑器
安装Admob Unity
- 在Unity编辑器中打开您的项目。
- 导航到Assets-> Import Package-> Custom Package。
- 选择admob_unity_plugin.unitypackage文件。
- 经过选择Import导入 admobdemo.cs(示例脚本)之外的全部文件。确保检查与文件的任何冲突。
您能够经过下载文件安装并将文件夹插件中的文件直接复制到Unity3d项目中,ide
Unity插件Wiki和文档
快速开始
编辑AndroidManifest.xml并配置Admob APP ID
admob从17.0版开始要求此配置,若是未配置,APP将会崩溃。在应用中添加元数据标记并将值设置为admob appid测试
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxxxx~xxxxxxxxxxxx"/>
样例代码google
<application android:theme="@style/UnityThemeSelector" android:icon="@drawable/app_icon" android:label="@string/app_name" > <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/> </application>
编辑Info.plist,添加appid
<key>GADApplicationIdentifier</key> <string>ca-app-pub-xxxxxxxxxxxxxxxxxxxxxx~xxxxxxxxxxxxxx</string>
配置导出的Xcode项目,构建设置->其余连接器标志,添加标志-ObjC
1.Init Admob Unity插件
建立AC#脚本,将脚本拖放到场景中的对象上,在脚本文件中添加如下代码
using admob; Admob.Instance().initSDK(new AdProperties());//admob id configed in meta,not support in code any more
您能够按以下设置admob属性,您须要设置要设置的属性
AdProperties adProperties = new AdProperties(); adProperties.isTesting(true);//true for test ads adProperties.isAppMuted(true); adProperties.isUnderAgeOfConsent(false); adProperties.appVolume(100); adProperties.maxAdContentRating(AdProperties.maxAdContentRating_G); string[] keywords = { "key1", "key2", "key3" }; adProperties.keyworks(keywords);
2.在Unity App中添加Admob Banner
这是显示admob标语所需的最少代码。
Admob.Instance().showBannerRelative("your admob banner unit id",AdSize.BANNER, AdPosition.BOTTOM_CENTER, 0);
或者您能够经过设置横幅名称来建立另外一个横幅
Admob.Instance().showBannerAbsolute("ca-app-pub-3940256099942544/6300978111",AdSize.BANNER, 20, 220,"mybanner");
AdPosition类指定放置横幅的位置。AdSize指定要显示的女巫尺寸横幅
3.删除横幅
默认状况下,横幅是可见的。要隐藏横幅,请致电:
Admob.Instance().removeBanner();
4.如何将非页内广告整合到Unity 3d应用中?
这是建立插页式广告的最少代码。
Admob.Instance().loadInterstitial("Your admob interstitial unit id");
与横幅广告不一样,插页式广告须要明确显示。在应用程序的适当中止点,在显示插页式广告以前检查其是否准备就绪:
if (Admob.Instance().isInterstitialReady()) { Admob.Instance().showInterstitial(); }
5,自定义Admob标语广告尺寸
除了AdSize上的常量以外,您还能够建立自定义尺寸:
//Create a 250x250 banner. AdSize adSize = new AdSize(250, 250); Admob.Instance().showBannerAbsolute("Your admob banner id",adSize,0,30,"bannerName");
6.如何将Admob奖励视频集成到Unity3d应用中?
这是建立admob视频的最少代码。
Admob.Instance().loadRewardedVideo("ca-app-pub-3940256099942544/1712485313");
与插页式视频相似的视频须要在您应用中的适当中止点明确显示,请在显示视频以前检查视频是否已准备就绪:
if (Admob.Instance().isRewardedVideoReady()) { Admob.Instance().showRewardedVideo(); }
7,在iOS和Android App中显示Admob原生高级广告
这是显示admob标语所需的最少代码。这是经过Admob原生广告高级版(统一)实现的
Admob.Instance().showNativeBannerRelative("Your native banner id",new AdSize(360,100), AdPosition.BOTTOM_CENTER);
8.广告活动
这两个横幅和间质性包含您能够注册相同的广告活动。在这里,咱们将演示在插页式广告上设置广告事件,并在加载成功时显示插页式广告:
Admob.Instance().interstitialEventHandler += onInterstitialEvent; void onInterstitialEvent(string eventName, string msg) { Debug.Log("handler onAdmobEvent---" + eventName + " " + msg); if (eventName == AdmobEvent.onAdLoaded) { Admob.Instance().showInterstitial(); } }
您只须要注册您关心的事件。
Unity Admob演示用法
-
将AdmobUnityPlugin.unitypackage导入到您的Unity项目中
-
将Admobdemo.cs从AdmobPluginRes复制到您的统一项目/资产dic
-
将admobdemo.cs附加到主摄像头
-
在admobdemo.cs中编辑admob ID
-
在您的设备中构建并运行
-
在xcode中添加-ObjC标志其余连接器标志7在Xcode Info.plist中添加meta应用程序密钥
GADApplicationIdentifier ca-app-pub-xxxxxxxxxxxxxxxxxx〜xxxxxxxxxx
重要提示
- 若是您未配置AndroidManifest.xml,则应用将崩溃
- 若是不添加-ObjC标志,应用程序将崩溃
- 若是您未在Info.plist中添加GADApplicationIdentifier,则应用程序将崩溃
- 将admob附加到场景中的对象,在调用admob fun以前初始化admob