로딩중입니다
IGAW 공통 연동 : 유니티 안드로이드
4/8/2015 8:22:39 AM

IGAW 공통 모듈

IGAWorks의 모든 서비스는 공통 모듈 + 애드온의 형태로 제공되고 있습니다.

유니티 안드로이드 프로젝트를 위해 제공하고 있는 유니티 패키지는 공통모듈과 애드온이 모두 포함된 통합버전입니다.

공통 모듈 연동을 마치신 다음 사용하시고자 하는 각 서비스 별 가이드를 참고하여 추가 연동을 진행하시면 됩니다.

IGAW 공통모듈 연동을 통해 앱의 실행 횟수 및 DAU 수치를 확인할 수 있습니다.



AndroidManifest.xml

안드로이드 매니페스트 파일을 수정하여 IGAWorks 관리페이지에서 발급받은 앱키해시키, 퍼미션 등을 설정합니다.


<application></application> 태그 안에 아래와 같이 앱키, 해시키를 입력합니다.

<meta-data android:name="igaworks_app_key" android:value="앱키를 설정하세요." />
<meta-data android:name="igaworks_hash_key" android:value="해시키를 설정하세요." />


<manifest></manifest> 태그 안에 필수 퍼미션을 추가합니다. 아래 퍼미션들이 추가되지 않으면 정상적인 서비스 이용이 어려울 수 있습니다.

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- 옵셔널한 값입니다. -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
* 업데이트 안내 *
Common 4.2.0 버전 이상에서는 안드로이드 6.0 버전에서의 권한 요청 팝업 노출 이슈로 인해 게임의 UX를 해칠 수 있기에, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE 퍼미션을 필수로 요구하지 않습니다. 
트래킹링크 & 애드팝콘 광고 상품 이용 안내
트래킹링크나 애드팝콘 광고 상품을 이용하기 위해서는 반드시 구글 인스톨 리시버를 등록해야 합니다.
리시버가 정상 설정되지 않으면, 신규실행 여부를 체크할 수 없습니다. 다음 아티클을 참고하여 리시버 설정을 진행합니다.
[IGAWorks 구글 인스톨 리시버 등록 가이드]



Auto Session Tracking (안드로이드 4.0.4 이상 사용 가능)

Common 4.4.0a 버전부터 안드로이드 액티비티 상 별도의 설정 없이 Auto Session Tracking 을 지원합니다. 

Auto Session Tracking 을 사용하기 위해서는 앱이 최소 안드로이드 4.0.4 이상을 지원해야 합니다.


SDK에서 제공하는 Application 클래스를 선언

Androidmanifest.xml 에 아래의 내용을 선언합니다.

<application
    android:name="com.igaworks.IgawDefaultApplication"
</application>

이후 플러그인 초기화를 진행합니다.
// using 지시문을 선언합니다.
using IgaworksUnityAOS;

public class MySampleScene : MonoBehavior { 
    void Awake() {
        //유니티 엔진이 초기화될 때, IGAW 플러그인을 초기화 합니다.
        IgaworksUnityPluginAOS.InitPlugin ();
    }
}

자체적인 Application 클래스를 사용할 경우

이미 Application 클래스를 사용하고 있다면 Androidmanifest.xml 에 아래의 내용을 선언합니다. 

<application
    android:name="PACKAGE_NAME.YourCustomApplication"
</application>
이후 Android Studio 에 import 후 Application 클래스에 아래 코드를 추가합니다.
public class YourCustomApplication extends Application{
    @Override
    public void onCreate(){
        super.onCreate();
        IgawCommon.autoSessionTracking(YourCustomApplication.this);
        // 어플리케이션 클래스에서는 autoSessionTracking API 외 어떠한 애드브릭스 분석용 API도 호출해서는 안됩니다.
    }
}
주의! Application 클래스에서는 autoSessionTracking API 외 어떠한 애드브릭스 분석용 API도 호출해서는 안됩니다. 


IGAW 공통 모듈 연동 (안드로이드 4.0.4 이하 버전까지 지원할 경우)

앱이 안드로이드 4.0.4 이하 버전까지 지원하실 경우 아래와 같이 플러그인 초기화 및 기본분석 API 를 연동합니다.


플러그인 초기화

어플리케이션 실행 후 유니티가 초기화될 때 init startApplication api를 호출하여 플러그인도 초기화합니다.

// using 지시문을 선언합니다.
using IgaworksUnityAOS;

public class MySampleScene : MonoBehavior { 
    void Awake() {
        //유니티 엔진이 초기화될 때, IGAW 플러그인을 초기화 합니다.
        IgaworksUnityPluginAOS.InitPlugin ();
    }
}

+ init api는 유니티 플러그인과 안드로이드 네이티브 SDK를 연결하는 역할을 합니다.

+ startApplication api는 네이티브 SDK를 초기화 하는 역할을 합니다.


기본 분석 API

startSession, endSession api를 호출하여 유저의 세션 유지 시간, 분석 데이터의 전송을 처리합니다.

이 함수들은 반드시 짝을 이루어 동작하여야 합니다.

어플리케이션이 foreground나 background로 전환될 때 호출해야 합니다.

public class MySampleScene : MonoBehavior {
 
    //앱 시작
    void Start()
    {
        //유니티 버전 5.3 미만에서는 앱이 최초로 실행될 때, OnApplicationPause를 리턴하지 않기 때문에 직접 startSession을 호출.      
        #if UNITY_5_3_OR_NEWER
            Debug.Log("Current Unity version is UNITY_5_3_OR_NEWER");
        #else            
            IgaworksUnityPluginAOS.Common.startSession();
        #endif
    }
 
    //앱 상태 체크
    void OnApplicationPause(bool pauseStatus){
        
        if (pauseStatus) {
	    Debug.Log ("go to Background");
	    IgaworksUnityPluginAOS.Common.endSession();
	} else {
	    Debug.Log ("go to Foreground");
	    IgaworksUnityPluginAOS.Common.startSession();
	}
} 

+ 유니티 5.3 버전 미만에서는 OnApplicationPause 함수가 앱이 최초 시작할 때, 호출되지 않기 때문에 Start()에서 startSession 직접 호출해야 합니다.



IGAWorks 애드온 연동

공통 연동이 마무리 되셨다면, 각 서비스 별 가이드를 참고하여 애드온 연동을 진행합니다.