Unity Plugin for Android User Guide
개요 애드립 Unity 플러그인적용을위한문서입니다. 애드립 Unity 플러그인을사용하기위해서다음항목이필요합니다. 애드립 API 키 애드립최신 SDK(4.2.1.1 이상 ), SubView Google Play services 라이브러리 각광고플랫폼사이트에서발급받은 APP - ID 및최신 SDK 이애드립 Unity 플러그인은애드립 SDK (4.2.1.1) 과 Unity 4.5 에서작성되었으며, 이전버전에대해서는테스트가이루어지지않았습니다. 중요 Unity 적용시애드립 SDK 는 ver.4.2.1.1 이상의라이브러리를사용하시기바랍니다. Jar 파일에리소스를포함하는몇몇플랫폼들은, 해당리소스를유니티에서불러오지못해노출이되지않을수있습니다. - 2 Page-
플러그인 import 1. Assets > Import Package > Custom Package 메뉴를클릭합니다. 2. AdlibUnityPlugin.unitypackage 파일을선택하고, 모든항목을 Import 합니다. 3. Assets/Plugins/AdlibPlugin/ 폴더에있는 AdlibPlugin prefab 을 Unity scene 으로드래그합니다. - 3 Page-
플러그인적용 #1 - AndroidManifest.xml (1) 1. 안드로이드빌드후, ProjectName/Temp/StagingArea 폴더에있는 AndroidManifest.xml 파일을복사하여 Assets/Plugins/Android 폴더에넣습니다. 2. Assets/Plugins/Android/AndroidManifest.xml 에애드립및타광고플랫폼들사용에필요한 Activity 와퍼미션을추가합니다. - 4 Page-
플러그인적용 #1 - AndroidManifest.xml (2) 아래의권한을추가하지않을경우 Exception 이발생합니다. 애드립 SDK 최소버전은 9 입니다.(Android2.3 이상 ) 타플랫폼의최소버전이애드립보다높다면변경하시기바랍니다. <uses-sdk android:minsdkversion= 9 /> <!-- 애드립실행에필요한권한각플랫폼별로요청하는권한이모두다르기때문에아래권한들을모두추가하는것을추천합니다. --> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="android.permission.read_external_storage"/> <uses-permission android:name="android.permission.read_phone_state" /> <!-- 여기까지애드립사용을위한필수권한 --> <!-- 플랫폼에따라아래의권한을추가하시기바랍니다. ( 애드립의필수는아닙니다.) --> <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.access_fine_location"/> - 5 Page-
플러그인적용 #1 - AndroidManifest.xml (3) <meta-data android:name= unityplayer.forwardnativeeventstodalvik android:value= true /> <application android:icon="@drawable/icon" android:label="@string/app_name" > <!-- 구글광고 ID 사용을위해꼭추가해주세요. --> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <!-- 애드립사용을위해꼭추가해주세요. --> <activity android:name="com.mocoplex.adlib.adlibdialogactivity" android:theme="@android:style/theme.translucent" android:configchanges="orientation keyboard keyboardhidden" /> <activity android:name="com.mocoplex.adlib.adlibwebbrowseractivity" android:configchanges="orientation keyboard keyboardhidden" /> <activity android:name="com.mocoplex.adlib.adlibvideoplayer" android:theme="@android:style/theme.notitlebar" android:configchanges="orientation keyboard keyboardhidden" /> </application> 광고플랫폼별필수 Activity 들은샘플프로젝트의 /adlibrunity/androidmanifest-sample/androidmanifest.xml 및 각플랫폼의 SDK 문서를참고해주시기바랍니다. - 6 Page-
플러그인적용 #2 - SDK 적용 (1) 샘플프로젝트에포함되어있는 SDK 를 libs/adlibr.x.x.x.x.jar 를찾아서 Assets/Plugins/Android/libs 폴더로드래그하여추가합니다. - 7 Page-
플러그인적용 #2 - SDK 적용 (2) Google Play Services 관련하여라이브러리를추가를해야합니다. android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs 위경로의 google-play-services.jar 파일을 Assets/Plugins/Android/libs 폴더에드래그하여추가합니다. - 8 Page-
플러그인적용 #2 - SDK 적용 (3) Google Play Services 관련하여리소스를추가해야합니다. android-sdk/extras/google/google_play_services/libproject/google-play-services_lib 위경로의 res 폴더를 Assets/Plugins/Android 폴더에드래그하여추가합니다. - 9 Page-
플러그인적용 #2 - SDK 적용 (4) 애드립외에다른플랫폼을사용하실경우 Assets/Plugins/Android/libs 폴더에 subview 관련 jar 파일를넣습니다. (Adlibr_SubView_Platform.jar) subview 는샘플로제공한 adlibrtestproject 에서 Export 하여생성하시면됩니다. ( 이클립스에서 File > Export 클릭후 Java의 JAR File 선택하여원하는폴더로 jar를생성합니다.) JAR 생성이후드래그하여추가하시면됩니다. ( 주의 생성과정에서미리플랫폼 API Key 를넣어두셔야합니다.) 그리고기타플랫폼 jar 를추가합니다. 기타플랫폼 jar 추가 - 10 Page-
플러그인적용 #2 - SDK 적용 (5) 광고노출을위한이미지리소스를추가해야합니다. 애드립 SDK (adlibr.4.2.1.1 이상 ) 내 adlibr.4.2.1.x/assets 의 assets 폴더를 Assets/Plugins/Android 폴더에드래그하여추가합니다. - 11 Page-
애드립 Unity 플러그인 API # 1 애드립 Key 및플랫폼설정 InitializeAdlib(string adlibkey, string adsinfo) 애드립사용에필요한플랫폼별 KEY 를 setting 하는메소드로, 최초한번호출합니다. adlibkey 는 string 으로애드립홈페이지통해발급받으시는키를넣으시면됩니다. adsinfo 는 JSON 포맷의 string 입니다. adsinfo 를구성하기위해, 애드립 Unity 플러그인에기본적으로 JSON for.net library 가추가되어있습니다. 샘플스크립트대로형태만일치시킨다면다른 JSON library 를사용하셔도괜찮습니다 adsinfo 포맷예 ) { ADAM : subview 패키지명, ADMOB : subview 패키지명, CAULY : subview 패키지명 } 메소드호출예 ) // 사용하실플랫폼을넣어주시기바랍니다. ( 기존의각플랫폼 Key 는 subview 의 jar 파일에넣어주셔야합니다.) JsonObjectCollection ads = new JsonObjectCollection(); ads.add(new JsonStringValue("ADAM","test.adlib.project.ads.SubAdlibAdViewAdam")); ads.add(new JsonStringValue("ADMOB","test.adlib.project.ads.SubAdlibAdViewAdmob")); ads.add(new JsonStringValue("CAULY","test.adlib.project.ads.SubAdlibAdViewCauly")); ads.add(new JsonStringValue("TAD","test.adlib.project.ads.SubAdlibAdViewTAD")); ads.add(new JsonStringValue("NAVER","test.adlib.project.ads.SubAdlibAdViewNaverAdPost")); ads.add(new JsonStringValue("SHALLWEAD","test.adlib.project.ads.SubAdlibAdViewShallWeAd")); ads.add(new JsonStringValue("INMOBI","test.adlib.project.ads.SubAdlibAdViewInmobi")); ads.add(new JsonStringValue("MMEDIA","test.adlib.project.ads.SubAdlibAdViewMMedia")); ads.add(new JsonStringValue("MOBCLIX","test.adlib.project.ads.SubAdlibAdViewMobclix")); ads.add(new JsonStringValue("UPLUSAD","test.adlib.project.ads.SubAdlibAdViewUPlusAD")); ads.add(new JsonStringValue("MEZZO","test.adlib.project.ads.SubAdlibAdViewMezzo")); ads.add(new JsonStringValue("AMAZON","test.adlib.project.ads.SubAdlibAdViewAmazon")); ads.add(new JsonStringValue("ADHUB","test.adlib.project.ads.SubAdlibAdViewAdHub")); ads.add(new JsonStringValue("MEDIBAAD","test.adlib.project.ads.SubAdlibAdViewMedibaAd")); // 애드립홈페이지에서발급받으신 KEY 를입력해주시기바랍니다. AdlibPlugin.InitializeAdlib("53858972e4b0ef94c0636d85", ads.tostring()); // 테스트광고노출을위한메서드로, 상용시주석처리혹은삭제해주시기바랍니다. AdlibPlugin.setAdlibTestMode(true); - 12 Page-
애드립 Unity 플러그인 API # 2 띠배너 (1) ShowBanner(BannerSize size, bool usehousebanner, bool positionattop, int padding, BannerAlign align) 띠배너를화면에노출시킵니다. SIZE 배너사이즈설정. BannerSize.Banner ( 디바이스 width X 50dp 사이즈 ), BannerSize.Banner_320X50 (320dp X 50dp 사이즈 ) usehousebanner true 이면초기광고로딩까지의공백에하우스배너노출, false이면하우스배너노출하지않음. positionattop true 이면화면상단, false이면화면하단에위치. padding (optional) 상단또는하단으로부터 padding(dp) 만큼떨어진곳에위치. 기본값 0. align 메소드호출예 ) (optional) 배너 horizontal 정렬설정. 기본값 Center BannerAlign.Left ( 좌측정렬 ) BannerAlign.Right ( 우측정렬 ) BannerAlign.Center ( 가운데정렬 ) AdlibPlugin.ShowBanner(AdlibPlugin.BannerSize.Banner, false, false); AdlibPlugin.ShowBanner(AdlibPlugin.BannerSize.Banner_320x50, false, false, 50); AdlibPlugin.ShowBanner(AdlibPlugin.BannerSize.Banner_320x50, true, true, 0, AdlibPlugin.BannerAlign.Left); HideBanner() 화면에노출된띠배너를숨깁니다. 메소드호출예 ) AdlibPlugin.HideBanner(); - 13 Page-
애드립 Unity 플러그인 API # 2 띠배너 (2) ShowBannerWithPixel(BannerSize size, bool usehousebanner, bool positionattop, int padding, BannerAlign align) 띠배너를화면에노출시킵니다. SIZE 배너사이즈설정. BannerSize.Banner ( 디바이스 width X 50dp 사이즈 ), BannerSize.Banner_320X50 (320dp X 50dp 사이즈 ) usehousebanner true 이면초기광고로딩까지의공백에하우스배너노출, false이면하우스배너노출하지않음. positionattop true 이면화면상단, false이면화면하단에위치. padding (optional) 상단또는하단으로부터 padding(pixel) 만큼떨어진곳에위치. 기본값 0. align 메소드호출예 ) (optional) 배너 horizontal 정렬설정. 기본값 Center BannerAlign.Left ( 좌측정렬 ) BannerAlign.Right ( 우측정렬 ) BannerAlign.Center ( 가운데정렬 ) AdlibPlugin.ShowBanner(AdlibPlugin.BannerSize.Banner, false, false); AdlibPlugin.ShowBanner(AdlibPlugin.BannerSize.Banner_320x50, false, false, 50); AdlibPlugin.ShowBanner(AdlibPlugin.BannerSize.Banner_320x50, true, true, 0, AdlibPlugin.BannerAlign.Left); - 14 Page-
애드립 Unity 플러그인 API # 3 전면배너 (1) LoadInterstitialAd() 전면배너를호출합니다. 위메소드는 1차적으로애드립의전면배너를호출합니다. 애드립의전면배너수신이실패했을경우, 대쉬보드의전면배너스케줄설정된순서대로전면배너수신이성공할때까지, 타플랫폼의전면배너를호출합니다. 메소드호출예 ) AdlibPlugin.LoadInterstitialAd(); - 15 Page-
애드립 Unity 플러그인 API # 3 전면배너 (2) RequestInterstitial() 전면배너를미리요청하여로드하는경우사용합니다. 성공이후 SDK에서주기적으로재요청을하며, 실패시요청을중단합니다. ( 애드립플랫폼만사용가능합니다.) 메소드호출예 ) AdlibPlugin.RequestInterstitial(); ShowInterstitial() RequestInterstitial() 통해성공한경우화면에노출시킵니다. ( 애드립플랫폼만사용가능합니다.) 메소드호출예 ) AdlibPlugin.ShowInterstitial(); - 16 Page-
애드립 Unity 플러그인 API # 3 전면배너 (3) 전면배너리스너 애드립 Unity 플러그인은다음의리스너이벤트를제공합니다. // loadfullinterstitialad public static event Action<string> ReceivedInterstitial public static event Action<string> FailedInterstitial public static event Action FailedToReceiveInterstitial public static event Action ClosedInterstitial // 전면배너수신성공 string은수신성공한플랫폼이름 // 전면배너수신실패 string은수신실패한플랫폼이름 // 스케쥴링된광고플랫폼의모든전면배너수신실패 // 전면배너닫힘 // showinterstitial public static event Action ReceivedPreInterstitial public static event Action FailedPreInterstitial public static event Action ClosedPreInterstitial // 전면배너프리로드수신성공 // 전면배너프리로드수신실패 // 전면배너닫힘 += 연산자를이용해서아래와같이이벤트를등록할수있습니다. // 리스너응답을받을메소드명을이벤트에등록 AdlibPlugin.ReceivedInterstitial += HandleReceivedInterstitial; // 리스너응답후호출부구현 public void HandleReceivedInterstitial(string platform) { print("received Interstitial Ad : "); print(platform); } - 17 Page-
애드립 Unity 플러그인 API # 4 - 서비스상태컨트롤 StopAds() 광고클릭, 홈버튼클릭등으로앱이 pause 상태가되었을때애드립서비스호출을중지합니다. 메소드호출예 ) AdlibPlugin.StopAds(); RestartAds() 앱이 pause 상태였다가다시돌아왔을때애드립서비스를재개합니다. 메소드호출예 ) AdlibPlugin.RestartAds(); - 18 Page-