자주 묻는 질문 (FAQ)

일반

여러 개의 프로젝트를 생성할 수 있나요?

네, 필요하다면 여러 개의 프로젝트를 생성할 수 있습니다.

텐투플레이를 쓰면 가장 큰 이득을 보는 게임 장르와 그렇지 않은 장르가 있나요?

텐투플레이는 게임 장르마다 다른 메소드를 사용하지만 AI가 게임 환경에 적응하는 방식은 게임마다 비슷하도록 설계되었습니다. 따라서 장르와 무관하게 LTV의 증가를 경험하실 수 있습니다.

텐투플레이를 제품에 통합시키는데 드는 비용과 시간이 어떻게 되나요?

게임의 규모(MAU)와 장르에 따라 다릅니다만 보통 인디게임이라면 6시간이 넘지 않을 것이고, 중대형 게임이라면 2,3일 정도면 됩니다.

텐투플레이는 무슨 언어를 지원하나요?

영어, 한국어, 일본어를 지원합니다.

무료 체험 기간이 있나요?

네, 자세한 것은 텐투플레이 영업 담당자에게 문의하시면 됩니다.

텐투플레이를 사용하고 있는 게임에는 어떤 것들이 있나요?

정확한 게임명은 비밀 유지 협약 때문에 공개할 수 없지만 현재 텐투플레이는 MMORPG와 방치형 게임, 소셜 네트워크 게임과 네러티브 중심 게임에 적용되어 있습니다. MAU는 30만에 달합니다.

어떤 점에서 텐투플레이가 내부 BI나 O&M 팀보다 낫나요?

낮은 비용과 높은 시간 효율, 그리고 게임 종류를 가리지 않고 AI 알고리즘을 쉽게 적용하여 성과를 창출할 수 있다는 점입니다.

기본 애널리틱스에 포함된 내용은 무엇인가요?

기본 애널리틱스에는 일/주/월 단위로 잔존율과 전환율에 대한 통계 자료가 제공되며 여기에 과금 사용자 및 인앱 결제에 대한 상세 내용도 함께 제공됩니다. 고급 애널리틱스에는 코호트 분석, 휴면 사용자, 인게임 경제 애널리틱스 등이 포함되어 있습니다.

시간대를 변경할 수 있나요?

신규 프로젝트 생성 시 국가별로 시간대를 선택할 수 있습니다. 하지만 프로젝트가 생성된 후에는 시간대를 변경할 수 없습니다. 다른 시간대를 사용하려면 프로젝트를 새로 생성해야 합니다.

기준통화가 외화라면 결제 시 환율은 어떤 기준으로 적용되나요?

외화 결제 시 환율은 결제일에 가장 가까운 날짜의 최종 기준 환율이 적용됩니다. 따라서 실제 결제금액은 결제 시점의 환율을 적용한 금액과 차이가 날 수 있습니다.

텐투플레이에서 컨설팅 서비스도 제공하나요?

저희는 통상적인 컨설팅 서비스를 제공하지는 않습니다. 하지만 상담이 필요하다면 담당 프로젝트 매니저를 연결해 드릴 수는 있습니다.

데이터 관련

텐투플레이는 인구통계학적 데이터도 수집하나요?

아뇨. 텐투플레이는 행동 데이터만 수집합니다.

텐투플레이는 서버 데이터베이스에서 바로 데이터를 추출하나요?

텐투플레이 SDK는 클라이언트 단에서 데이터를 수집하는 서드 파티 SDK입니다.

데이터를 외부로 내보내고 싶지 않은데 어떻게 해야 하나요?

텐투플레이는 서버 대 서버 서비스도 제공합니다. 자세한 것은 텐투플레이 영업 담당자와 상의하십시오.

AI 인게임 상점에 필요한 최소한의 데이터양이 어떻게 되나요? 혹시 게임 서버에 있는 이전 데이터를 필요로 하진 않나요?

