OpenAdAdapter плагін для Unity3D

Зміст



OpenAdAdapter — просте управління мобільною рекламою
Зачатки документації OpenAdAdapter
OpenAdAdapter плагін для Unity3D
— Відео: приклади використання OpenAdAdapter

У минулій статті я розповів про свою розробку OpenAdAdapter. Це бібліотека під вільною ліцензією Apache 2.0, призначена для керування рекламними мережами у програмах для мобільних пристроїв на iOS і Android. Її мета підвищити монетизацію програми та убезпечитися від можливого бана за допомогою перенаправлення трафіку на інші мережі.

Мій наступний крок — це створення плагіна для Unity3D. Я розповім як створюється плагін і як використовувати плагін OpenAdAdapter в Unity3D.

Створення плагіна



Я описую як створити плагін з двох причин:

1. Бібліотека з вихідними кодами все одно може залишатися чорним ящиком, якщо немає бажання витрачати години і дні на її вивчення.
2. Аналогічно можна створювати інші плагіни.

Якщо не цікаво як влаштований плагін, то переходите прямо до розділу «Додавання OpenAdAdapter в проект Unity3D».

Плагін OpenAdAdapter для Unity3D складається з 3 частин:

— С# клас, через який програма на Unity3D взаємодіє з адаптером. Він знаходиться у файліAssets/OpenAdAdapter/OpenAdAdapter.cs. Також цей клас виконує специфічні функції для Unity3D, такі як зміни розмірів видимої області екрану (viewport) і розмір елементів інтерфейсу, щоб банер не перекрив елементи інтерфейсу. Я не знайшов спосіб зробити його досить універсальним для всіх випадків і допускаю, що розробнику доведеться адаптувати цей клас, так як він працює з однією камерою і одним канвасом в Render Mode: Screen Space — Camera.

— Objective C код, це iOS прошарок для взаємодії з OpenAdAdapter на iOS.

— Android Library проект, куди запхають OpenAdAdapter і Google Play Services.

Створення плагіна під iOS


1. Просто скопіюйте всі вихідні коди (.h, .m), либы (.a) і фреймворки (.framework) в папкуAssets/Plugins/iOS. Коли Unity3D буде билдить проект під iOS, то буде створений Xcode проект, куди будуть скопійовані всі ці файли.

2. Відкрийте Xcode проект, створений у Unity3D, цей проект потрібно внести зміни, аналогічні тому, що я описав в першій статті, а саме:

додати фреймворки:

AdSupport.framework 
StoreKit.framework 
MessageUI.framework 
libxml2.2.dylib 
libz.dylib 
libsqlite3.0.dylib 
CoreTelephony.framework 
EventKit.framework 
EventKitUI.framework 
Security.framework 
Social.framework 
WebKit.framework


Додати -ObjC, Other Linker Flags

Щоб не вносити ці зміни кожен раз, коли ви билдите під iOS, то в Unity3D можна вибрати Append замість Replace. (Але в момент створення плагіна Unity3D 5.1 не справлявся виконати Append і довелося повернутися на Unity3D 5.0)

Створення плагіна під Android
Андроїд плагін для Unity3D — це eclipse проект Android Library, розміщений в Assets/Plugins/Android.

Для роботи рекламних модулів на платформі Android/GooglePlay потрібно додати в проект Google Play Services. Я це зробив простим копіюванням вмісту lib, res папок з оригінального проекту Google Play Services проект моєї бібліотеки. Також скопіював у lib jar файли OpenAdAdapter та рекламних мереж.

AndroidManifest.xml з eclipse проекту буде об'єднаний з основним AndroidManifest.xml таким чином у нього потраплять activity, permissions, meta теги.

Експорт плагіна




Останній крок — це експортувати всі в пекедж. (Assets — Export Package) Я зберіг його під назвою OpenAdAdapterWithGPS.unitypackage

Додавання в проект OpenAdAdapter Unity3D



Першим ділом додаєте unity пекедж OpenAdAdapterWithGPS.unitypackage в ваш проект.



Після додавання у вас з'явитьсяAssets/OpenAdAdapter/OpenAdAdapter.cs,Assets/OpenAdAdapter/OpenAdAdapterExample.unity і плагіни у відповідних папкахAssets/Plugins/iOS іAssets/Plugins/Android.



Самим простим і швидким способом запустити це використовувати сценуAssets/OpenAdAdapter/OpenAdAdapterExample.unity і все повинно працювати на андроїд, а на iOS при першому відкритті Xcode потрібно додати фреймворки:

AdSupport.framework 
StoreKit.framework 
MessageUI.framework 
libxml2.2.dylib 
libz.dylib 
libsqlite3.0.dylib 
CoreTelephony.framework 
EventKit.framework 
EventKitUI.framework 
Security.framework 
Social.framework 
WebKit.framework


і додати -ObjC, Other Linker Flags як це було описано в розділі «Створення плагіна під iOS».

Далі я опишу те, що потрібно зробити, якщо ви будете використовувати свою сцену, а неAssets/OpenAdAdapter/OpenAdAdapterExample.unity.

Створіть Empty Object і назвіть його OpenAdAdapter, перетягніть на нього контролерAssets/OpenAdAdapter/OpenAdAdapter.cs.

У об'єкта OpenAdAdapter з'явиться властивість Canvas. Перетягніть Canvas користувальницького інтерфейсу на властивість Canvas об'єкта OpenAdAdapter.



В Canvas треба вибрати «Screen Space — Camera» Render Mode. І перетягнути Main Camera в свойтво Render Camera.

Якщо ваша гра має більш складну структуру, більше канвасов або камер, то вам потрібно переписати контролерAssets/OpenAdAdapter/OpenAdAdapter.cs під свої потреби.

КонтролерAssets/OpenAdAdapter/OpenAdAdapter.cs має допоміжні не статичні методи з префіксом Cmd* (наприклад CmdShowTopBanner), вони додані для того, щоб їх можна було причепити як обробники подій на кнопки в прикладіAssets/OpenAdAdapter/OpenAdAdapterExample.unity.

JSON файли з ID рекламних мереж прописані вAssets/OpenAdAdapter/OpenAdAdapter.cs і ви повинні змінити їх на свої.

Приклади



Ініціалізація (викликається цей код при запуску методу Update контролера OpenAdAdapter.cs)

#if UNITY_IPHONE
OpenAdAdapter.Init ("https://raw.githubusercontent.com/sample-data/oad1/master/ios-redir.json");
#endif
#if UNITY_ANDROID
OpenAdAdapter.Init ("https://raw.githubusercontent.com/sample-data/oad1/master/android-redirect.json");
#endif


Показати банер

OpenAdAdapter.ShowTopBanner ();


Сховати банер

OpenAdAdapter.HideBanner ();


Показати відео рекламу

OpenAdAdapter.Video ();


Більше прикладів використання можна знайти в контролері OpenAdAdapter.cs і опис методів на сторінці вікі.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.