现在很多应用或小游戏,都会在App里嵌入了一定的广告,如屏幕底部广告、插屏广告,更有的直接播放一段视频广告。之所以这样做,是实现流量变现,每个用户只需轻轻点击广告,就能赚钱啦啦
https://github.com/unity-plugins/Unity-Admob
Admob Unity Plugin
Admob Unity Plugin provides a way to integrate admob ads in Unity3D Game and u3d app. You can use it for Unity iOS and Android App with the same c# or js code.
Admob Unity3d Plugin Readme Contents
Admob Unity Plugin Description
The Google Mobile Ads SDK is the latest generation in Google mobile advertising featuring refined ad formats and streamlined APIs for access to mobile ad networks and advertising solutions. The SDK enables Unity mobile app developers to maximize their monetization in native mobile apps.
This repository contains the source code for the Google Mobile Ads Unity plugin. This plugin enables Unity developers to easily serve Google Mobile Ads on Android and iOS apps without having to write Java or Objective-C code. The plugin provides a C# interface for requesting ads that is used by C# scripts in your Unity project.
Unity Admob Plugin Features
Platforms supported in one plugin :
Android, via SDK v18.3.0 (part of Google Play service platform)
iOS, via SDK v7.53
Support all native events
AdRequest targeting methods,such as children target,test mode
Not need change Android package name
Very simple API
Support non personalize ad
Ad Types:
Banner(All Banner Type and Custom banner sizes)
Interstitial (text, picture, video)
Rewarded Video
Advanced Native Ad
Downloads Admob Unity Plugin
AdmobPluginRes/GoogleMobileAds.framework and admob_unity_plugin.unitypackage is reqired
Download those files from Admob Unity3d Plugin Project Home https://github.com/unity-plugins/Unity-Admob
or Download all the Unity admob plugin project https://github.com/unity-plugins/Unity-Admob/archive/master.zip
Installation Admob Unity
Open your project in the Unity editor.
Navigate to Assets -> Import Package -> Custom Package.
Select the admob_unity_plugin.unitypackage file.
Import all of the files except admobdemo.cs(a example script) by selecting Import. Make sure to check for any conflicts with files.
You can install by download and copy files in folder Plugins to your Unity3d project directly,
Unity Plugin Wiki and Documentation
Quick Start
Edit AndroidManifest.xml and config Admob APP ID
This configuration is reqired by admob from version 17.0,APP will crash if not config .Add a meta-data tag in application and set value to your admob appid
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-xxxxxxxxxxxxxxxxxx~xxxxxxxxxxxx"/>
Sample code
<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>
Edit Info.plist ,add appid
<key>GADApplicationIdentifier</key> <string>ca-app-pub-xxxxxxxxxxxxxxxxxxxxxx~xxxxxxxxxxxxxx</string>
Config exported Xcode project ,Build Settings->Other Linker Flags ,add flag -ObjC
1.Init Admob Unity Plugin
Create A C# script ,drag the script to a object on scene , add the follow code in the script file
using admob; Admob.Instance().initSDK(new AdProperties());//admob id configed in meta,not support in code any more
You can set admob properties as follow ,you need set properties you want to set
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.Add Admob Banner in Unity App
Here is the minimal code needed to show admob banner.
Admob.Instance().showBannerRelative("your admob banner unit id",AdSize.BANNER, AdPosition.BOTTOM_CENTER, 0);
or you can create another banner by set banner name
Admob.Instance().showBannerAbsolute("ca-app-pub-3940256099942544/6300978111",AdSize.BANNER, 20, 220,"mybanner");
The AdPosition class specifies where to place the banner. AdSize specifies witch size banner to show
3.Remove Banner
By default, banners are visible. To hide a banner, call:
Admob.Instance().removeBanner();
4.How to integrate Interstitial into Unity 3d app?
Here is the minimal code to create an interstitial.
Admob.Instance().loadInterstitial("Your admob interstitial unit id");
Unlike banners, interstitials need to be explicitly shown. At an appropriate stopping point in your app, check that the interstitail is ready before showing it:
if (Admob.Instance().isInterstitialReady()) { Admob.Instance().showInterstitial(); }
5.Custom Admob Banner Ad Sizes
In addition to constants on AdSize, you can also create a custom size:
//Create a 250x250 banner. AdSize adSize = new AdSize(250, 250); Admob.Instance().showBannerAbsolute("Your admob banner id",adSize,0,30,"bannerName");
6.How to integrate Admob Rewarded Video to Unity3d app?
Here is the minimal code to create an admob video.
Admob.Instance().loadRewardedVideo("ca-app-pub-3940256099942544/1712485313");
Simular with interstitial,video need to be explicitly shown at an appropriate stopping point in your app, check that the video is ready before showing it:
if (Admob.Instance().isRewardedVideoReady()) { Admob.Instance().showRewardedVideo(); }
7.Show Admob Native Advanced Ad in IOS and Android App
Here is the minimal code needed to show admob banner. This is implemented with Admob Native Ads Advanced (Unified)
Admob.Instance().showNativeBannerRelative("Your native banner id",new AdSize(360,100), AdPosition.BOTTOM_CENTER);
8.Ad Events
Both Banner and Interstitial contain the same ad events that you can register for. Here we'll demonstrate setting ad events on a interstitial,and show interstitial when load success:
Admob.Instance().interstitialEventHandler += onInterstitialEvent; void onInterstitialEvent(string eventName, string msg) { Debug.Log("handler onAdmobEvent---" + eventName + " " + msg); if (eventName == AdmobEvent.onAdLoaded) { Admob.Instance().showInterstitial(); } }
You only need to register for the events you care about.
Unity Admob Demo Usage
import AdmobUnityPlugin.unitypackage to your Unity project
copy admobdemo.cs from AdmobPluginRes to your unity project/assets dic
attach admobdemo.cs to the main camera
edit admob id in admobdemo.cs
build and run this in your device
-
add -ObjC flag in xcode Other Linker Flags 7 add meta app key in Xcode Info.plist
GADApplicationIdentifier ca-app-pub-xxxxxxxxxxxxxxxxxx~xxxxxxxxxx
Important Tips
If you not config AndroidManifest.xml,app will crash
If you not add -ObjC flag App will crash
If you not add GADApplicationIdentifier in Info.plist ,App will crash
Attach admob to Object on scene,init admob before call admob fun
Screenshots
License
Change Log
1.Update admob sdk,support admob 18.3