텐투플레이 AI가 페르소나별 스레스홀드를 설정하고 플레이어를 해당 페르소나로 분류하는데에는 평균 하루에서 이틀치의 데이터가 필요합니다. 텐투플레이는 서버에 있는 과거 데이터는 일절 사용하지 않습니다.

AI 인게임 상점에 필요한 최소 플레이어 수가 있나요?

AI 인게임 상점은 플레이어의 규모에 크게 구애받지 않습니다. 그럼에도 보다 정확하고 다양한 페르소나 분석을 위해 텐투플레이는 3,000명 이상의 MAU(monthly active users, 월간 순수 사용자)를 권장합니다.

AI 인게임 상점

세그먼트는 어떻게 작동하나요?

텐투플레이 SDK로 구현하면 데이터 수집과 분석이 자동으로 이루어집니다. 텐투플레이 AI가 사용자의 플레이 스타일을 기반으로 사용자 유형을 나누는데 그렇게 분류된 페르소나별 플레이어 수는 콘솔에서 확인할 수 있습니다.

세그먼트 분류는 순전히 플레이어의 행동에 기반하나요?

세그먼트 분류 기준은 크게 두 가지입니다. 하나는 행동 경제학이고 다른 하나는 구매 및 잔존입니다.

AI 개인 오퍼의 본문을 변경할 수 있나요?

네, 콘솔에서 코드를 편집할 수 있습니다.

이벤트 로그는 많을 수록 좋은가요?

꼭 그렇지는 않습니다. 가장 좋은 건 비즈니스 모델과 연관성이 높은 이벤트를 선별적으로 수집하는 것입니다.

공통 메소드와 장르별 메소드의 차이점이 뭔가요?

Login이나 Join같은 일반 메소드는 어느 게임에나 공통적으로 필요한 메소드를 말합니다. 그 외의 장르별 메소드는 게임 장르에 따라 적용 가능 여부가 달라집니다. 가령 스킨이나 의상, 소비성 아이템이 없는 게임에선 GetCosmetic이나 UseConsumable 메소드가 필요하지 않습니다.

AI 인게임 상점의 성과를 어떻게 확인할 수 있나요?

콘솔에서 각 플레이어 세그먼트와 메시지에 대한 개봉율 및 전환율을 확인할 수 있습니다. 다만 이것이 곧 실제 구매율을 뜻하지는 않습니다.

한 플레이어가 두 개 이상의 페르소나에 속할 수도 있나요?

네, 각 페르소나가 늘 상호 배타적인 건 아니기 때문에 한 명의 플레이어가 두 개 이상의 페르소나를 갖는 일은 종종 있습니다.

28개의 페르소나가 모든 게임에 항상 나타나나요?

발현되는 페르소나의 수는 게임마다, 특히 장르마다 다릅니다. 평균적으로 RPG/MMO 게임에서는 12~15개의 페르소나를, 방치형 게임에선 7~9개, 캐주얼 및 퍼즐 게임에선 3~7개의 페르소나를 볼 수 있습니다.

플레이어가 오랜 기간 동일한 페르소나 그룹에 머물러 있다면 그동안 늘 같은 내용의 오퍼만 받는 거 아닌가요?

플레이어에게 발송되는 동일 오퍼수를 제한하거나 설정을 변경할 수 있습니다.

콘솔에서 데이터를 추출한 후 자사 서버와 대조 검토하고 싶은데 어떻게 해야 하나요?

콘솔에서 csv 파일을 다운로드 받으면 됩니다.

각 페르소나에 대한 스레스홀드는 어떻게 정해지나요?

SDK 구현 후 텐투를레이 AI가 24시간에서 72시간 동안 데이터를 분석하여 자동으로 페르소나별 스레스홀드를 설정합니다. 이러한 스레스홀드는 고정되어 있지 않고 게임이 성숙해감에 따라 혹은 플레이어의 성향이 바뀜에 따라 변화합니다.

