Game Report SDK 및 Method
    • PDF

    Game Report SDK 및 Method

    • PDF

    Article Summary

    Classic/VPC 환경에서 이용 가능합니다.

    Game Report 서비스를 사용하기 위한 분석/로그 수집 플랫폼 기술과 관련된 SDK를 제공합니다.

    이 활동에는 다음과 같은 하위 작업이 포함됩니다.

    • Think Core 게임 분석 서비스
    • Lib Core 게임 로그 제공 서비스
    참고

    UNREAL 또는 Unity3D 엔진을 사용하는 경우 iOS/Android 개발 환경을 별도로 구성하지 않아도 됩니다.

    기본 용어

    Game Report SDK 구성 시 알아야 할 용어와 용어에 대한 설명은 다음과 같습니다.

    용어설명
    콘텐츠- 게임 안에서 수행되는 재미의 요소
    - PVP, 일반 스테이지, 레이드
    Partner- 콘텐츠를 수행할 때 동반하여 같이 수행하는 게임의 리소스
    - 예: 펫, 친구, 드론
    Wear- 착용하거나 파지할 수 있는 모든 아이템
    - 예: 무기, 갑옷, 신발, 귀걸이 등
    Item- 게임 안에서 사용되는 모든 게임의 리소스
    - 무기, 의류, 강화에 사용되는 아이템, 복용 가능한 아이템, 아이템 스킬 등 재화를 제외한 모든 아이템
    Enemy- 게임 콘텐츠 안에서 아군이 아닌 모든 대결의 대상
    - 예: 펫, 몬스터, 드론, PVP 상대, 레이드 보스 등
    Skill- 게임 콘텐츠에서 사용되는 캐릭터 또는 파트너의 능력
    - RPG : 캐릭터, 펫, 친구, 드론 등이 사용하는 능력
    - PANG : 캐릭터가 가지는 스킬

    개발 환경 구성

    SDK 다운로드

    개발 환경 구성에 필요한 SDK 파일은 Service Center에서 다운로드할 수 있습니다. 자세한 내용은 Service Center의 SDK 다운로드를 참고해 주십시오.

    UNREAL

    플러그인 설치 및 설정

    UNREAL 엔진 에디터에 플러그인 설치 및 설정하는 방법은 다음과 같습니다.

    1. UNREAL 엔진 에디터를 실행한 후 플러그인을 설치할 프로젝트의 Plugins 폴더를 열어 주십시오.
    2. 다운로드한 SDK의 'Unreal' 폴더에 있는 SDK 파일을 Plugins 폴더에 복사하여 압축을 풀어 주십시오.
    3. UNREAL 엔진 에디터를 재실행한 후 셋팅 > 플러그인 > 프로젝트 > Other를 차례대로 클릭해 주십시오.
    4. StorageCoreSDKPlugin활성화 체크 박스를 선택한 후 UNREAL 엔진 에디터를 재실행해 주십시오.

    SDK 초기화

    앱을 처음 실행하는 경우 블루프린트 등을 사용하여 SDK를 초기화해야 합니다.
    또는 직접 StorageCoreSdk에 접근하여 C++코드로 SDK를 초기화할 수도 있습니다.

    블루프린트로 SDK를 초기화하는 방법은 다음과 같습니다.

    1. 블루프린트를 실행해 주십시오.
    2. 아래 표를 참고하여 기본 정보를 입력한 후 초기화해 주십시오.

    입력해야 할 기본 정보는 다음과 같습니다.

    NameValue설명
    Server IPStringNCP API URL
    - https://storagecore.gamereport.naverncp.com
    Auth KeyStringAPI 사용 인증키
    - Service Center > 해당 게임의 설정 페이지에 있는 인증키를 입력
    - 집계를 위한 필수 항목
    Game VersionString게임 버전
    - 집계를 위한 필수 항목
    Channel CodeString채널링 코드
    - 게임 스토어의 채널 정보를 입력
    - 집계를 위한 필수 항목
    Channel IDString채널링 아이디
    - 회원 가입한 사용자의 이메일 주소를 입력
    • String은 특수문자 포함 100자 이내로 입력해야 합니다.
    • Member ID(계정ID)와 Nick Name(닉네임)은 게임 유저 정보에 따라 별도 설정해야 합니다.
    • 'Proguard'를 사용하는 경우 아래와 같이 SDK 예외처리를 해야 합니다.
      • Proguard 파일 위치: 게임프로젝트\Build\Android\proguard-project.txt
      • 예외처리 명령어
        keep class com.coresight.storagecoresdk.** { *; }
        dontwarn com.coresight.storagecoresdk.**
        

    Unity3D

    플러그인 설치 및 설정

    1. Unity 3D를 실행한 후 플러그인을 설치할 프로젝트를 열어 주십시오.
    2. Unity 메뉴에서 Assets > Import Package > Custom Package를 클릭해 주십시오.
    3. 다운로드한 SDK의 'Unity' 폴더에 있는 StorageCoreUnityPlugin.unitypackage 파일을 선택한 후 [Import] 버튼을 클릭해 주십시오.
    4. 첫 번째 Scene Hierarchy에 Plugin/StorageCoreManager.prefab을 끌어다 놓아 주십시오.
    5. StorageCoreManager GameObject를 선택한 후 Inspector 창에서 아래 표를 참고하여 기본 사용 환경을 설정해 주십시오.

    입력해야 할 기본 정보는 다음과 같습니다.

    NameValue설명
    Server IPStringNCP API URL
    - https://storagecore.gamereport.naverncp.com
    Auth KeyStringAPI 사용 인증키
    - Service Center > 해당 게임의 설정 페이지에 있는 인증키를 입력
    - 집계를 위한 필수 항목
    Game VersionString게임 버전
    - 집계를 위한 필수 항목
    Channel CodeString채널링 코드
    - 게임 스토어의 채널 정보를 입력
    - 집계를 위한 필수 항목
    Channel IDString채널링 아이디
    - 회원 가입한 사용자의 이메일 주소를 입력
    • Member ID(계정ID)와 Nick Name(닉네임)은 게임 유저 정보에 따라 별도 설정해야 합니다.
    • StorageCoreSample 폴더 내의 Sample.scene에서 샘플 프로젝트를 확인할 수 있습니다.
    Name설명
    Sample.sceneGameReport SDK 사용 예제
    TestGUI.cs데이터 전송 예제 소스 (Method 상세의 SDK 세부 가이드 항목 참조)
    • 'Proguard'를 사용하는 경우 아래와 같이 SDK 예외처리를 해야 합니다.
      • Proguard 파일 위치: Assets/Plugins/Android/proguard-user.txt
      • 예외 처리 명령어
      keep class com.coresight.storagecoresdk.** { *; }
      dontwarn com.coresight.storagecoresdk.**
      
    • 'Custom Gradle Template'을 사용하는 경우 아래와 같이 내용을 추가해야 합니다.
      • mainTemplate.gradle 파일 위치: Assets/Plugins/Android/mainTemplate.gradle
      • 추가해야 하는 내용
      dependencies {
      implementation fileTree(dir: 'libs', include: ['*.jar'])
      ……………
      
      // 아래의 implementation만 추가 하면 됩니다.
      implementation 'com.android.installreferrer:installreferrer:1.0'
      
      …………….
      **DEPS**
      }
      

    iOS Native

    플러그인 설치 및 설정

    1. 다운로드한 SDK의 'iOS' 폴더에 있는 StorageCoreSdk.framework와 strip-frameworks.sh를 Xcode 프로젝트 파일(.xcodeproj)이 있는 폴더로 복사해 주십시오.
    2. Xcode 프로젝트 설정 메뉴에서 아래의 방법으로 StorageCoreSdk.framework와 strip-frameworks.sh를 설정해 주십시오.
    • StorageCoreSdk.framework 설치
    1. Xcode 프로젝트 설정 메뉴에서 General을 클릭한 후 'Embedded Binaries' 영역에 있는 + 버튼을 클릭해 주십시오.
    2. Add Other 버튼을 클릭해 프로젝트 폴더로 복사한 'StorageCoreSdk.framework'를 추가해 주십시오.
    3. 'Embedded Binaries' 영역에 'StorageCoreSdk.framework'가 추가되었는지 확인해 주십시오.
    • SystemConfiguration.framework 설치
      'StorageCoreSdk.framework'를 설치하는 동일한 방법으로 Xcode 프로젝트 설정에서 General를 클릭한 후 'Linked Frameworks and Libraries' 영역에 'SystemConfiguration.framework'을 추가해 주십시오.

    • strip-frameworks.sh 설정
      제공되는 Storage Core SDK Framework는 Device와 Simulator에서 모두 이용할 수 있는 Fat 형태로, 빌드 시 strip 과정을 거쳐야 합니다.
      strip 과정은 제공되는 쉘 스크립트를 Post Build에 설정하면 됩니다.

    1. Xcode 프로젝트 설정에서 Build Phases 클릭해 주십시오.
    2. 왼쪽 위에 있는 + 버튼을 클릭한 후 New Run Script Phase를 선택해 Run Script를 추가해 주십시오.
    3. 추가된 Run Script에 아래 표를 참고하여 프로젝트 폴더로 복사한 strip-frameworks.sh를 실행하는 스크립트를 작성해 주십시오.

    입력해야 할 기본 정보는 다음과 같습니다.

    NameValue설명
    Server IPStringNCP API URL
    - https://storagecore.gamereport.naverncp.com
    Auth KeyStringAPI 사용 인증키
    - Service Center > 해당 게임의 설정 페이지에 있는 인증키를 입력
    - 집계를 위한 필수 항목
    Game VersionString게임 버전
    - 집계를 위한 필수 항목
    Channel CodeString채널링 코드
    - 게임 스토어의 채널 정보를 입력
    - 집계를 위한 필수 항목
    Channel IDString채널링 아이디
    - 회원 가입한 사용자의 이메일 주소를 입력
    • String은 특수문자 포함 100자 이내로 입력해야 합니다.
    • Member ID(계정ID)와 Nick Name(닉네임)은 게임 유저 정보에 따라 별도 설정해야 합니다.

    SDK 초기화

    앱을 처음 실행하는 경우 SDK를 초기화해야 합니다.

    • 라이브러리를 사용하기 위해 다음과 같이 import 명령어로 헤더 파일을 가져와 주십시오.
    #import <StorageCoreSdk/StorageCoreManager.h>
    
    • ViewController.m > viewDidLoad 함수에서 다음과 같이 initSDK 함수를 호출해 주십시오.
        [StorageCoreManager initSDK:@"https://storagecore.gamereport.naverncp.com" authKey:@"YWtoaWw6YWtoaWw=" gameVersion:@"1.0" channelCode:@"GOOGLE" channelID:@"media_account@gmail.com" memberID:@"testuserid01" charID:@"TestCharID" nickName:@"testnickname01"];
    

    Cocos2d-x

    Cocos2d-x는 iOS/Android 라이브러리를 기반으로 Cocos2d-x Wrapper를 이용하여 동작합니다. Cocos2d-x를 사용하려면 먼저 iOS 또는 Android의 개발 환경을 구성해 주십시오.

    플러그인 설치 및 설정

    1. Wrapper 소스 코드 복사를 위해 다운로드한 SDK의 'Cocos2d-x' 폴더에 있는 'StorageCoreSdk.zip' 압축 파일을 푼 후 StorageCoreSdk 폴더를 Cocos2d-x 프로젝트 파일 폴더/Classes로 복사해 주십시오.
    2. Cocos2d-x 프로젝트 폴더/Classes/StorageCoreSdk 폴더를 드래그하여 Xcode 또는 Visual Studio 프로젝트에 추가한 후 아래 표를 참고하여 기본 사용 환경을 설정해 주십시오.

    입력해야 할 기본 정보는 다음과 같습니다.

    NameValue설명
    Server IPStringNCP API URL
    - https://storagecore.gamereport.naverncp.com
    Auth KeyStringAPI 사용 인증키
    - Service Center > 해당 게임의 설정 페이지에 있는 인증키를 입력
    - 집계를 위한 필수 항목
    Game VersionString게임 버전
    - 집계를 위한 필수 항목
    Channel CodeString채널링 코드
    - 게임 스토어의 채널 정보를 입력
    - 집계를 위한 필수 항목
    Channel IDString채널링 아이디
    - 회원 가입한 사용자의 이메일 주소를 입력
    • String은 특수문자 포함 100자 이내로 입력해야 합니다.
    • Member ID(계정ID)와 Nick Name(닉네임)은 게임 유저 정보에 따라 별도 설정해야 합니다.

    SDK 초기화

    앱을 처음 실행하는 경우 SDK를 초기화해야 합니다.

    • 라이브러리를 사용하기 위해 다음과 같이 include 명령어로 헤더 파일을 포함시켜 주십시오.

      #include "StorageCoreWrapper.h"
      
    • 최초 시작하는 Scene의 init 함수에서 다음과 같이 initSDK 함수를 호출해 주십시오.

      StorageCoreWrapper::initSDK("https://storagecore.gamereport.naverncp.com", "YWtoaWw6YWtoaWw=", "1.0", "GOOGLE", "media_account@gmail.com", "testuserid01", "TestCharID", "testnickname01");
      

    Android Native

    플러그인 설치 및 설정

    1. 다운로드한 SDK의 'Android' 폴더에 있는 StorageCoreSdk.jar와 gson-2.8.4.jar를 Android Studio 프로젝트 폴더/app/libs로 복사해 주십시오.

    2. dependencies 설정을 위해 build.gradle에 다음과 같이 설정해 주십시오.

      dependencies {
          implementation fileTree(dir: 'libs', include: ['*.jar'])
          implementation files('libs/gson-2.8.4.jar')
          implementation files('libs/StorageCoreSdk.jar')
          implementation 'com.android.installreferrer:installreferrer:1.0'
       }
      
    3. AndroidManifest.xml에 아래 코드 및 표를 참고하여 기본 사용 환경을 설정해 주십시오.

      • 퍼미션 추가
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.INTERNET" />
      

    입력해야 할 기본 정보는 다음과 같습니다.

    NameValue설명
    Server IPStringNCP API URL
    - https://storagecore.gamereport.naverncp.com
    Auth KeyStringAPI 사용 인증키
    - Service Center > 해당 게임의 설정 페이지에 있는 인증키를 입력
    - 집계를 위한 필수 항목
    Game VersionString게임 버전
    - 집계를 위한 필수 항목
    Channel CodeString채널링 코드
    - 게임 스토어의 채널 정보를 입력
    - 집계를 위한 필수 항목
    Channel IDString채널링 아이디
    - 회원 가입한 사용자의 이메일 주소를 입력
    • String은 특수문자 포함 100자 이내로 입력해야 합니다.
    • Member ID(계정ID)와 Nick Name(닉네임)은 게임 유저 정보에 따라 별도 설정해야 합니다.

    SDK 초기화

    앱을 처음 실행하는 경우 SDK를 초기화해야 합니다.

    • 라이브러리를 사용하기 위해 다음과 같이 import 명령어로 파일을 가져와 주십시오.

      import com.coresight.storagecoresdk.StorageCoreManager;
      import com.coresight.storagecoresdk.StorageCoreApi;
      import com.coresight.storagecoresdk.Models.Enums.*;
      
    • MainActivity > onCreate 함수에서 다음과 같이 initSDK 함수를 호출해 주십시오.

      StorageCoreManager.initSDK(this, "https://storagecore.gamereport.naverncp.com", "YWtoaWw6YWtoaWw=", "1.0", "GOOGLE", "media_account@gmail.com", "testuserid01", "TestCharID", "testnickname01");
      

    SDK Method 개요

    클래스

    • public class StorageCoreManager
      • 게임 로그를 Coresight StorageCore로 전송

    StorageCoreApi 생성자

    • 데이터 전달을 위한 기본 생성자
    • 기본 정보를 파라미터로 객체를 생성

    Syntax

    StorageCoreApi(string Url, string AuthKey, string TargetVer, string ChannelCode, string ChannelID, string MemberID, string CharID, string NickName).
    // Example
    m_api = new StorageCoreApi(serverIp, authKey, gameVersion, channelCode, channelID, memberID, charID, nickName);
    

    Parameters

    Parameter Name설명
    UrlRest API URL 정보
    AuthKeyRest API 인증을 위한 인증키
    TargetVer게임 앱 버전
    ChannelCode게임 서비스 채널의 채널 코드
    - 예 : iOS, AOS, Onestore 등의 스토어명
    ChannelID특정 채널사(애플스토어, 구글스토어, 원스토어) 등에서 사용자가 가입 시 입력한 ID 정보
    MemberID게임에서 발행하는 회원 아이디
    - 회원 아이디는 회원별로 유일한 코드
    - 빈 값이나 NULL 데이터가 들어 있는 경우 집계 제외
    - 공백, 탭, 개행 문자가 들어 있는 경우 제거 후 집계
    CharID게임에서 발행하는 캐릭터의 아이디
    - 하나의 회원 코드에 여러 개를 발행하되 현재 접근하는 캐릭터의 아이디
    - 빈 값이나 NULL 데이터가 들어 있는 경우 집계 제외
    - 공백, 탭, 개행 문자가 들어 있는 경우 제거 후 집계
    NickName회원 또는 캐릭터에 대응되는 별명

    SDK Method 요약

    • SetAccountLevel

      • 유저의 레벨이 성장할 때 호출하여 캐릭터의 레벨 정보를 갱신
      주의

      캐릭터 레벨의 변경이 아닌 계정 레벨의 변경을 의미합니다. 하나의 계정에서 여러 개의 캐릭터를 사용할 때 ResourceChangeInfo를 통해서 변경합니다. 단, 계정과 캐릭터가 1 대 1 매핑일 경우에는 사용해도 무방합니다.

      public void SetAccountLevel(int AccountLevel)
      
      /* SampleCode */ 
      // 50레벨로 설정
      StorageCoreManager.GetInstance().GetApi().SetAccountLevel(50);
      
    • SetCharacterID

      • 게임 중 유저가 사용하고 있는 캐릭터를 보유 중인 다른 캐릭터로 변경
      public void SetCharacterID(string CharacterID)
      
      /* SampleCode */ 
      // 사용하는 캐릭터 "7777777"로 변경
      StorageCoreManager.GetInstance().GetApi().SetCharacterID("77777777");
      
    • SetMemberID

      • 유저의 회원 아이디 설정
      • 최초 GameReport Instance 생성 시 생성자를 통해 MemberID를 넣을 수 없는 경우 사용
        • 예) 게임 첫 실행 시 MemberID가 없을 때 Empty로 GameReport Instance하고 계정 발급 후에 MemberID를 설정
      주의

      MemberID는 사용자별로 고유한 것을 사용해야 합니다. 그렇지 않으면 지표가 부정확해질 수 있습니다.

      public void SetMemberID(string MemberID)
      
      /* SampleCode */
      // 계정 아이디를 "MID0000007"로 설정
      StorageCoreManager.GetInstance().GetApi().SetMemberID("MID0000007");
      
    • SetNickName

      • 유저의 NickName 설정
        • 예) 게임 첫 실행 시 닉네임이 없을 때 Empty로 GameReport Instance하고 계정 발급 후에 NickName을 설정
        • 닉네임 쿠폰을 사용하여 닉네임을 변경할 때 사용
      public void SetNickName(string NickName)
      
      /* SampleCode */ 
      // 닉네임을 "타노스"로 설정
      StorageCoreManager.GetInstance().GetApi().SetNickName("타노스");
      
    • SetChannelID

      • 게임 앱  설치 시 사용한 채널사(애플스토어, 구글스토어, 원스토어 등)에서 발급하는 ID 정보 설정
      • 게임 서비스 채널의 아이디를 변경할 때 사용하여 ChannelID를 갱신
      public void SetChannelID(string ChannelID)
      
      /* SampleCode */ 
      // 채널 아이디를 "0000001234567"로 설정
      StorageCoreManager.GetInstance().GetApi().SetChannelID("0000001234567");
      
    • SetChannelCode

      • 스토어의 이름인 게임 서비스 채널 코드 설정
        • 예) iOS, AOS, Onestore 등의 스토어 이름을 설정
      public void SetChannelCode(string ChannelCode)
      
      /* SampleCode */ 
      // 채널 코드를 "GOOGLE"로 설정합니다.
      StorageCoreManager.GetInstance().GetApi().SetChannelCode("GOOGLE");
      
    • GetInstance

      • StorageCoreManager 객체 초기화
    • ConnectInfos Log

      • 사용자의 게임 로그인/로그아웃 로그를 전송하고 성과를 분석
      • 사용자의 게임 콘텐츠(스테이지, 던전, PVP, 상점 등) 진입/이탈 로그를 전송하고 성과를 분석
    • ContentActInfos

      • 사용자가 게임 콘텐츠를 수행 완료 시점에 다양한 로그를 전송하고 콘텐츠 난이도, 게임 리소스 밸런스, 게임 사용자가 느끼는 어려움을 분석
      • 포함 정보
        • 콘텐츠 수행 중에 같이 콘텐츠를 수행한 게임 자원
        • 콘텐츠 수행 중에 사용된 아이템
        • 콘텐츠 수행 중에 사용한 스킬
        • 콘텐츠 수행 중에 착용한 장비
        • 콘텐츠 수행 중에 제거(Kill)한 적
      MethodReturn설명
      ClearPartnersInfovoid파트너 정보 저장을 위한 목록 초기화
      AddPartnersInfovoid파트너 정보 추가
      GetPartnersInfoList<PartnersInfo>파트너 정보 조회
      ClearWearItemInfosvoidWearItem 정보 저장을 위한 목록 초기화
      AddWearItemInfosvoidWearItem 데이터 추가
      GetWearItemInfosList<WearItemInfo>WearItem 데이터 조회
      ClearSkillInfosvoid스킬 정보 저장을 위한 스킬 목록 초기화
      AddSkillInfosvoid캐릭터가 사용하는 스킬을 스킬 목록에 추가
      GetSkillInfosList<SkillInfo>저장된 스킬 목록 조회
      ClearItemInfosvoid아이템 정보 저장을 위한 목록 초기화
      AddItemInfosvoid아이템 정보 추가
      GetItemInfosList<ItemInfo>저장된 아이템 목록 조회
      ClearEnemyInfosvoid콘텐츠에서 대전한 상대편 정보 저장을 위한 목록 초기화
      AddEnemyInfosvoid콘텐츠에서 대전한 상대 정보 추가
      GetEnemyInfosList<EnemyInfo>AddEnemyInfos 통해서 저장한 EnemyInfo 정보 조회
    • AdPerformInfos

      • 게임 실행 시 게임 앱에서 배너 노출 정보와 배너 클릭 로그를 전송하고 사용자의 반응을 분석
      • 사용자가 참여한 다양한 캠페인(이벤트) 로그를 전송하고 게임 사용자의 참여율을 분석
      MethodReturn설명
      ClearJoinContentsvoid파트너 정보 저장을 위한 목록 초기화
      AddJoinContentsvoid파트너 정보 추가
    • FileDownloadInfos

      • 게임 업데이트 중에 다운로드 및 설치하는 파일 로그를 전송하고 다운로드 및 설치 과정에서 발생하는 문제를 분석
    • InstallInfos

      • 게임 첫 실행 및 게임 계정 생성 로그를 전송하고 서비스 중인 게임을 분석
      주의

      InstallInfos 로그는 게임 로그 분석의 기준이 되는 로그로 전송하지 않을 경우 다양한 분석에 제약이 발생할 수 있습니다.

    • FriendshipInfos

      • 게임에서 발생하는 친구 관계에 대한 로그를 전송하고 로그를 통해서 게임 내 친구 관계를 검색
      참고

      FriendshipInfos 로그는 분석되지 않는 로그입니다. 필요 시 로그 검색 기능을 통해서 확인할 수 있습니다.

    • ItemChangeInfos

      • 사용자가 다양한 게임 아이템 획득/소비 직후 로그를 전송하고 아이템 밸런스, 게임 기획에 대한 사용자의 반응을 분석

      • 게임 내에서 사용하는 유료, 무료 아이템 모두 분석

      • 포함 정보

        • 아이템 수량 변화의 목적
        • 각각의 아이템 수량 변화 경로
        • 한 번의 행위로 획득/소비한 여러 개의 아이템
      • 여러 가지의 ItemChangeInfos 정보를 누적 전송을 위해 객체 설정

        MethodReturn설명
        ClearItemChangeInfoListvoid아이템 변경 내역 저장을 위한 목록 초기화
        AddItemChangeInfoListvoid아이템 변경 내역 추가
        GetItemChangeInfoListList<ItemChangeInfo>AddItemChangeInfoList를 통해서 저장한 아이템 변경 내역 리스트 반환
      • ItemChangeInfos에 포함되는 ItemsInfo 객체 정보 설정

        MethodReturn설명
        ClearItemChangeInfosvoid저장한 아이템 수량 변화(획득/소비) 정보 초기화
        AddItemChangeInfosvoid아이템 획득/소비 시의 해당 아이템 상세 정보 추가
        GetItemChangeInfosList<ItemsInfo>AddItemChangeInfos를 통해 추가한 아이템 변화(획득/소비) 정보 반환
    • VMoneyChangeInfos

      • 게임 안에서 사용되는 모든 재화 수량 변화(획득/소비) 로그를 전송하고 게임의 재화의 흐름을 분석
      참고

      게임 안에서 재화뿐만 아니라 재화와 유사한 형태를 가진 게임 자원도 분석할 수 있습니다.

      • 여러 가지의 VMoneyChangeInfos 정보를 누적 전송을 위해 객체 설정

        MethodReturn설명
        ClearVMoneyChangeInfoListvoid저장한 재화 수량 변화(획득/소비) 정보 초기화
        AddVMoneyChangeInfoListvoid재화의 수량 변화(획득/소비) 정보 추가
        GetVMoneyChangeInfoListList<VMoneyChangeInfo>AddVMoneyChangeInfoList를 통해서 추가한 재화 변경(획득/소비) 내역  정보 반환
    • ResourceChangeInfos

      • 게임 안에서 사용되는 아이템들의 특성 변화 로그를 전송하고 게임 콘텐츠 밸런스, 아이템 밸런스, 콘텐츠와 아이템의 연관 관계, 게임 기획에 대한 사용자의 반응을 분석
    • BuyInfos

      • 현금/카드/쿠폰/상품권 구매 등의 구매 로그를 전송하고 매출을 분석
      • 매출 분석을 통해서 매출 유저 분석, 아이템 분석, 아이템과 아이템의 관계를 분석
    주의

    String 항목은 100자 이내로만 지정해야 합니다.

    SDK Method 상세

    InstallInfos

    게임 첫 실행 및 게임 계정 생성 로그를 전송하고 서비스 중인 게임의 설치/계정 생성 상황을 분석

    API 호출 시점

    호출 시점필수 여부영향 지표
    게임 설치 후 게임 앱을 처음 실행한 직후 로그 전송
  • InstallType 은 INSTALL로 전송
  • Y- RU
    - NRU
    - Retention (재방문 유저)
    - Revisit (재방문)
    - 실시간 유입
    - 신규 회원 현황
    - 유입 관련 지표
    - 리세마라 관련 지표
    - 설치 관련 지표
    계정을 최초 생성한 직후 로그 전송
  • InstallType 은 ACCOUNT로 전송
  • Y- RU
    - NRU
    - Retention (재방문 유저)
    - Revisit (재방문)
    - 실시간 유입
    - 신규 회원 현황
    - 유입 관련 지표
    - 리세마라 관련 지표
    - 설치 관련 지표
    주의

    분석에 필요한 기본 정보이므로 로그를 전송해야 대부분의 지표를 확인할 수 있습니다.

    참고
    • 계정 생성과 동시에 캐릭터가 생성되는 구조인 경우 캐릭터 생성 로그는 ItemChangeInfos의 ChangeType.INIT로 별도 저장해야 합니다.
    • 게임 앱 최초 실행 시 에러가 발생하는 경우 에러 코드 또는 에러 문구를 같이 전송합니다.

    Enumerations 콘텐츠

    • InstallType
      게임 앱 설치 관련 로그 전송 시 설치/계정 생성에 대한 구분을 지정
    NameValue설명
    INSTALL0설치
    - APP Store, Google Play Store에서 게임 설치 후 게임 첫(최초 실행 1회) 실행 시점에 설정합니다.
    ACCOUNT1게임 실행 후 계정 생성 (회원가입 및 계정 생성) 시점에 설정합니다.
    참고
    • 캐릭터 생성 로그는 ItemChangeInfos의 ChangeType.INIT로 별도 저장해야 합니다.
    • 1 계정 1 캐릭터 게임의 경우 계정 생성 완료 시 캐릭터 생성 로그도 같이 남겨야 정확한 지표를 측정할 수 있습니다.
    • 계정 생성 완료 시 ConnectInfos의 로그인 로그도 같이 남겨야 정확한 지표를 측정할 수 있습니다.
    • ResultType
      게임 설치(게임 리소스 파일 패치) 성공 여부 지정
    NameValue설명
    NON0게임 앱 설치(게임 리소스 파일 패치) 성공/실패 여부 없음
    SUCCESS1게임 앱 설치(게임 리소스 파일 패치) 성공
    FAIL2게임 앱 설치(게임 리소스 파일 패치) 실패

    Method 설명

    string InstallInfos(InstallType AppInstallType, string ReferrerURL, string APPVersion, StateType DeviceInstallStateType, ResultType DeviceInstallResult, string InstallErrorMessage, string PushToken)
    
    Parameter NameData Type설명
    AppInstallTypeInstallType앱 설치/제거를 구분 집계하기 위한 필수 항목
    ReferrerURLstring스토어 전에 어느 사이트에서 머물렀는지 확인하는 정보를 집계하기 필수 항목
    APPVersionstring게임의 버전 정보를 집계하기 위한 필수 항목
    DeviceInstallStateTypeStateType게임 앱 설치(게임 리소스 파일 패치) 과정 정보
    DeviceInstallResultResultType게임 앱 설치(게임 리소스 파일 패치) 결과 정보
    InstallErrorMessagestring게임 앱 설치(최초 실행)할 때 발생되는 에러 메시지 정보
    PushTokenstring푸시 발송을 위한 개인 푸시 토큰 정보
    Return(호출 결과)
    --반환 값 없음

    샘플 소스

    // 게임 설치 후 게임 최초 실행 시 설치 로그 남기기 (필수) 
    StorageCoreManager.GetInstance ().GetApi ().InstallInfos (InstallType.INSTALL, StorageCoreManager.GetReferrerName(), "APPVersion", StateType.FINISH, ResultType.SUCCESS, "InstallErrorMessage", "");
    
    // 계정 생성  로그 남기기 (필수) 
    StorageCoreManager.GetInstance ().GetApi ().InstallInfos (InstallType.ACCOUNT, StorageCoreManager.GetReferrerName(), "APPVersion", StateType.FINISH, ResultType.SUCCESS, "InstallErrorMessage", "");
    
    // 게임 로그인 (필수 / ConnectInfos를 통해 남길 수 있는 정보로 ConnectInfos에서 확인) 
    StorageCoreManager.GetInstance().GetApi().ConnectInfos(ConnectType.APP, "Login", FlowType.IN); 
    
    // 캐릭터 생성 프로세스 
    // 인스턴스 객체 생성 (필수 / ItemChangeInfos를 통해 남길 수 있는 정보로 ItemChangeInfos에서 확인) 
    StorageCoreManager scManager = StorageCoreManager.GetInstance(); 
    
    // 아이템 데이터 저장전 데이터 array 초기화 
    scManager.ClearItemChangeInfos (); 
    
    // 캐릭터 생성 정보 넣기 
    // 계정 생성 후 캐릭터 생성 로그 남기기
    scManager.AddItemChangeInfoList(FlowType.IN, ChangeType.INIT, "ChangeDetail1", "ContentName", "ContentCode", scManager.GetItemChangeInfos());
    

    FileDownloadInfos

    게임 앱 추가 설치(게임 리소스 파일 패치)할 때 다운로드 로그를 전송하고, 다운로드 에러 발생 시 검색을 통해 에러를 확인

    API 호출 시점

    호출 시점필수 여부영향 지표
    파일 다운로드 시점마다 로그 전송N분석 지표 없음, 로그 검색을 통해서 확인
    다운로드 중에 통신 끊김 문제로 파일이 전송되지 않을 때 로그 전송N분석 지표 없음, 로그 검색을 통해서 확인
    다운로드 대상 파일이 존재하지 않을 때(에러 코드를 포함) 로그 전송N분석 지표 없음, 로그 검색을 통해서 확인
    참고
    • 하나의 게임 리소스 파일을 다운로드할 때마다 전송합니다.
    • 전송된 FileDownload 로그는 LIBCORE에서 검색 기능을 통하여 확인할 수 있습니다.

    Enumerations

    • MethodType/Enum
      유저가 게임의 리소스 파일을 받을 때의 전송 방식 지정
    NameValue설명
    DATA0데이터 통신으로 다운로드
    WIFI1와이파이로 다운로드

    Method 설명

    string FileDownloadInfos(string FileName, int FileSeq, string FileVersion, string ErrorMessage)
    
    Parameter NameData Type설명
    FileNamestring다운로드할 파일 이름
    FileSeqint파일 다운로드 순서
    FileVersionstring파일 버전
    ErrorMessagestring에러 메시지
    Return(호출 결과)
    string전송 성공 여부에 대한 결과 값

    샘플 소스

    //다운로드 순서 1번인 파일 "{FileName}"을 다운로드 받는 중에 "ErrorMessage" 에러가 발생되어 다운로드 로그를 저장
    StorageCoreManager.GetInstance ().GetApi ().FileDownloadInfos ("hero1.png", 1, "0.1.0", "ErrorMessage");
    StorageCoreManager.GetInstance ().GetApi ().FileDownloadInfos ("contents1.json", 2, "FileVersion", "ErrorMessage");
    StorageCoreManager.GetInstance ().GetApi ().FileDownloadInfos ("item_bs.csv", 3, "FileVersion", "ErrorMessage");
    

    BuyInfos

    현금/카드/선물하기/상품권을 통해 구매한 로그를 전송하고 게임의 매출을 상세하게 분석

    • 매출 분석(첫 구매/재구매 비율)
    • 매출 분석(아이템 또는 레벨별)
    • 구매 현황 분석(구매 유저의 추가 아이템 구매 현황)

    API 호출 시점

    호출 시점필수 여부영향 지표
    신용카드로 아이템 구매 시 로그 전송N- 전체 매출
    - 첫 구매
    - 재 구매
    - ARPU
    - ARPPU
    - BU
    - 실시간 매출
    - 아이템/게임 시간 연관 분석
    - 아이템 매출
    - 레벨 매출
    - 아이템 연관 분석
    - 결제/비 결제 관련 분석 지표
    상품권으로 아이템 구매 시 로그 전송N
    핸드폰 결제로 아이템 구매 시 로그 전송Y
    무통장 입금으로 구매 시 로그 전송Y
    다양한 페이(kakao pay, Naver pay 등등)로 구매 시 로그 전송Y
    마일리지 포인트로 구매 시 로그 전송Y
    주의

    반드시 채널 사의 구매 완료를 확인한 후에 로그를 전송해야 합니다.

    참고

    결제 완료 후에 아이템이 지급되면 ItemChangeInfos 로그도 전송해야 합니다.

    Enumerations 콘텐츠

    • PurchaseType
      유저가 유료 아이템을 구매 또는 획득하는 게임 자원 종류를 지정
    NameValue설명
    CHARGE0현금 캐시를 충전
    BONUS1보너스 캐시를 충전
    (예: 이벤트 당첨으로 인한 보상 캐시 or 쿠폰 충전)
    CASHPRESENT2다른 유저에게 캐시를 선물
    PURCHARSE3아이템 구매
    ITEMPRESENT4다른 유저에게 아이템 선물
    • CurrencyType
      유료 아이템 구매 시 결제한 금액의 화폐 종류 지정
    NameValue설명
    KRW0대한민국 원화
    CNY1중국 위안화
    HKD2홍콩 달러
    TWD3대만 달러
    EUR4유로
    USD5미국 달러
    GBP6영국 파운드
    AUD7오스트레일리아 달러
    JPY8일본 엔화
    RUB9러시아 루블
    AED10아랍에미리트 디르함
    AFN11아프가니스탄 아프가니
    ALL12알바니아 렉
    AMD13아르메니아 드람
    ANG14네덜란드령 안틸레스 굴덴
    AOA15앙골라 콴자
    ARS16아르헨티나 페소
    AWG17아루바 플로린
    AZN18아제르바이잔 마나트
    BAM19보스니아 마르카
    BBD20바베이도스 달러
    BDT21방글라데시 타카
    BGN22불가리아 레프
    BHD23바레인 디나르
    BIF24부룬디 프랑
    BMD25버뮤다 달러
    BND26브루나이 달러
    BOB27볼리비아노
    BRL28브라질 레알
    BSD29바하마 달러
    BTC30Bitcoin
    BTN31부탄 눌트럼
    BWP32보츠와나 풀라
    BYN33신 벨라루스 루블
    BYR34벨라루스 루블
    BZD35벨리즈 달러
    CAD36캐나다 달러
    CDF37콩고 프랑
    CHF38스위스 프랑
    CLF39Unidad de Fomento (기금부호)
    CLP40칠레 페소
    CNH41Chinese Yuan (Offshore)
    COP42콜롬비아 페소
    CRC43코스타리카 콜론
    CUC44쿠바 태환 페소
    CUP45쿠바 페소
    CVE46카보베르데 에스쿠도
    CZK47체코 코루나
    DJF48지부티 프랑
    DKK49덴마크 크로네
    DOP50도미니카 공화국 페소
    DZD51알제리 디나르
    EEK52에스토니아 크룬
    EGP53이집트 파운드
    ERN54에리트레아 낙파
    ETB55에티오피아 비르
    FJD56피지 달러
    FKP57포클랜드 제도 파운드
    GEL58그루지야 라리
    GGP59Guernsey Pound
    GHS60가나 세디
    GIP61지브롤터 파운드
    GMD62감비아 달라시
    GNF63기니 프랑
    GTQ64과테말라 퀘찰
    GYD65가이아나 달러
    HNL66온두라스 렘피라
    HRK67크로아티아 쿠나
    HTG68아이티 구르드
    HUF69헝가리 포린트
    IDR70인도네시아 루피아
    ILS71이스라엘 셰켈
    IMP72Manx pound
    INR73인도 루피
    IQD74이라크 디나르
    IRR75이란 리알
    ISK76아이슬란드 크로네
    JEP77Jersey Pound
    JMD78자메이카 달러
    JOD79요르단 디나르
    KES80케냐 실링
    KGS81키르기스스탄 솜
    KHR82캄보디아 리엘
    KMF83코모로 프랑
    KPW84조선민주주의인민공화국 원
    KWD85쿠웨이트 디나르
    KYD86케이맨 제도 달러
    KZT87카자흐스탄 텡게
    LAK88라오스 키프
    LBP89리비아 파운드
    LKR90스리랑카 루피
    LRD91라이베리아 달러
    LSL92레소토 로티
    LYD93리비아 디나르
    MAD94모로코 디르함
    MDL95몰도바 레우
    MGA96말라가시 아리아리
    MKD97마케도니아 디나르
    MMK98미얀마 차트
    MNT99몽골 투그릭
    MOP100마카오 파타카
    MRO101모리타니 우기야
    MRU102Mauritanian Ouguiya
    MTL103Maltese Lira
    MUR104모리셔스 루피
    MVR105몰디브 루피야
    MWK106말라위 콰차
    MXN107멕시코 페소
    MYR108말레이시아 링깃
    MZN109모잠비크 메티칼
    NAD110나미비아 달러
    NGN111나이지리아 나이라
    NIO112니카라과 코르도바
    NOK113노르웨이 크로네
    NPR114네팔 루피
    NZD115뉴질랜드 달러
    OMR116오만 리알
    PAB117파나마 발보아
    PEN118페루 누에보솔
    PGK119파푸아 뉴기니 키나
    PHP120필리핀 페소
    PKR121파키스탄 루피
    PLN122폴란드 즈워티
    PYG123파라과이 과라니
    QAR124카타르 리알
    RON125루마니아 레우
    RSD126세르비아 디나르
    RWF127르완다 프랑
    SAR128사우디아라비아 리얄
    SBD129솔로몬 제도 달러
    SCR130세이셸 루피
    SDG131수단 파운드
    SEK132스웨덴 크로나
    SGD133싱가폴 달러
    SHP134세인트헬레나 파운드
    SLL135시에라리온 레온
    SOS136소말리아 실링
    SRD137수리남 달러
    SSP138남수단 파운드
    STD139상투메 도브라
    STN140Sao Tome and Principe Dobra
    SVC141엘살바도르 콜론
    SYP142시리아 파운드
    SZL143스와질란드 릴랑게니
    THB144태국 바트
    TJS145타지키스탄 소모니
    TMT146투르크메니스탄 마나트
    TND147튀니지 디나르
    TOP148통가 팡가
    TRY149터키어 리라
    TTD150트리니다드 토바고 달러
    TZS151탄자니아 실링
    UAH152우크라이나 흐리브냐
    UGX153우간다 실링
    UYU154우루과이 페소
    UZS155우즈베크 솜
    VEF156볼리바르 후에르떼
    VND157베트남 동
    VUV158바누아투 바투
    WST159사모아 탈라
    XAF160CFA 프랑 (BEAC)
    XAG161은 (1 트로이 온스)
    XAU162금 (1 트로이 온스)
    XCD163동카리브 달러
    XDR164특별인출권
    XOF165CFA 프랑 (BCEAO)
    XPD166팔라듐 (1 트로이 온스)
    XPF167CFP 프랑
    XPT168백금 (1 트로이 온스)
    YER169예멘 리알
    ZAR170남아프리카 공화국 랜드
    ZMK171잠비아 콰차
    ZMW172잠비아 콰차
    • PayToolCode
      유료 아이템 구매 시 결제 수단을 지정
    NameValue설명
    CARD0신용카드 결제
    MOBILE1핸드폰 결제
    SENDCASH2계좌 이체(무통장) 또는 PAY 결제
    CASH3마일리지 또는 매체사 캐시
    GIFTCARD4상품권 결제
    • ResultType
      유료 아이템 구매 결과 지정
    NameValue설명
    TRY0결제 시도
    SUCCESS1결제 완료이지만 성공
    FAIL2결제 완료이지만 실패

    Method 설명

    BuyInfos(string OrderNO, string GoodsCode, PurchaseType PayPurchaseType, string ItemCode, string ItemName, int Amount, CurrencyType CurrencyCode, float TotalPrice, ToolCodeType PayToolCode, DateTime Sdate, DateTime Edate, string ReceiveMemberID, int Balance, ResultType PayResultType, string PayResultMessage)
    
    Parameter NameData Type설명
    OrderNOstring스토어로부터 받은 주문 번호
    문제 발생 시 스토어 결제 정보와 비교할 Key
    GoodsCodestring스토어가 인식하는 상품 코드
    PayPurchaseTypePurchaseType획득하는 게임 자원 종류
    ItemCodestring게임 내부 상품 코드/이벤트 참여 키 값
    필수 – 집계를 위한 필수 항목
    ItemNamestring게임 상품 이름
    필수 – 집계를 위한 필수 항목
    Amountint구매 개수
    필수 – 집계를 위한 필수 항목
    CurrencyCodeCurrencyType결제한 금액의 화폐 종류
    필수 – 집계를 위한 필수 항목
    TotalPricefloat총 구매 금액(소수점 가능)
    필수 – 집계를 위한 필수 항목
    PayToolCodePayToolCodeType결제 수단
    SdateDateTime기간제 아이템/보너스 캐시의 경우 시작 시간
    EdateDateTime기간제 아이템/보너스 캐시의 경우 만료 시간
    ReceiveMemberIDString게임에서 발급하는 계정 아이디
    BalanceInt구매 이벤트 완료 후 캐시 잔액 또는 수량
    PayResultTypeResultType결과 값의 구분
    필수 – 집계를 위한 필수 항목
    PayResultMessagestring결제 메시지
    성공 또는 실패 메시지 또는 코드
    Return(호출 결과)
    string로그를 저장한 후의 결과 값

    샘플 소스

    //아이템 구매일시 변수 선언
    System.DateTime today = System.DateTime.Now; 
    
    //구매 로그 전송
    StorageCoreManager.GetInstance().GetApi().BuyInfos("OrderNO", "GoodsCode" ,PurchaseType.PURCHARSE, "ItemCode", "ItemName", 100, CurrencyType.USD, 100.99, ToolCodeType.CARD, today, today.AddDays(10), "ReceiveMemberID", 100, ResultType.SUCCESS, "PayResultMessage");
    

    ContentActInfos

    게임 안에서 사용자의 게임 콘텐츠 수행 로그를 전송하고 콘텐츠 난이도, 캐릭터 밸런스, 아이템 밸런스 등을 분석

    API 호출 시점

    호출 시점필수 여부영향 지표
    게임 안에서 일반 스테이지를 완료한 직후(성공/실패 무관) 로그 전송N- 정체 시간
    - 콘텐츠 실행/성공/실패 횟수
    - 실시간 플레이 스테이지
    - 미션/스테이지 요약 정보
    - 실패 원인 분석
    - 미션 분석
    게임 안에서 길드전을 완료한 직후 로그 전송N
    게임 안에서 친선전을 완료한 직후 로그 전송Y
    게임 안에서 미션 콘텐츠를 완료한 직후 로그 전송Y
    게임 안에서 공성전 콘텐츠를 완료한 직후 로그 전송Y
    게임 안에서 PVP, PVE, PVMP 등의 콘텐츠를 완료한 직후 로그 전송Y
    게임 안에서 이벤트 퀘스트를 완료한 직후 로그 전송Y
    주의

    반드시 결제가 완료되는 시점에 로그를 전송해야 합니다.

    참고

    MMORPG 장르에서는 하나의 몬스터를 제거한 후 로그를 전송하는 것이 좋습니다.

    Enumerations 콘텐츠

    • StageType
      게임 안에서 사용자가 수행하는 콘텐츠의 종류를 지정
    NameValue설명
    STAGE0콘텐츠가 일반 스테이지일 때 지정
    GUILD1콘텐츠가 길드전일 때 지정
    FRIENDSHIP2콘텐츠가 친선전일 때 지정
    MISSION3콘텐츠가 게임 내의 미션일 때 지정
    PVE4콘텐츠가 PVE(레이드 또는 보스전)일 때 지정
    PVP5콘텐츠가 PVP일 때 지정
    PVMP6콘텐츠가 난투장 또는 여러 유저 상대일 때 지정
    QUEST7콘텐츠가 퀘스트일 때 지정
    SIEGE8콘텐츠가 공성전일 때 지정
    EVENTSTAGE9콘텐츠가 이벤트 스테이지일 때 지정
    • AutoType
      사용자가 콘텐츠를 수행할 때 사용했던 게임 수행 방법을 지정
    NameValue설명
    AUTO0해당 스테이지를 오토로 수행
    MANUAL1해당 스테이지를 수동으로 수행
    • ResultType
      사용자가 게임 콘텐츠를 수행한 결과를 지정
    NameValue설명
    NON0스테이지의 결과를 성공과 실패로 나눌 수 없을 때 지정
    SUCCESS1성공일 때 지정
    FAIL2실패일 때 지정
    • PartnerType
      콘텐츠를 같이 수행한 파트너 또는 게임 리소스의(친구, 펫, 길드원 등) 종류를 지정
    NameValue설명
    MYSELF0자신이 보유한 캐릭터일 때 지정
    MAINMYSELF1자신의 메인 캐릭터일 때 지정
    FRIEND2파트너가 친구일 때 지정
    GUILD3파트너가 길드원일 때 지정
    PET4파트너가 펫일 때 지정
    RANDOM5파트너가 랜덤으로 지정되었을 때 지정
    ETC6기타

    Params Data Class

    • PartnersInfo
      사용자가 게임 콘텐츠 수행 시 함께 수행한(도움을 주는) 게임 파트너(친구(캐릭터)/길드원/펫/카드)의 상세 정보를 저장
    Data MemberDataType설명
    PartnerTypePartnerType파트너의 종류
    MemberIDstring회원번호(일련번호)
    PartnerIDstring파트너 캐릭터(길드원/펫/카드) 일련번호
    PartnerCharUQCodestring파트너 캐릭터(길드원/펫/카드) 고유번호
    PartnerLevelint파트너 캐릭터(길드원/펫/카드) 레벨
    PartnerHPint콘텐츠 완료 시점의 파트너 캐릭터(길드원/펫/카드) HP
    PartnerMPint콘텐츠 완료 시점의 파트너 캐릭터(길드원/펫/카드) MP
    • WearItemInfo
      사용자가 게임 콘텐츠 수행 시 착용(장착)한 아이템 정보를 저장
      착용 또는 장착한 아이템(무기, 장신구, 의류등)
    Data MemberDataType설명
    PartnerIDstring아이템을 사용한 파트너의 아이디
    ItemCodestring착용 아이템 코드
    ItemNamestring착용 아이템 이름
    ItemLevelint착용 아이템 레벨(0으로 넣기)
    ItemGradestring착용 아이템 등급
    ItemDeckCodestring착용 아이템에 적용된 덱 코드
    ItemDeckNamestring착용 아이템에 적용된 덱 이름
    • SkillInfo
      사용자가 게임 콘텐츠 수행 시 사용한 캐릭터 스킬 정보를 사용한 스킬 순서대로 저장
    Data MemberDataType설명
    PartnerIDstring스킬을 사용한 파트너의 아이디
    SkillNamestring사용한 스킬 이름
    SkillDamageint사용한 스킬이 몬스터 또는 상대 캐릭터에 입힌 피해
    SkillTypestring사용한 스킬의 공격 형식(물리, 마법, 치유)
    SkillDurationint사용한 스킬의 지속 시간
    • ItemInfo
      게임 안에서 콘텐츠 수행 시 사용한 아이템 정보를 사용한 아이템 순서대로 저장
    Data MemberDataType설명
    PartnerIDstring아이템을 사용한 파트너의 아이디
    ItemNamestring사용한 아이템 이름
    ItemAmountint사용한 아이템 개수
    ItemDurationint사용한 아이템의 지속 시간
    • EnemyInfo
      게임 안에서 콘텐츠 수행 시 제거한 게임 자원(몬스터, 펫, PVP의 상대 캐릭터, 보스 몬스터)의 정보를 저장
    Data MemberDataType설명
    PartnerIDstring적을 제거한 파트너의 아이디
    EnemyIDstring제거한 캐릭터 아이디(PVP, PVMP) 또는 몬스터 아이디
    EnemyLevelint제거한 캐릭터 / 사용자 레벨 INT
    레벨이 없는 경우 0
    EnemyAttackint제거한 캐릭터 / 사용자 공격력 INT
    공격력이 없는 경우 0
    EnemyDefenseint제거한 몬스터 / 캐릭터 방어력
    방어력이 없는 경우 0
    EnemyStaminaint제거한 몬스터 / 캐릭터 체력
    체력이 없는 경우 0

    Method 설명

    // PartnersInfo의 내용 초기화
    public void ClearPartnersInfo()
    
    Parameter NameData Type설명
    Return(호출 결과)
    void반환 값 없음
    // List<PartnersInfo>에 파트너 정보 내역을 하나씩 추가
    public void AddPartnersInfo(string MemberID, string PartnerCharUQCode, int PartnerHP, string PartnerID, int PartnerLevel, int PartnerMP, PartnerType PartnerType)
    
    Parameter NameData Type설명
    MemberIDString회원 번호
    PartnerCharUQCodeString친구(캐릭터)/길드원/펫/카드 사용 캐릭터 고유 번호
    PartnerHPint친구(캐릭터)/길드원/펫/카드 HP
    PartnerIDString친구(캐릭터)/길드원/펫/카드 ID
    PartnerLevelint친구(캐릭터)/길드원/펫/카드 레벨
    PartnerMPint친구(캐릭터)/길드원/펫/카드 MP
    StagePartnersInfoPartnerType파트너의 종류
    집계를 위한 필수 항목
    Return (호출 결과)
    void반환 값 없음
    // AddPartnersInfo를 통해 추가한 장착 파트너 정보 내역 조회
    public List<PartnersInfo> GetPartnersInfo()
    
    Parameter NameData Type설명
    Return (호출 결과)
    PartnersInfosList<PartnersInfo>목록에 저장된 파트너 정보
    // WearItemInfo의 내용 초기화
    public void ClearWearItemInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    void반환 값 없음
    // List<WearItemInfo>에 장착 아이템 내역을 하나씩 추가
    public void AddWearItemInfos(string PartnerID, string ItemCode, string ItemDeckCode, string ItemDeckName, string ItemGrade, int ItemLevel, string ItemName)
    
    Parameter NameData Type설명
    PartnerIDstring아이템을 사용한 파트너의 아이디
    ItemCodestring착용 아이템 코드
    ItemDeckCodestring착용 아이템에 적용된 덱 코드
    ItemDeckNamestring착용 아이템에 적용된 덱 이름
    ItemGradestring착용 아이템 등급
    ItemLevelint착용 아이템 레벨 (0으로 넣기)
    ItemNamestring착용 아이템 이름
    Return (호출 결과)
    void반환 값 없음
    // AddWearItemInfos를 통해서 추가한 장착 아이템 내역 조회
    public List<WearItemInfo> GetWearItemInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    List<WearItemInfo>목록에 저장된 착용 장비 정보
    // SkillInfos의 내용 초기화
    public void ClearSkillInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    void반환 값 없음
    // List<SkillInfo>에 콘텐츠 수행 시 사용한 스킬 내역을 하나씩 추가
    public void AddSkillInfos(string PartnerID, int SkillDamage, int SkillDuration, string SkillName, string SkillType)
    
    Parameter NameData Type설명
    PartnerIDstring스킬을 사용한 파트너의 아이디
    SkillDamageint사용한 스킬이 몬스터 또는 상대 캐릭터에 입힌 피해
    SkillDurationint사용한 스킬의 지속 시간
    SkillNamestring사용한 스킬 이름
    SkillTypestring사용한 스킬의 공력 형식(물리, 마법, 치유)
    Return (호출 결과)
    void반환 값 없음
    // AddSkillInfos를 통해 추가했던 사용 스킬 내역 조회
    public List<SkillInfo> GetSkillInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    SkillInfosList<SkillInfo>목록에 저장된 사용한 스킬 정보
    // ItemInfo의 내용 초기화
    public void ClearItemInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    void반환 값 없음
    // List<ItemInfo>에 콘텐츠 수행 시 사용한 아이템 내역을 하나씩 추가
    public void AddItemInfos(string PartnerID, int ItemAmount, int ItemDuration, string ItemName)
    
    Parameter NameData Type설명
    PartnerIDstring아이템을 사용한 파트너의 아이디
    ItemAmountint사용한 아이템 개수
    ItemDurationint사용한 아이템의 지속 시간
    ItemNamestring사용한 아이템 이름
    Return (호출 결과)
    -void반환 값 없음
    // AddItemInfos를 통해 추가했 사용 스킬 내역 조회
    public List<ItemInfo> GetItemInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    List<ItemInfo>목록에 저장된 사용 아이템 정보
    // List<EnemyInfo>의 내용 초기화
    public void ClearEnemyInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    void반환 값 없음
    // List<EnemyInfo>에 콘텐츠 수행 시 제거한 게임 자원(몬스터, 펫, PVP의 상대 캐릭터, 보스 몬스터) 내역을 하나씩 추가
    public void AddEnemyInfos(string PartnerID, int EnemyAttack,int EnemyDefense,string EnemyID,int EnemyLevel,int EnemyStamina)
    
    Parameter NameData Type설명
    PartnerIDstring적을 제거한 파트너의 아이디
    EnemyAttackint제거한 캐릭터 / 사용자 공격력 INT
    공격력이 없는 경우 0
    EnemyDefenseint제거한 몬스터 / 캐릭터 방어력
    방어력이 없는 경우 0
    EnemyIDstring제거한 캐릭터 아이디(PVP, PVMP) 또는 몬스터 아이디
    EnemyLevelint제거한 캐릭터 / 사용자 레벨 INT
    레벨이 없는 경우 0
    EnemyStaminaint제거한 몬스터 / 캐릭터 체력
    체력이 없는 경우 0
    Return (호출 결과)
    void반환 값 없음
    // AddEnemyInfos를 통해 저장한 대전 상대 정보 반환
    public List<EnemyInfo> GetEnemyInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    List<EnemyInfo>목록에 저장된 대전 상대 정보
    // 게임 안에서 사용자의 게임 콘텐츠 수행 로그 전송
    public void ContentActInfos(StageType ContentActStageType, string StageName, AutoType IsAuto, string StageGrade, string StageResultGrade, int StagePlayTime, ResultType StageResult, IEnumerable<PartnersInfo> StagePartnersInfo, int RemainHP, int RemainMP, IEnumerable<WearItemInfo> WearItemInfo, IEnumerable<SkillInfo> UseSkillInfo, IEnumerable<ItemInfo> UseItemInfo, int EnemyKill, IEnumerable<EnemyInfo> EnemyKillInfo)
    
    Parameter NameData Type설명
    StageTypeStageType접속 기준 설정(게임 또는 콘텐츠)
    - 집계를 위한 필수 항목
    StageNameString수행한 콘텐츠 이름
    -StageName은 난이도를 포함한 스테이지의 고유한 이름으로 적재
    - StageType이나 StageGrade가 다르더라도 콘텐츠 이름을 반드시 고유하게 지정해야 정확한 분석 가능
    - 예시: 스테이지명_난이도, Stage1_2, HardStage2_4
    - 집계를 위한 필수 항목
    IsAutoAutoType게임 콘텐츠를 수행 방법
    StageGradeString게임 콘텐츠 시작 전 예상 등급
    - 스테이지 시작 전에 게임이 판단하는 스테이지의 등급
    - 집계를 위한 필수 항목
    StageResultGradeString게임 콘텐츠 완료 후 결과 등급
    - 스테이지 성공 시 성공 등급 단계 입력
    - 예: StageResult(SUCCESS) – '별 3개 등급'

    - 스테이지 실패 시 실패 사유 입력
    - 예: StageResult(FAIL) – '물약 부족 사망'

    - 텍스트 기준으로 그룹핑되기 때문에 표준화된 명칭을 사용 필요
    - 집계를 위한 필수 항목
    StagePlayTimeint게임 콘텐츠 수행 시간(단위 초)
    - 집계를 위한 필수 항목
    StageResultResultType게임 콘텐츠 완료 후 결과
    -집계를 위한 필수 항목
    StagePartnersInfoList<partnersinfo>콘텐츠 수행 시 함께 수행한(도움을 주는) 게임 파트너의 정보
    RemainHPint게임 콘텐츠 완료 후 잔여 HP
    RemainMPint게임 콘텐츠 완료 후 잔여 MP
    WearItemInfoList<WearItemInfo>게임 콘텐츠 시 착용(장착)한 아이템 정보
    UseSkillInfoList<SkillInfo>게임 콘텐츠 수행 시 사용한 캐릭터 스킬 정보
    UseItemInfoList<ItemInfo>게임 콘텐츠 수행 시 사용한 아이템 정보
    EnemyKillint게임 콘텐츠 수행 중 제거한 게임 자원(몬스터, 펫, PVP의 상대 캐릭터, 보스 몬스터)의 수
    EnemyKillInfoList<EnemyInfo<게임 콘텐츠 수행 중 제거한 게임 자원(몬스터, 펫, PVP의 상대 캐릭터, 보스 몬스터)의 정보
    Return(호출 결과)
    string인터넷 리소스 응답 반환

    샘플 소스

    • 스테이지 수행 로그
    // 객체 초기화
    StorageCoreManager scManager = StorageCoreManager.GetInstance(); 
    
    // 파트너 정보 초기화 
    scManager.ClearPartnersInfo(); 
    // 파트너 추가 1 
    scManager.AddPartnersInfo("1000", "2",100,"1001",10,50, PartnerType.ETC); 
    // 파트너 추가 2 
    scManager.AddPartnersInfo("1001", "3", 105, "1002", 11, 55, PartnerType.ETC); 
    
    // 착용 장비 추가를 위한 초기화 
    scManager.ClearWearItemInfos(); 
    // 착용 장비 추가 1 
    scManager.AddWearItemInfos(“PartnerID”, "1","1","1","A",1,"Helmet"); 
    // 착용 장비 추가 2 
    scManager.AddWearItemInfos(“PartnerID”, "2", "1","1", "B", 1, "Shield"); 
    
    // 사용한 스킬 추가를 위한 초기화 
    scManager.ClearSkillInfos(); 
    // 스테이지에서 사용한 스킬 추가1 
    scManager.AddSkillInfos(“PartnerID”, 100, 10,"Fire Ball","Magic"); 
    // 스테이지에서 사용한 스킬 추가2 
    scManager.AddSkillInfos(“PartnerID”, 50, 5, "ICE Ball", "Magic"); 
    
    // 스테이지에서 사용한 아이템 정보 추가를 위한 초기화 
    scManager.ClearItemInfos(); 
    // 스테이지에서 사용한 아이템 추가1 
    scManager.AddItemInfos(“PartnerID”, 10,4,"Potion"); 
    // 스테이지에서 사용한 아이템 추가2 
    scManager.AddItemInfos(“PartnerID”, 1, 5, "Mana Potion"); 
    
    // 스테이지에서 제거한 몬스터 또는 캐릭터 정보 추가를 위한 초기화 
    scManager.ClearEnemyInfos(); 
    // 스테이지에서 제거한 몬스터 또는 캐릭터 정보 추가 1 
    scManager.AddEnemyInfos(“PartnerID”, 40, 10, "1001", 2, 10); 
    // 스테이지에서 제거한 몬스터 또는 캐릭터 정보 추가 2 
    scManager.AddEnemyInfos(“PartnerID”, 50, 20, "1002", 3, 20); 
    
    // 콘텐츠 수행 로그 전송 
    scManager.GetApi().ContentActInfos(StageType.STAGE, "StageName01",  AutoType.AUTO, "StageGrade", "StageResultGrade", 100, ResultType.SUCCESS, scManager.GetPartnersInfo(), 100, 100, scManager.GetWearItemInfos(),  scManager.GetSkillInfos(), scManager.GetItemInfos(), 10,  scManager.GetEnemyInfos());
    

    ResourceChangeInfos

    게임에서 사용되는 다양한 리소스들의 정성적인(능력치) 변화 로그를 전송하고 게임 리소스 밸런스를 분석

    API 호출 시점

    호출 시점필수 여부영향 지표
    계정
    - 계정의 성장(레벨업, 등급업)으로 계정의 정성적인 변화 발생 시 로그 전송
    Y- 강화 시도/성공/실패 횟수
    - 레벨별 정체 시간
    - 실시간 아이템 강화
    - 인게임 아이템 강화 분석
    캐릭터
    - 계정의 성장(레벨업, 등급업)으로 계정의 정성적인 변화 발생 시 로그 전송
    Y
    아이템 / 펫 (무기, 방어구, 장신구, 보석, 스킬)
    - 계정의 성장(레벨업, 등급업)으로 계정의 정성적인 변화 발생 시 로그 전송
    Y
    계정 또는 캐릭터가 아이템 / 펫 등의 자원을 착용 또는 해제 시 로그 전송Y
    참고
    • 게임 안에서 정성적인(능력치) 변화가 일어나는 모든 게임 리소스(자원, 계정, 아이템, 캐릭터, 펫 등)에 대해서 추적할 수 있습니다.
    • 게임 리소스 변화 성공/실패에 대한 확률을 분석할 수 있습니다.
    • 게임 리소스 변화를 활용하는 유저의 분석이 가능하고 추가적인 로그 검색을 통해서 아이템 능력치에 따른 콘텐츠 난이도를 조절할 수 있습니다.

    Enumerations 콘텐츠

    • ObjectType
      변화의 주체를 지정
      예: 펫 강화, 무기 변화, 무기 소켓 변화, 의류 강화, 드론 강화
    NameValue설명
    ACCOUNT0계정 변화
    CHAR1캐릭터 변화
    CARD2카드 변화
    ITEM3아이템 변화
    PET4펫 변화
    • ChangeStateType
      계정, 캐릭터, 카드 및 게임 주체의 정성적 변화를 구분 지정
    NameValue설명
    GRADE0등급 업
    LEVEL1레벨 업
    COMPOSE2합성
    TRANSCENDENCE3초월
    ENHANCING4특성 강화
    DISASSEMBLE5분해
    OPTION6옵션 변경
    NUMBERS7수치 변경
    SKILL8스킬 변경
    ETC9기타 변경
    INSTALL10장비 장착
    • ResultType
      계정, 캐릭터, 카드 및 게임 주체의 정성적 변화 작업의 성공 여부를 지정
    NameValue설명
    TRY0시도(필수 아님)
    SUCCESS1성공
    FAIL2실패
    NON3성공/실패가 없는 경우는 ‘NON’

    Method 설명

    다양한 리소스들의 정성적인(능력치) 변화 로그를 전송

    public void ResourceChangeInfos(ObjectType ChangeObjectType, string UniqueCode, long SeqCode, string Name, string TargetUniqueCode, string TargetSeqCode, string TargetName, ChangeActType ResourceChangeStateType, string BeforeLevel, string AfterLevel, string BeforeLevelDesc, string AfterLevelDesc, ResultType ChangeResultType, string MoneyCode, string MoneyName, int MoneyAmount)
    
    Parameter NameData Type설명
    ChangeObjectTypeObjectType계정, 캐릭터, 펫 등 변화된 리소스 객체 구분
    - 집계를 위한 필수 항목
    UniqueCodestring변화된 리소스의 고유 코드
    - 집계를 위한 필수 항목
    SeqCodelong변화된 리소스의 일련번호
    Namestring변화된 리소스의 이름
    - 집계를 위한 필수 항목
    TargetUniqueCodestring장비 또는 스킬 등을 착용하는 대상 캐릭터/아이템 고유번호
    TargetSeqCodestring장비 또는 스킬 등을 착용하는 대상 캐릭터/아이템 일련번호
    TargetNamestring장비 또는 스킬 등을 착용하는 대상 캐릭터/아이템 이름
    ResourceChangeStateTypeChangeActType옵션 변경, 레벨 업, 강화 등 변화된 리소스의 변화 형식 구분
    - 집계를 위한 필수 항목
    BeforeLevelstring변화 전의 등급 또는 레벨 또는 옵션값은 수치화 해야 함
    - 예: A,B,C,D,E / 1,2,3,4,5,6 일반,고급,희귀,영웅,고대,전설,불멸 / 화이트, 그린, 블루, 퍼블, 옐로우, 오렌지, 레드
    AfterLevelstring변화 후의 등급 또는 레벨 또는 옵션값은 수치화해야 함
    - 예: A,B,C,D,E / 1,2,3,4,5,6 일반,고급,희귀,영웅,고대,전설,불멸 / 화이트, 그린, 블루, 퍼블, 옐로우, 오렌지, 레드
    BeforeLevelDescstring변화 전의 등급 또는 레벨 또는 옵션의 상세 값 기술
    AfterLevelDescstring변화 후의 등급 또는 레벨 또는 옵션의 상세 값 기술
    ChangeResultTypeResultType게임 리소스의 변화 결과
    - 집계를 위한 필수 항목
    MoneyCodestring게임 머니 코드
    MoneyNamestring게임 머니 이름
    게임 내에서 동일해야 함
    MoneyAmountint획득 비용
    Return (호출 결과)
    string로그를 저장한 후의 결과 값

    샘플 소스

    //{UniqueCode} 아이템을 레벨업하고, 레벨업의 결과는 성공일 때 
    
    //게임 리소스의 정성적 변화 로그 전송
    StorageCoreManager.GetInstance().GetApi().ResourceChangeInfos(ObjectType.ITEM, "{UniqueCode}", 2, "Name", “TargetUniqueCode”, “TargetSeqCode”, “TargetName”, ChangeStateType.LEVEL, "1", "2", "{BeforeLevelDesc}", "{AfterLevelDesc}", ResultType.SUCCESS, “MoneyCode”, “MoneyName”, 100);
    

    VMoneyChangeInfos

    게임 안에서 획득/소비하는 모든 재화 로그를 전송하고 현금성/비현금성 재화의 흐름을 분석

    API 호출 시점

    호출 시점필수 여부영향 지표
    게임 안에서 다양한 행위를 통해 게임 머니 획득 시 로그 전송Y- 게임 재화 획득/소비량
    - 게임 재화 획득/소비 캐릭터 수
    - 실시간 재화 획득/소비
    - 아이템별 재화 수입/지출 분석
    - 게임 재화 요약
    - 게임 재화 분석
    게임 안에서 다양한 행위를 통해 게임 머니 소비 시 로그 전송Y
    게임 안에서 무통장입금/신용카드/상품권 등으로 현금성 재화 획득 시 로그 전송Y
    게임 안에서 업적 달성을 통해 명예 포인트 획득 시 로그 전송Y
    게임 안에서 콘텐츠 진행을 위한 다양한 형태의 스테미너 소비 시 로그 전송Y
    게임 안에서 가입된 길드에 기부하고 길드 포인트 획득 시 로그 전송Y
    게임 안에서 다양한 거래소를 통해 재화 획득 시 로그 전송Y
    게임 안에서 다양한 거래소 통해 재화 소비 시 로그 전Y
    주의
    • 아이템에 의한 재화 수입/지출 로그 발생 시 해당 아이템의 ItemCode와 ItemName 정보를 ContentCode와 ContentName에 기입해야 합니다.
    • 아이템에 의한 로그가 아닐 때는 ContentCode와 ContentName에 NULL로 기입해야 합니다.
    참고
    • 게임 머니는 인게임에서 화폐의 가치로 사용되는 모든 재화를 지칭합니다. 단, 현금은 인게임 머니가 아닙니다.
    • 게임 머니의 예시
      • 현금/신용카드/상품권으로 구매한 다이아몬드 : 현금성재화
      • 골드 획득/소비 : 비현금성 재화
      • 명예 포인트 획득/소비 : 비현금성 재화
      • 도전 포인트 획득/소비 : 비현금성 재화
      • 길드 포인트 획득/소비 : 비현금성 재화
      • 게임을 진행하는 스테미너 획득/소비 : 비현금성 재화

    Enumerations 콘텐츠

    • MoneyChangeType
      게임 재화의 획득/소비 경로를 지정
    NameValue설명
    MoneyChangeType.CASH0현금으로 게임 머니 구매
    MoneyChangeType.VRCASH1게임 머니를 통한 구매
    MoneyChangeType.COUPON2쿠폰을 통한 획득
    MoneyChangeType.EVENTREWARD3출석 보상 등 이벤트를 통한 획득
    MoneyChangeType.QUESTREWARD4퀘스트 보상을 통한 획득
    MoneyChangeType.MISSIONREWARD5미션 보상을 통한 획득
    MoneyChangeType.NORMALREWARD6일반 보상을 통한 획득
    MoneyChangeType.POST7우편을 통한 획득
    MoneyChangeType.GUILDSUPPORT8길드 지원을 통한 획득/소비(길드를 지원하고 개인이 지원받음)
    MoneyChangeType.GUILDCREATE9
    MoneyChangeType.GACHA10가챠 아이템을 통한 획득
    MoneyChangeType.BUY11상점을 통한 구입/판매/재구입(인게임 상점)
    MoneyChangeType.COLLECT12토글을 통한 획득(몬스터 사냥 후 드롭된 아이템 직접 토글, PK로 적 캐릭터의 드롭된 아이템 토글 등)
    MoneyChangeType.SNSSUPPORT13sns를 통한 획득/소비
    MoneyChangeType.ITEMENCHABT14아이템 강화 통한 소비
    MoneyChangeType.CHARNCHABT15캐릭터 강화 통한 소비
    MoneyChangeType.DISMANTLE16아이템/캐릭터 분해를 통한 획득/소비
    MoneyChangeType.MAKE17아이템 / 캐릭터 제작, 합성을 통한 획득/소비
    MoneyChangeType.STAGEACTION18스테이지 수행을 통한 획득/소비
    MoneyChangeType.PVPACTION191 vs 1 mode를 통한 획득/소비
    MoneyChangeType.PVEACTION20레이드 등을 통한 획득/소비
    MoneyChangeType.PVMPACTION211 vs n mode (여러 명의 유저와 대전)
    MoneyChangeType.GUILDACTION22길드 전쟁에서 획득/소비
    MoneyChangeType.EVENTSTAGEACTION23이벤트 스테이지에서 소비
    MoneyChangeType.UPGRADE24아이템/캐릭터 등 게임 자원의 업그레이드 및 속성 변경을 통한 획득/소비
    MoneyChangeType.DELETE25아이템 파괴/삭제(직접 파괴)
    MoneyChangeType.ITEMDROP26아이템 드롭으로 인한 소비/획득(직접, PK, 몬스터에 의한 사망 등)
    MoneyChangeType.DEAL27캐릭터 간 거래, 위탁 거래소, 중개소, 개인 상점을 통한 획득/소비
    MoneyChangeType.REPAIR28수리 비용
    MoneyChangeType.EXTEND29인벤토리/창고 확장 비용
    MoneyChangeType.MOVEMENT30이동 비용
    MoneyChangeType.USERSUPPORT31유저에 지원 또는 지원 받은 비용
    MoneyChangeType.INIT32초기 생성(캐릭터 초기 생성 시 받은 비용)
    MoneyChangeType.ETC33기타 변화 사유 시 선택
    기타 선택 시 Method 설명의 ChangeName을 반드시 입력
    • FlowType
      게임 머니 변화의 구분 값을 지정
    NameValue설명
    IN0획득
    OUT1소비
    • Money Type
      게임 재화의 현금성/비현금성 재화 구분을 지정
    NameValue설명
    MoneyType.GOLD0비현금성 재화
    MoneyType.CASH1현금성 재화(캐시, 다이아몬드)
    MoneyType.STAMINA2포인트 획득(스테미너, 코인, 쿠키)
    MoneyType.MILEAGE3결제 시 누적되는 보너스 화폐(마일리지)
    MoneyType.EXP4경험치 획득

    Method 설명

    // VMoneyChangeInfo의 내용 초기화
    public void ClearVMoneyChangeInfoList()
    
    Parameter NameData Type설명
    Return (호출 결과)
    void반환 값 없음
    // List<VMoneyChangeInfo>에 재화의 사용 내역을 하나씩 추가
    public void AddVMoneyChangeInfoList(FlowType MoneyFlowType, string MoneyName, MoneyChangeType MoneyChangeType, string MoneyChangeDetail, string ContentName, string ContentCode, MoneyType MoneyType, long Amount, long HoldAmount, string MoneyChangeName = “”)
    
    Parameter NameData Type설명
    MoneyFlowTypeFlowType게임 머니의 흐름 유형
    - 집계를 위한 필수 항목
    MoneyNamestring게임 머니 이름
    - 집계를 위한 필수 항목
    MoneyChangeTypeMoneyChangeType게임 머니 변화 구분
    - 집계를 위한 필수 항목
    MoneyChangeDetailstring게임 머니 변화 상세
    ContentNamestring게임 머니 변화 콘텐츠 이름
    - 집계를 위한 필수 항목
    - 아이템에 의한 재화 로그 발생 시 해당 아이템의 ItemName 정보를 적재
    - 아이템에 의한 로그가 아닐 때는 NULL
    ContentCodestring게임 머니 변화 콘텐츠 코드
    - 집계를 위한 필수 항목
    - 아이템에 의한 재화 로그 발생 시 해당 아이템의 ItemCode 정보를 적재
    - 아이템에 의한 로그가 아닐 때는 NULL
    MoneyTypeMoneyType게임 머니 종류
    Amountstring변화된 게임 머니의 금액
    - 집계를 위한 필수 항목
    HoldAmountlong변화된 후 게임 머니의 총액
    MoneyChangeNamestringMoneyChangeType.ETC 선택 시 사유명 입력
    - ETC 선택 시 필수 입력 항목
    - string이 같은 값끼리 매칭되어 분석 정보 제공
    Return (호출 결과)
    반환 값 없음
    // AddVMoneyChangeInfoList를 통해 추가했던 재화의 획득/소비 내역 조회
    public List<VMoneyChangeInfo> GetVMoneyChangeInfoList()
    
    Parameter NameData Type설명
    Return (호출 결과)
    VMoneyChangeInfoListList<VMoneyChangeInfo>재화 변경내역 리스트
    // 게임 안에서 획득/소비하는 모든 재화 로그 전송
    public void VMoneyChangeInfos(IEnumerable<VMoneyChangeInfo> VMoneyChangeInfoList)
    
    Parameter NameData Type설명
    VMoneyChangeInfoListList<VMoneyChangeInfo>재화 변경내역 리스트
    Return (호출 결과)
    -void반환 값 없음

    샘플 소스

    // {MoneyName}의 게임 머니를 토글을 통해 획득한 경우 
    StorageCoreManager scManager = StorageCoreManager.GetInstance(); 
    
    //재화 변경내역 목록 초기화 
    scManager.ClearVMoneyChangeInfoList(); 
    
    //재화 변경내역 추가 
    //경험치 획득
    scManager.AddVMoneyChangeInfoList(FlowType.IN, "MoneyName", MoneyChangeType.INIT,"MoneyChangeDetail1", "ContentName", "ContentCode", MoneyType.EXP, 1000, 50000); 
    
    //경험치 획득
    scManager.AddVMoneyChangeInfoList(FlowType.IN, "MoneyName", MoneyChangeType.DEAL,"MoneyChangeDetail2", "ContentName", "ContentCode", MoneyType.EXP, 2000, 40000); 
    
    //비현금성 재화 "빨간보석"을 분해를 통해서 획득
    scManager.AddVMoneyChangeInfoList(FlowType.IN, "MoneyName", MoneyChangeType.DISMANTLE,"MoneyChangeDetail3", "빨간보석", "CD0002", MoneyType.GOLD, 3000, 30000); 
    
    //길드 전쟁 참여 시 "신발"이라는 스테미나를 사용
    scManager.AddVMoneyChangeInfoList(FlowType.OUT, "MoneyName", MoneyChangeType.GUILDACTION, "MoneyChangeDetail4", "신발", "CD0003", MoneyType.STAMINA, 4000, 20000); 
    
    //현금 구매를 통해서 다이아몬드를 획득
    scManager.AddVMoneyChangeInfoList(FlowType.IN, "MoneyName", MoneyChangeType.CASH, "MoneyChangeDetail5", "다이아몬드", "ContentCode", MoneyType.CASH, 5000, 10000, "MoneyChangeName"); 
    
    //재화 변경 내역 전송 
    StorageCoreManager.GetInstance().GetApi().VMoneyChangeInfos(scManager.GetVMoneyChangeInfoList());
    

    ItemChangeInfos

    게임 안에서 사용자의 게임 아이템 획득/소비(수량의 변화) 로그를 전송하고 아이템의 흐름을 분석

    API 호출 시점

    호출 시점필수 여부영향 지표
    게임 안에서 아이템 획득 시 로그 전송Y- 아이템 획득/소비량
    - 아이템 획득/소비 캐릭터 수
    - 실시간 아이템 획득/소비
    - 미션 분석
    - 획득 아이템
    - 인게임아이템 요약
    - 인게임아이템 분석
    게임 안에서 아이템 소비 시 로그 전송Y
    주의
    주의
    • 인게임 아이템은 유료아이템이 아닙니다. 유료 아이템 구매 로그는 BuyInfos 전송해야 합니다.
    • 구매를 통해서 획득한 재화만 ItemChangeInfos로 전송합니다.
    참고
    • 현금 패키지 아이템을 구매하거나 현금으로 무기, 장신구, 인 게임 머니를 구매하는 경우 Buy Log에 구매 로그를 저장해야 합니다.
    • 가챠지표(ItemChangeType = GACHA) 10연 뽑기의 경우라도 1건의 획득 데이터만 들어가야 합니다.
      • 10개의 아이템 정보는 ItemsInfos에 10건으로 적재합니다.
      • 10연 뽑기와 1회 뽑기는 ContentCode 와 ContentName로 각각 분리되어야 합니다.
      • 10연 뽑기의 경우 획득 비용(MoneyAmount)이 10 분할로 저장되어야 합니다.
      • 총비용이 10000 골드라면 각 아이템 획득당 1000 골드씩 저장되어야 합니다.
    • 아이템에 의한 재화 수입/지출 로그 발생 시 해당 아이템의 ItemCode와 ItemName 정보를 ContentCode와 ContentName에 기입해야 합니다.
    • (ItemChangeType = STAGEACTION, PVPACTION, PVEACTION, PVMPACTION, GUILDACTION, EVENTSTAGEACTION) ContentCode와 ContentName에 스테이지의 고유한 이름이 적재되어야 합니다.
    • StageName 정보가 ContentActInfos.StageName과 동일해야하며, StageType이나 StageGrade가 다르더라도 StageName을 반드시 고유하게 지정해야 올바른 집계가 나올 수 있습니다.
    • 여러 캐릭터를 뽑기나 퀘스트를 통해 수집하는 게임의 경우 캐릭터의 강화도 아이템 변화 로그로 적재해야 올바른 집계가 나올 수 있습니다.

    Enumerations 콘텐츠

    • ChangeType
      아이템이 양적으로 변화된 사유를 지정
    NameValue설명
    ChangeType.CASH0현금으로 게임 머니 구매
    ChangeType.VRCASH1게임 머니를 통한 구매
    ChangeType.COUPON2쿠폰을 통한 획득
    ChangeType.EVENTREWARD3출석 보상 등 다양한 이벤트를 통한 획득
    ChangeType.QUESTREWARD4퀘스트 보상을 통한 획득
    ChangeType.MISSIONREWARD5미션 보상을 통한 획득
    ChangeType.NORMALREWARD6일반 보상을 통한 획득
    ChangeType.POST7우편을 통한 획득
    ChangeType.GUILDSUPPORT8길드 지원을 통한 획득/소비(길드를 지원하고 개인이 지원받음)
    ChangeType.GACHA9가챠 아이템을 통한 획득
    ChangeType.BUY10상점을 통한 구입/판매/재구입(인게임 상점)
    ChangeType.COLLECT11토글을 통한 획득 (몬스터 사냥 후 드롭된 아이템 직접 토글, PK로 적캐릭터의 드롭된 아이템 토글 등)
    ChangeType.SNSSUPPORT12sns를 통한 획득/소비
    ChangeType.ENCHABT13강화를 통한 소비
    ChangeType.DISMANTLE14아이템/캐릭터 분해를 통한 획득/소비
    ChangeType.MAKE15아이템 / 캐릭터 제작, 합성을 통한 획득/소비
    ChangeType.STAGEACTION16스테이지 수행을 통한 획득/소비
    ChangeType.PVPACTION171 vs 1 mode를 통한 획득/소비
    ChangeType.PVEACTION18레이드 등을 통한 획득/소비
    ChangeType.PVMPACTION191 vs n mode(여러 명의 유저와 대전)
    ChangeType.GUILDACTION20길드 전쟁에서 획득/소비
    ChangeType.EVENTSTAGEACTION21이벤트 스테이지에서 소비
    ChangeType.UPGRADE22아이템/캐릭터 등 게임 자원의 업그레이드 및 속성 변경을 통한 획득/소비
    ChangeType.DELETE23아이템 파괴/삭제(직접 파괴)
    ChangeType.ITEMDROP24아이템 드롭으로 인한 소비/획득(직접, PK, 몬스터에 의한 사망 등)
    ChangeType.DEAL25캐릭터 간 거래, 위탁 거래소, 중개소, 개인상점을 통한 획득/소비
    ChangeType.INIT26초기 생성 정보(캐릭터 초기 생성 정보 및 생성 시 받는 아이템 정보)
    - 집계를 위한 필수 항목
    ChangeType.ETC27기타 변경 시 선택
    기타 선택 시 Method 설명의 ChangeName을 반드시 입력
    • FlowType
      아이템 양적 변화의 구분 값을 지정
    NameValue설명
    IN0획득
    OUT1소비

    Param 데이터 클래스

    • ItemsInfo
      획득한 아이템 각 정보를 저장
      여러 가지의 아이템을 획을/소비했을 경우 하나씩 모두 추가
    Data MemberDataType설명
    ItemUniqueCodestring아이템 고유 코드
    ItemNamestring아이템 이름
    ItemGradestring아이템 등급
    ItemLevelint아이템 레벨
    ItemAmountint아이템 개수
    ItemImputeTypebyte아이템 귀속 여부
    MoneyCodestring게임 머니 코드
    MoneyNamestring게임 머니명
    게임 내에서 같아야 함
    MoneyAmountint획득 비용

    Method 설명

    // List<ItemChangeInfo>의 내용 초기화
    
    public void ClearItemChangeInfoList()
    
    Parameter NameData Type설명
    Return (호출 결과)
    void반환 값 없음
    // List<ItemChangeInfo>에 여러 경로를 통한 아이템 수량 변화를 하나씩 추가
    public void AddItemChangeInfoList(FlowType ItemFlowType, ChangeType ItemChangeType, string ChangeDetail, string ContentName, string ContentCode, IEnumerable<ItemsInfo> ItemsInfo, string ChangeName = "")
    
    Parameter NameData Type설명
    ItemFlowTypeFlowType게임 아이템 흐름의 구분
    - 집계를 위한 필수 항목
    ItemChangeTypeChangeType게임 아이템 변화 구분
    - 집계를 위한 필수 항목
    ChangeDetailstring게임 아이템 변화 상세 정보
    ContentNamestring게임 아이템 변화 콘텐츠 이름
    - 집계를 위한 필수 항목
    - ItemChangeType(GACHA)의 경우 뽑기 콘텐츠 이름(10연 뽑기와 1회 뽑기 분리)
    - StageName 정보가 있는 콘텐츠의 경우 ContentActInfos.StageName과 동일한 정보를 적재
    ContentCodestring게임 아이템 변화 콘텐츠 코드
    - 집계를 위한 필수 항목
    - ItemChangeType(GACHA)의 경우 뽑기 콘텐츠 코드(10연 뽑기와 1회 뽑기 분리)
    - StageName 정보가 있는 콘텐츠의 경우 ContentActInfos.StageName과 동일한 정보를 적재
    ItemsInfoList게임 아이템 획득/소비 상세 내용
    - 집계를 위한 필수 항목
    ChangeNamestringChangeType.ETC 선택 시 사유명 입력
    - ETC 선택 시 필수 입력 항목
    - 열거형 값 중에 필요한 값이 없는 경우 텍스트로 입력
    - 같은 텍스트로 그룹화 분석되어 화면에 표시되는 동일 성격의 아이템은 같은 텍스트를 입력
    Return (호출 결과)
    void반환 값 없음
    // AddItemChangeInfoList를 통해서 추가한 아이템 수량 변화 내역 조회
    public List<ItemChangeInfo> GetItemChangeInfoList()
    
    Parameter NameData Type설명
    Return (호출 결과)
    ItemChangeInfoListList<ItemChangeInfo>목록에 저장된 아이템 수량 변화 내역
    // List<ItemChangeInfo>의 내용 초기화
    public void ClearItemChangeInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    void반환 값 없음
    // List<ItemsInfo>에 아이템 수량 변화 내용을 추가
    // 한 번의 행위로 여러 개의 아이템 획득/소비 시 아이템에 대한 정보
    public void AddItemChangeInfos(int ItemAmount,string ItemGrade, byte ItemImputeType,int ItemLevel,string ItemName,string ItemUniqueCode, string MoneyCode, string MoneyName, int MoneyAmount)
    
    Parameter NameData Type설명
    ItemAmountint아이템 개수
    - 집계를 위한 필수 항목
    ItemGradestring아이템 등급
    - 집계를 위한 필수 항목
    ItemImputeTypebyte아이템 귀속 여부
    ItemLevelint아이템 레벨
    ItemNamestring아이템 이름
    - 집계를 위한 필수 항목
    ItemUniqueCodestring아이템 고유 코드
    - 집계를 위한 필수 항목
    MoneyCodestring게임 머니 코드
    MoneyNamestring게임 머니명
    - 게임 내에서 동일해야 함
    - 집계를 위한 필수 항목
    MoneyAmountint획득 비용
    - 집계를 위한 필수 항목
    Return (호출 결과)
    void반환 값 없음
    // AddItemChangeInfos를 통해 추가했던 아이템 수량 변화 내역 조회
    public List<ItemsInfo> GetItemChangeInfos()
    
    Parameter NameData Type설명
    Return (호출 결과)
    ItemsInfosList<ItemsInfo>목록에 저장된 상세 아이템 정보
    // 아이템 수량 변화 로그 전송
    public void ItemChangeInfos(IEnumerable<ItemChangeInfo> ItemChangeInfoList)
    
    Parameter NameData Type설명
    ItemChangeInfoListList<ItemChangeInfo>아이템 변경 내역 리스트
    Return (호출 결과)
    void반환 값 없음

    샘플 소스

    //{MoneyName}의 게임 머니를 토글을 통해 획득한 경우 
    StorageCoreManager scManager = StorageCoreManager.GetInstance(); 
    
    //획득한 아이템을 목록에 추가하기 위한 목록 초기화 
    scManager.ClearItemChangeInfos (); 
    
    //획득한 아이템 추가 ***************************************************************************************************************************
    //콘텐츠에서 "zombie_A"개 제거 후 아이템 3개 획득 - List<ItemsInfo>에 아이템 추가
    scManager.AddItemChangeInfos (1, "B", 1, 1, "legend Sword", "1001", "M100100", "Ruby", 100); 
    scManager.AddItemChangeInfos (2, "C", 1, 1, "Iron Shield ", "1002", "M100200", "Gold", 100); 
    scManager.AddItemChangeInfos (5, "D", 1, 1, "Iron Shield ", "1007", "M100200", "Gold", 100);
    
    //List<ItemChangeInfo>에 아이템 로그셋에 획득한 아이템을 추가하여 아이템 로그셋 추가
    scManager.AddItemChangeInfoList(FlowType.IN, ChangeType.STAGEACTION, "zombie_A 제거", "zombie_A", "Cts0100100", scManager.GetItemChangeInfos());
    //획득/소비한 아이템 추가  ***************************************************************************************************************************
    
    //획득/소비한 아이템 추가 ***************************************************************************************************************************
    //콘텐츠에서 "zombie_KING"개 제거 후 아이템 2개 획득 - List<ItemsInfo>에 아이템 추가 
    scManager.AddItemChangeInfos (1, "B", 1, 1, "legend Sword", "1001", "M100100", "Ruby", 100);  
    scManager.AddItemChangeInfos (2, "C", 1, 1, "Iron Shield", "1002", "M100200", "Gold", 100);  
    
    //List<ItemChangeInfo>에 아이템 로그셋에 획득한 아이템을 추가하여 아이템 로그셋 추가
    scManager.AddItemChangeInfoList(FlowType.IN, ChangeType.STAGEACTION, "zombie_KING 제거", "zombie_A", "Cts0100100", scManager.GetItemChangeInfos());
    
    //콘텐츠에서 "zombie_KING"개 제거 후 하나의 물약 10개 소비 - List<ItemsInfo>에 아이템 추가
    scManager.AddItemChangeInfos (10, "C", 1, 1, "Commu_Potion", "HP5011", "M100200", "Gold", 100);
    
    //List<ItemChangeInfo>에 아이템 로그셋에 획득한 아이템을 추가하여 아이템 로그셋 추가
    scManager.AddItemChangeInfoList(FlowType.OUT, ChangeType.STAGEACTION, "zombie_KING 제거", "zombie_KING", "Cts0100100", scManager.GetItemChangeInfos());
    
    //획득/소비한 아이템을 추가  ***************************************************************************************************************************
    
    //아이템 수량 변화 로그 전송
    StorageCoreManager.GetInstance ().GetApi ().ItemChangeInfos (scManager.GetItemChangeInfoList());
    

    ConnectInfos

    로그인/로그아웃 로그를 전송하고 게임 유저 접속 현황을 분석
    게임 안의 콘텐츠(스테이지, 던전, PVP, 상점 등)에 입장/퇴장 로그를 전송하고 콘텐츠 활용도를 분석

    API 호출 시점

    호출 시점필수 여부영향 지표
    사용자가 게임 로그인한 직후 로그 전송
    - ConnectType은 APP으로 전송
    - FlowType은 IN으로 전송
    Y- AU
    - Retention / Revisit(재방문 D+n) / Churn(이탈 D+n) / Return(복귀 D+n)
    - TS
    - ARPU
    - 로그인 횟수
    - 마지막 로그인
    - 레벨 분포 요약
    - 레벨 분포 분석
    사용자가 게임 로그아웃한 직후 로그 전송
    - ConnectType은 APP으로 전송
    - FlowType은 OUT으로 전송
    Y
    사용자가 게임 콘텐츠에 입장한 직후 로그
    - ConnectType은 CONTENT으로 전송
    - FlowType은 IN으로 전송
    Y- MTS
    - 레벨 분포 분석
    사용자가 게임 콘텐츠에서 퇴장한 직후 로그 전송
    - ConnectType은 CONTENT으로 전송
    - FlowType은 OUT으로 전송
    Y
    주의

    분석에 필요한 기본 정보이므로 로그를 전송해야 대부분의 지표를 확인할 수 있습니다.

    참고
    • 콘텐츠 정의
      • 단순 접속 상태가 아닌 콘텐츠 요소가 있는 모든 항목을 지칭
      • RPG – 던전(요일, 레이드 등), PvP, 퀘스트, 길드 관리 등
      • SNG – 마을 관리, 소셜 콘텐츠 등
      • FPS – 빠른 대전, 경쟁전, 장비 관리 등
      • 퍼즐 – 스테이지, 덱 관리 등
    • 콘텐츠 항목을 세분화할수록 좀더 정확한 유저 분석이 가능합니다.

    Enumerations 콘텐츠

    • ConnectType
      콘텐츠의 형식을 정의
    NameValue설명
    APP0사용자가 게임에 로그인 또는 로그아웃했을 때 지정
    CONTENT1사용자가 콘텐츠에 진입 또는 이탈했을 때 지정
    • FlowType
      게임 머니 변화의 구분 값을 지정
    NameValue설명
    IN0사용자가 로그인 또는 콘텐츠에 진입했을 때 지정
    OUT1사용자가 로그아웃 또는 콘텐츠에서 이탈했을 때 지정

    Method 설명

    public void ConnectInfos(ConnectType connectType, string contentName, FlowType entryType)
    
    Parameter NameData Type설명
    connectTypeConnectType접속 기준 설정
    - 집계를 위한 필수 항목
    contentNameString콘텐츠 이름
    - 집계를 위한 필수 항목
    - 로그인/로그아웃 시에는 'Login', 'Logout'으로 입력
    - 콘텐츠일 경우는 콘텐츠 이름을 입력
    entryTypeFlowType진입 또는 이탈 설정
    - 집계를 위한 필수 항목
    Return (호출 결과)
    void반환 값 없음

    샘플 소스

    게임 로그인 또는 게임 로그아웃

    // 로그인, 로그아웃
    // 게임 로그인 로그 전송
    StorageCoreManager.GetInstance().GetApi().ConnectInfos(ConnectType.APP, "Login", FlowType.IN);
    
    // 게임 로그아웃 로그 전송
    r.GetInstance().GetApi().ConnectInfos(ConnectType.APP, "Logout", FlowType.OUT);
    

    콘텐츠 진입 또는 콘텐츠 이탈

    // 콘텐츠 입장, 퇴장
    // 스테이지1-1 입장 로그 전송
    StorageCoreManager.GetInstance().GetApi().ConnectInfos(ConnectType.CONTENT, “스테이지1-1”, FlowType.IN);  
    
    // 스테이지1-1 퇴장 로그 전송
    StorageCoreManager.GetInstance().GetApi().ConnectInfos(ConnectType.CONTENT, “스테이지1-1”, FlowType.OUT);
    

    AdPerformInfos

    게임 앱 안에 노출되는 배너(광고, 공지)에 대한 로그를 전송하고 인게임 배너에 대한 유저의 반응을 분석
    게임 앱 안에서 특정 업적(특정 레벨, 특정 퀘스트, 특정 스테이지 도달 등) 달성 로그를 전송하고 이벤트에 대한 유저의 반응을 분석

    API 호출 시점

    호출 시점필수 여부영향 지표
    게임 안에서 배너가 클라이언트에 노출된 직후 로그 전송Y- 배너 조회/클릭 수
    - 이벤트 수행/성공/사용자 수
    - 배너 분석
    - 이벤트 분석
    - 이벤트 퍼널 분석
    사용자가 노출된 배너를 클릭한 직후 로그 전송Y
    게임 안에서 유저가 특정 업적을 달성한 직후 로그 전송Y
    주의
    • 광고, 이벤트, 공지 로그를 전송할 때는 배너가 화면에 표시(노출)될 때와 표시된 화면을 클릭할 때 각각 저장해야 합니다.
    • 추적하고 싶은 특정 이벤트(업적 달성, 이벤트 클리어, 퀘스트 완료, 특정 스테이지 도달 등)가 있을 경우 ContentType을 TRACK으로 지정해야 합니다.
    참고
    • 다음과 같이 측정하고자 하는 이벤트를 완료한 후에 로그가 전송되면 사용자가 도달하는 비율을 분석할 수 있습니다.
      • 튜토리얼 10단계 완료
      • 특정 업적 달성(20레벨 달성)
      • 이벤트 콘텐츠 완료(첫 결제 두 배 보상 이벤트)

    Enumerations 콘텐츠

    • ContentType
      추적하고 싶은 대상에 대한 구분을 지정
    NameValue설명
    AD0인게임 배너가 광고일 경우 지정
    EVENT1인게임 배너가 이벤트일 경우 지정
    NOTICE2인게임 배너가 공지일 경우 지정
    TRACK3인앱의 콘텐츠(업적 달성, 이벤트 클리어, 퀘스트 완료, 특정 스테이지 도달 등)를 추적하는 경우 지정
    • AdsActType
      시스템과 유저의 행위 형식 지정
      시스템에서 표시할 때와 유저가 클릭할 때로 나누어 지정
    NameValue설명
    IMPRESSION0배너가 클라이언트에 노출됨
    CLICK1노출된 배너를 클릭했을 때
    ENTRY2추적 대상 콘텐츠에 진입했을 때
    COMPLATE3추적 대상 콘텐츠를 완료했을 때
    FAIL4추적 대상 콘텐츠를 실패했을 때
    SUCCESS5추적 대상 콘텐츠를 성공했을 때

    Params 데이터 클래스

    • JoinContent
      이벤트 참여 내용을 저장
      이벤트에 여러 단계가 있을 경우 하나하나 단계별로 로그를 저장
    Data MemberDataType설명
    JoinStepint복수(단계별) 참여 구분
    JoinChoiceint참여(선택) 내용
    - 예: 선택형 이벤트, 출석 이벤트 등
    JoinLevelint참여 당시 레벨

    Method 설명

    // 저장된 List<JoinContent> 값 초기화
    public void ClearJoinContents()
    
    Parameter NameData Type설명
    Return (호출 결과)
    void반환 값 없음
    // List<JoinContent>에 이벤트 내용 추가
    public void AddJoinContents(int JoinChoice, int JoinLevel, int JoinStep)
    
    Parameter NameData Type설명
    JoinChoiceint참여(선택) 내용
    - 예: 선택형 이벤트, 출석 이벤트 등
    JoinLevelint참여 당시 레벨
    JoinStepint복수(단계별) 참여 구분
    Return (호출 결과)
    void반환 값 없음
    List<JoinContent> GetJoinContents()
    
    Parameter NameData Type설명
    Return (호출 결과)
    JoinContentsList<JoinContent>목록에 저장된 참여 목록을 반환
    // 저장된 List<JoinContent> 값 초기화
    public string AdPerformInfos(ContentType PromoteContentType, AdsActType PromoteAdsActType, string PromoteContentName, string PromoteContent, string PromoteJoinKey, IEnumerable<JoinContent> PromoteJoinContent, string ReferrerPageName)
    
    Parameter NameData Type설명
    PromoteContentTypeConnectType광고/이벤트/공지 등 인게임 배너 구분
    - 집계를 위한 필수 항목
    PromoteAdsActTypeAdsActType해당 배너가 클라이언트에 노출되었는지, 사용자가 클릭했는지 구분
    - 집계를 위한 필수 항목
    PromoteContentNamestring페이지명/콘텐츠명
    - 집계를 위한 필수 항목
    PromoteContentstring콘텐츠의 내용 요약
    PromoteJoinKeystring보상 아이템과 매핑을 위한 키 값
    PromoteJoinContentList참여 내용
    ReferrerPageNamestring이전 화면의 주소 또는 이름
    Return (호출 결과)
    string인터넷 리소스의 응답을 반환
    로그를 저장한 후의 결과 값

    샘플 소스

    StorageCoreManager scManager = StorageCoreManager.GetInstance(); 
    
    //콘텐츠의 단계가 있는 경우 단계를 하나씩 추가
    scManager.ClearJoinContents(); 
    scManager.AddJoinContents(1, 10,2); 
    scManager.AddJoinContents(2, 12, 1); 
    
    //로그 전송
    AdPerformInfo StorageCoreManager.GetInstance().GetApi().AdPerformInfos(ContentType.EVENT, AdsActType.IMPRESSION, "promotecontentname", "promotecontent","promotejoinkey", scManager.GetJoinContents(), "referrerPageaName");
    

    FriendshipInfos

    게임 내 친구 관련 정보 저장

    API 호출 시점

    호출 시점필수 여부영향 지표
    게임 안에서 사용자가 다른 사용자에게 친구 관계 요청 시 로그 전송Y-분석 지표 없음
    - 로그 검색 가능
    게임 안에서 다른 사용자의 친구 요청 수락 시 로그 전송Y
    게임 안에서 다른 사용자의 친구 요청 거절 시 로그 전송Y
    게임 안에서 연결된 친구 관계 삭제 시 로그 전송Y
    참고
    • FriendshipInfos 로그는 분석용 로그가 아닌 검색에 활용하는 로그입니다.

    Enumerations 콘텐츠

    • RequestType
      친구 정보를 저장할 때 유저의 행위 지정
    NameValue설명
    ASK0친구 요청
    AGREE1친구 요청 수락
    DROP2친구 삭제
    REJECT3친구 요청 거부

    Method 설명

    // 사용자에게 친구 요청/요청 거부/요청 수락/삭제 
    public void  FriendshipInfos(RequestType FriendRequestType, string FriendMemberId, string CharID, string FriendNickName, string FriendCharId, int FriendLevel)
    
    Parameter NameData Type설명
    FriendRequestTypeRequestType친구 요청/수락/삭제/요청 거부 등의 요청 형식
    FriendMemberIdstring친구 아이디
    CharIDstring캐릭터 아이디
    FriendNickNamestring친구 닉네임
    FriendCharIdstring친구 캐릭터 아이디
    FriendLevelint친구 레벨
    Return (호출 결과)
    void반환 값 없음

    샘플 소스

    //레벨1이면서 회원 번호가 {FriendMemberId}이고, 닉네임이 {FriendMemberId}인 사용자에게 친구를 요청
    string StorageCoreManager.GetInstance().GetApi().FriendshipInfos(RequestType. ASK, "FriendMemberId", "FriendNickName", 1);
    
    //레벨1이면서 회원번호가 {FriendMemberId}이고, 닉네임이 {FriendMemberId}인 사용자에게 친구 관계를 동의
    StorageCoreManager.GetInstance().GetApi().FriendshipInfos(RequestType. AGREE, "FriendMemberId", "FriendNickName", 1);
    

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.