Interstitial Ads je reklama, ktorá sa zobrazi na celej obrazovke. Užívateľ na ňu buď klikne, alebo ju zatvorí a vráti sa k hre. Ak sa chcete dozvedieť viac o Interstitials kliknite sem.
Podmienky :
- Unity3D verzie 4.5 a viac
- Eclipse + ADT plugin
- Android SDK Tools
- Android Play Services plugin, ktorý stiahneme použitím Android SDK Manageru.
- Android SDK
1.Krok - Vytvorenie projektu
Otvoríme Eclipse a vytvoríme nový project. File -> New -> Project...
...vyberieme Android application project.
Okienko vyplníme podľa nasledujúceho obr:
Necháme zaškrtnuté iba Create Project in Workspace
2.Krok - Pridanie google-play-services.jar a UnityPlayer.jar
V menu vyberieme položku Project -> Properties a preklikneme sa do záložky Java Build Path
Kliknutim na tlačidlo Add External JARs pridáme
- C:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\development\bin\classes.jar
- C:\adt-bundle-windows-x86\sdk\extras\google\google_play_services\libproject\google-play-services_lib\libs\google-play-services.jar
Následne klikneme na OK. Do projektu pridáme súbor class do ktorého napíšeme nasledujúci kód (inšpirujeme sa podľa vzorového príkladu od googlu):
Kód v jave :
package com.projectikeu.admobplugin; import com.google.android.gms.ads.*; import com.google.android.gms.ads.doubleclick.PublisherAdRequest; import com.google.android.gms.ads.doubleclick.PublisherInterstitialAd; import com.unity3d.player.UnityPlayer; import android.app.Activity; public class Interstitial { private Activity activity; private PublisherInterstitialAd interstitial; private boolean isLoaded = false; public void DisplayInterstitial() { activity.runOnUiThread(new Runnable() { public void run(){ if (interstitial.isLoaded()) { interstitial.show(); } } }); } public boolean IsInterstitialLoaded() { return isLoaded; } private void loadNewInterstitial(String TestDeviceID) { PublisherAdRequest adRequest = new PublisherAdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice(TestDeviceID) .build(); interstitial.loadAd(adRequest); } public Interstitial (final String PublisherID,final String TestDeviceID) { activity = UnityPlayer.currentActivity; activity.runOnUiThread(new Runnable() { public void run(){ interstitial = new PublisherInterstitialAd(activity); interstitial.setAdUnitId(PublisherID); interstitial.setAdListener(new AdListener() { public void onAdClosed() { PublisherAdRequest adRequest = new PublisherAdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice(TestDeviceID) .build(); interstitial.loadAd(adRequest); isLoaded = false; } public void onAdLoaded() { isLoaded = true; } }); loadNewInterstitial(TestDeviceID); } }); } }
3.Krok - Export wrapovacej dll
V menu vyberieme možnosť File -> Export a vyberieme Java -> JAR file .
4.Krok - Použitie v Unity3d
Kód v c# :
using UnityEngine; using System; public class ProjectikeuAdmob : MonoBehaviour { private string msg="nic"; public string PublisherID = "YOUR_AD_UNIT_ID"; public string TestDeviceID = ""; private static AndroidJavaObject jo; // Dont destroy on load and prevent duplicate private static bool created = false; void Awake() { try { if (!created) { DontDestroyOnLoad(this.gameObject); created = true; initializeInterstitial(); } else { Destroy(this.gameObject); } } catch (Exception ex) { msg = ex.Message; } } void OnGUI() { GUI.Label(new Rect(10, 10, 100, 100), msg); } void initializeInterstitial() { #if UNITY_ANDROID jo = new AndroidJavaObject("com.projectikeu.admobplugin.Interstitial", PublisherID, TestDeviceID); #endif } /// <summary> /// Load and show the interstitial. /// </summary> public static void ShowInterstitial() { #if UNITY_ANDROID jo.Call("DisplayInterstitial"); #endif } }
Súbor AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" android:installLocation="preferExternal" android:versionCode="1" android:versionName="1.0"> <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true"/> <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="true"> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <activity android:name="com.unity3d.player.UnityPlayerProxyActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> </activity> <activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> <meta-data android:name="android.app.lib_name" android:value="unity" /> <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" /> </activity> <activity android:name="com.unity3d.player.VideoPlayer" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> </activity> <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> </application> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> </manifest>
Umiestenie v unity 3d:
- Assets\plugins\android\com.projectikeu.admob.jar
- Assets\plugins\android\google-play-services.jar
- Assets\plugins\android\AndroidManifest.xml
Version:
ver 2.0 google_play_services_version 7095000