AI 인게임 오퍼는 게임 어디에 표시되나요?

오퍼를 표시하고 싶은 위치는 직접 설정해야 합니다. 가령 로그인 시 팝업으로 나타나게 할 수도 있고 화면의 특정 아이콘을 클릭했을 때만 나타나게 할 수도 있습니다.

텐투플레이는 게임 내 제품에 표시되는 정보 (가격, 이미지 등)는 어디서 얻나요?

이를 위해 콘솔에 csv 파일을 업로드해야 합니다. 제품 상세 정보에 변동이 있다면 최신 버전을 업로드하여 기존 csv파일을 대체하도록 합니다.

샘플 csv에 있는 url은 예시입니다. 실제 구매 링크(외부 링크 또는 내부 딥링크)가 있다면 해당 링크를 purchase_link 에 입력하여 활용하시면 됩니다. purchase_link 에 아무런 값을 입력하지 않고, 아래 예시와 같이 purchasable_slug 또는 product_index 로 추천 상품의 purchase_link를 가져오는 형태로 활용할 수도 있습니다.

예시
purchase_link = getProductUrl(purchasable_slug); // purchase_link 를 가져오기 위한 커스텀 메소드

자세한 것은 다음 섹션을 참고하십시오.

코드 수정하기

게임이 다국어(예: 6개국어)를 지원하면 AI 인게임 상점의 각 페르소나에 대응되는 언어별 메세지를 전부 수동으로 입력해야 하는것인가요?

저희가 디폴트 메시지로 한국어, 영어, 일본어를 제공하고 있습니다. 이외 언어는 디폴트 메시지를 참고하여 번역 후 직접 입력해주셔야 합니다.

안드로이드랑 ios에 같은 상품코드로 판매하고 있는데 이럴 경우 csv의 플랫폼란은 비워도 되는 것인가요?

store 는 필수 값이라서 꼭 입력되어야 합니다. 모든 store에 같은 상품코드(ex. purchasable_slug or product_index)를 사용하셔도 각각의 store 값을 입력해야 합니다.

AI 인게임 상점 메시지를 노출 시키는 UI 크기는 어느정도가 적당한가요?

모델에 따라 메시지를 통해 노출되는 텍스트 양이 다르기 때문에, 텍스트 양의 변화에 대응할 수 있도록 UI를 구성 하는 것이 바람직합니다.

개인화 오퍼

개인화 오퍼의 전송 시점을 강제로 트리거할 수 있나요?

아니요. 하지만 사용자 지정 이벤트와 관련한 업데이트를 검토하고 있습니다.

콘솔에서 여러 사용자 ID를 하나의 목록으로 입력할 수 있나요?

사용자 ID를 원하는 수만큼 입력하여 수동으로 하나의 그룹을 생성할 수 있습니다. 또한 콘솔에서 고래 사용자와 신규 과금 사용자 목록 중 특정 사용자 ID를 가진 사용자를 선택하여 이들을 대상으로한 오퍼를 생성할 수도 있습니다.

텐투플레이 콘솔에 오퍼 알림을 띄울 수 있나요?

아니요. 인게임 메시지 및 팝업의 형태로만 가능합니다.

"즉시 전송"과 "캠페인"의 차이는 무엇인가요?

“즉시 전송”는 말그대로 지정된 오퍼를 타겟 사용자에게 즉각 보내는 것을 말합니다(예: 플레이어 AAA, ABC, XYZ에게 20% 할인 쿠폰 즉시 보내기). "캠페인"은 지정된 기간동안 진행되는데 그 기간 동안 특정 전송 시점을 트리거하는 플레이어에게 지정된 오퍼를 보내는 기능을 말합니다(예: 향후 2주간 스테이지 11에 도달하는 플레이어 모두에게 20% 할인 쿠폰 보내는 캠페인 생성하기).

캠페인 기간 동안 플레이어가 특정 전송 시점을 트리거하면 오퍼가 즉시 발송되나요?

아니요. 모든 캠페인 오퍼는 전송 시점 트리거 후 UTC 기준으로 다음 날 한꺼번에 발송됩니다.

개인화 오퍼의 부정 사용 막기위한 검증 기능 같은 것이 있나요?

네, 오퍼 검증 API가 있습니다. 자세한 것은 다음 섹션을 참고하십시오.

오퍼 검증하기

캠페인 생성 후 편집 가능한가요?

일단 캠페인이 생성되면 캠페인 일정만 편집 가능합니다. 오퍼 내용과 대상 독자를 바꾸고 싶으면 해당 캠페인의 사본을 생성한 후 가능합니다.

딥 링크는 무엇인가요?

딥 링크에는 대상 제품에 대한 정보가 있습니다. 딥 링크를 생성하는 방법을 알고 싶으면 다음 두 개의 사이트를 참고하십시오.

콘솔에서 게임 아이템의 가격을 변경할 수 있나요?

아니요. 게임 아이템을 오퍼에 구현하기 전에 미리 구글플레이나 앱스토어에 가격을 등록해야 합니다.

SDK 관련

게임을 업데이트할 때마다 텐투플레이 SDK 쪽도 업데이트해 줘야 하나요?

늘 필요한 건 아닙니다. 그렇지만 게임 업데이트에 비즈니스 모델 변경이 있다면 텐투플레이 기술팀에 연락하여 지원을 받는 것이 좋습니다.

SDK 말고 API를 통해 텐투플레이 서비스를 이용할 수 있나요?

가능합니다. 자세한 것은 텐투플레이 기술팀에 문의하십시오.

텐투플레이 SDK가 지원하는 게임 엔진에는 어떤 것이 있나요?

현재 유니티 엔진을 지원하고 있습니다.

SDK 구현이 제대로 되었는지 검증하는 QA 프로세스 같은 것이 있나요?

데이터 수집과 업로드 구현에 대한 디버그 작업이 있습니다. 그리고 저희 텐투플레이 기술팀이 서버에 문제가 없는지 지속적으로 점검하고 있습니다.

데이터 수집 디버깅하기

난독화 구현 시 예외 처리 되어야할 클래스는 무엇인가요?

com.sentience.tentuplay입니다.

현재 TPStashEvent 클래스 일부 파라미터의 자료형(예: currency)이 float인데 입력 데이터가 float의 범위를 넘게 되면 어떻게 해야 하나요? 데이터 업로드 관련하여 한 메소드에 이처럼 잘못된 데이터가 들어가면 다른 메소드의 데이터도 영향을 받나요?

내장 형변환이 제대로 작동하는 상황이라면 형변환을 쓰면 됩니다. 다만 이 경우 오버플로우가 발생하므로 다음과 같이 추가적 데이터 처리를 해주어야 합니다.

  • float 범위: 1.40129846432481707e-45 ~ 3.40282346638528860e+38

  • double 범위: 1.7e-308 ~ 1.7e+308

여기서 값이 10^38을 넘어가는 순간 오버플로우가 발생하고 값이 무한대로 인식되어 오류가 발생합니다. 이런 경우 입력 값의 로그를 취하는 방법이 있습니다만 이 방법에는 콘솔에서 값이 로그의 형태로 나타난다는 단점이 있습니다.

두번째 질문에 대해서는 가령 GetCurrency의 데이터 중 하나라도 데이터 타입 범위가 넘어가는 데이터가 있다면, GetCurrency 데이터는 텐투플레이 서버로 업로드 되지 않습니다. 하지만 다른 메소드(예: UseCurrency)에는 영향이 없고 정상적으로 데이터가 업로드 됩니다.

설정에서 Auto Upload가 체크된 상태에서 플레이어가 다음 업로드 시간 도달 전에 앱을 닫아버렸다면 직전까지 수집된 데이터는 어떻게 되나요?

이런 경우 업로드 시간 전까지 수집된 데이터는 플레이어의 장치에 보관되어 있다가 다음에 게임을 플레이할 때 다시 업로드됩니다. 물론 이를 방지하기 위해 업로드 간격을 줄일 수는 있지만 그만큼 잦은 업로드로 인한 영향(예: 데이터 전송 시 오버헤드 증가)이 있을 수 있으므로 각각 장단점이 있습니다.

TPStashEvent 클래스는 얼마나 자주 호출해야 하나요?

TPStashEvent 클래스가 사용되는 방식은 다음과 같습니다. Auto Upload가 선택되어 있다고 가정하고 호출이 잦은 이벤트에 대해 는 상태에서 new TPStashEvent() 클래스를 활용하여 필요한 메소드를 호출하면 업로드 간격에 따라 업로드가 자동으로 이루어집니다. (예: 재화의 획득과 사용 시 수집 메소드를 각각 new TPStashEvent().GetCurrency(), new TPStashEvent().UseCurrency()로 호출하기). 만약 new TPStashEvent()가 플레이 시작 시에만 호출된다면 플레이 도중 수집 데이터가 업로드되는 일은 일어나지 않습니다.

데이터 제대로 업로드되었는지 어떻게 확인할 수 있나요? 이를 위한 콜백이 있나요?

현재 그런 콜백 함수는 없습니다. 대신 업로드가 성공하면 텐투플레이 디버그 모드에서 "TPDebug||Upload successful"라는 메시지가 유니티 콘솔에 나타납니다.

업로드 실패시 수집된 데이터는 다음 게임 플레이시까지 플레이어의 장치에 남아 있습니다.

콘솔에서 SDK 상태를 보면 PlayerGetCharacter 이벤트가 Join 이벤트 후 항상 나타나는데 괜찮은건가요?

정상입니다. Join 직후 PlayerGetCharacter가 자동 호출되도록 설계되었습니다.

문서에는 TPStashEvent.Join이 사용자 등록에 쓰인다고 하는데 등록하려는 사용자가 이미 등록된 사용자인지 확인할 수 있는 방법이 있나요? (그래서 기등록 여부에 따라 JoinLogin을 모두 호출하거나 Login만 호출하길 원함)

텐투플레이는 호출하는 모든 것을 그냥 업로드하므로 텐투플레이를 사용 중 특정 사용자가 이미 등록했는지 확인하기는 어렵습니다. 대다수의 게임에서 TPStashEvent.Join은 최초 일회성으로 이루어지는 이벤트(예: 구글 사용자로 로그인)에 대해 호출됩니다.

서버 오류 발생 시 텐투플레이 SDK는 어떻게 대처하나요?

텐투플레이 SDK는 몇 차례 더 재시도한 후 마지막에는 스스로 셧다운합니다. 이런 일련의 절차가 게임플레이에는 영향을 미치지 않는데 이는 게임이 하나의 스레드만 사용한다는 가정하에 SDK는 별도의 스레드나 코루틴/콜백에서 돌기 때문입니다.

이후 3~5일 정도의 충분한 시간이 지난 후 SDK는 앱 시작 헬스 체크 과정에서 서버가 복구되었는지 확인합니다. 이 또한 게임 플레이에는 영향을 주지 않습니다.

텐투플레이 서버의 처리 능력은 어느 정도인가요?

우리 서버는 게임의 장르와 용량에 따라 RDB와 NoSQL을 모두 사용하여 다양한 용량에 유연하게 대처하고 있습니다. 많은 용량은 200,000 DAU, 80,000 concurrent connections 이상을 의미합니다. 가령 x00,000개(비밀유지협약에 의거 정확한 숫자는 비공개) DAU를 지닌 자사 MMORPG 클라이언트의 경우 이제껏 서버가 다운되거나 한 경우는 없었습니다.