2019년 6월 27일 목요일

Unity - GPGS 와 Admob 연동 및 배포 준비 작업


0. 사전 정보

  • Unity 버전 : 2018.4.2f1
  • GPGS Plugin 버전 : GooglePlayGamesPlugin-0.9.64.unitypackage
  • AdMob Plugin 버전 : GoogleMobileAds-v3.17.0.unitypackage

1. 배포용 APK를 준비

  • gpgs 패키지가 설정되지 않은 순수 게임 구현까지의 프로젝트
  • Unity>PlayerSettings>PublishingSettings>keystore를 생성해 적용한 프로젝트
  • keystore 와 key의 Alias 를 생성 및 적용한 프로젝트
  • keystore를 설정 하지 않은 APK 업로드 시 "디버그 모드로 서명한 APK...." 형태의 에러가 차후 발생 됨


2. 구글 플레이 콘솔(Google Play Console) 설정 작업

2-1. 애플리케이션 만들기 

  • 모든 애플리케이션 > 애플리케이션 만들기로 신규 프로젝트 생성
  • 기본 언어, 제목을 설정해 생성
  • 모든 애플리케이션 > [생성한 앱]>[ 스토어 등록정보] 메뉴로 이동해 나머지 앱 정보를 입력 하도록 페이지 전환 됨

2-2. 애플리케이션 - 앱 버전 설정

  • 모든 애플리케이션 > [생성한 앱]선택 > [앱 버전] 메뉴에서 설정
  • 내부 테스트 트랙 의 관리 메뉴 선택
  • 새 버전 출시하기 선택
  • "Google에서 앱 서명 키를 관리 및 보호하도록 허용" 으로 앱 서명 설정
  • 버전 수정  메뉴를 통해 APK 업로드

2-3. 애플리케이션 - 테스트 인원 설정

  • 모든 애플리케이션 > [생성한 앱]선택 > [앱 버전] 메뉴
  • 내부 테스트 트랙 의 관리 메뉴 선택
  • 상단의 "내부 앱 공유" 메뉴를 통해 테스트 인원을 설정
  • 또는 "내부 테스트" 의 "관리" 메뉴를 선택해 테스트 인원을 설정

2-4. 애플리케이션 - 나머지 정보 입력

  • 모든 애플리케이션 > [생성한 앱]선택의 하위 메뉴들 정보 기입
  • 콘텐츠 등급 : 설문 조사를 통해 앱의 사용가능 나이를 책정
  • 가격 및 배포 : 출시 국가 지정과 약관을 선택해
  • App content : "콘텐츠 등급" , "가격 및 배포" 설정 이후 진행 하며, 설문 조사 형식으로 진행
  • 이와 같이 최소 등록 정보를 세팅해 출시가 가능 하도록 준비해 둠

2-5. 게임 서비스 만들기

  • 게임 서비스 > 새 게임 추가로 신규 게임 생성
  • 이름, 타입 등을 설정 하여 생성

2-5. 게임 서비스 - 앱 연결

  • 게임 서비스 > [생성한 게임]선택 > [연결된 앱] 선택
  • 어떠한 플랫폼의 앱인지를 지정 : 안드로이드
  • "패키지 이름" 을 설정 : 입력박스 선택 시 현재 생성된 앱이 표시됨
  • 상단의 "저장하고 승인" 후 "지금 앱 승인" 메뉴 선택
  • Android OAuth 클라이언트 만들기 팝업에서 확인 

2-6. 게임 서비스 - 인증키 추가

  • 모든 애플리케이션 > [생성한 앱]선택 > [출시 관리] > [앱 서명] 메뉴의 "업로드 인증서"의 "SHA-1 인증서 지문" 항목 정보 복사
  • 게임 서비스 > [생성한 게임]선택 > [게임 세부정보] 메뉴 선택
  • 페이지 하단의 "API 콘솔 프로젝트" 항목 내 API 페이지 오픈용 Link 선택
  • API 및 서비스 페이지의 [사용자 인증 정보] 선택
  • [사용자 인증 정보 만들기] -> [OAuth 클라이언트 ID] -> [Android] 선택 
  • 동일 페이지의 [서명 인증서 지문] 에 복사한 "SHA-1 인증서 지문"을 입력
  • [패키지 이름] 을 입력해 인증키를 추가로 등록 시킴
  • 최종으로 OAuth 2.0 클라이언트 ID 목록에 2개가 등록 되어 있음

2-7. 인증키 확보

  • 게임 서비스 > [생성한 게임]선택 > [연결된 앱] 페이지의 "OAuth2 클라이언트 ID" 항목을 저장
  • "OAuth2 클라이언트 ID" 는 GPGS Plugin에서 사용됨

2-8. 게임 서비스 - 업적 및 리더보드 설정

  • 각각의 메뉴 내용 설정 완료
  • 업적 또는 리더보드의 "리소스 받기" 메뉴 선택
  • 표시되는 팝업 정보의 ANDROID 항목을 복사해 둠
  • 표시 정보는 GPGS Plugin에서 사용됨

2-9. GPGS PlugIn 추가 및 설정

  • https://github.com/playgameservices/play-games-plugin-for-unity
  • [current-build] 페이지의 unitypackage 다운로드 
  • 또는 우측의 clone download 으로 프로젝트 모두 다운로드해 리소스 확보
  • 저장한 unitypackage 를 게임 프로젝트로 import
  • unity>Window>GooglePlayGames>Setup>AndroidSetup 선택
  • 표시되는 팝업에 정보 입력 
  • ResourcesDefinition 에는 2-8의 업적 및 리더보드 정보
  • WebAppClientID(Optional)에는 2-7의 OAuth2 인증키 정보
  • Setup시 Resolution 과 GooglePlayGamesConfigured 가 successfully 로 표시되면 정상으로 설정됨

2-10. GooglePlayGamesConfigured 단계 오류시 

  • 될 수 있으면 정상적으로 다 등록 하고 테스트 진행하기를 권고
  • [Web App Client ID]는 웹 게임용 변수이므로 삭제하고 등록 시 테스트는 가능
  • resolving 게이지가 시작이 안되면 unity를 껐다 다시 키거나, 은행/증권 보안앱 삭제 후 다시 시도(Assets>Google Services Resolver>Android Resolver>Resolve)

2-11. GPGS 기초 연동 테스트

  • 모든 애플리케이션 > [생성한 앱]선택 > [앱 버전] 메뉴에서 내부 테스트 트랙 의 관리 메뉴로 들어가 앱을 출시 상태로 변경
    (게임을 다운로드 받을 수 있도록 상태 변경)
  • 게임 서비스 > [게임 출시] > 출시 상태로 변경
    (GPGS 연동이 가능 하도록 상태 변경)
  • 테스트 자료 : https://github.com/playgameservices/play-games-plugin-for-unity/tree/master/samples/Minimal 페이지 오픈
  • Minimal.unitypackage 를 이용해 기초 로그인 테스트 가능

2-12. AdMob 사전 작업

  • 등록한 앱과 AdMob 사용 설정의 문제가 없도록 사전 설정을 한다.
  • 모든 애플리케이션>앱 선택> 앱 정보 > 스토어 등록정보 에서 [개인정보처리방침] 항목에 URL 등록
  • 모든 애플리케이션>앱 선택> 앱 정보 > 가격 및 배포 에서 [광고 포함] 부분을 사용으로 설정 변경
  • 이 작업을 해야 AdMob 작업 진행 중 Google Play Console에서 앱이 삭제 되지 않는다.

3. ADMob 설정 작업

3-1. 회원 가입

3-2. 최초 앱 등록

  • 최초 페이지에서 [시작하기] 버튼 선택
  • 앱등록 유/무 확인에서 직접 입력을 위한 [아니요] 버튼 선택
  • 앱 정보 입력(이름, 플랫폼)하고 [예] 버튼 선택

3-3. 광고 단위 설정

  • 등록한 앱의 광고 단위를 설정 [다음 단계:광고 단위 만들기] 버튼 선택
    또는 홈페이지>앱>[등록앱이름]>광고 단위>시작하기 버튼 선택 
  • 배너, 전면, 리워드 중 생성하려는 광고 단위를 생성
  • 광고 단위 이름과 부가 정보 입력 후 [광고 단위 만들기] 버튼 선택

3-4. 플러그인 설치

  • 유니티용 플러그인 : https://developers.google.com/admob/unity/start
  • 페이지 내 [플러그인 다운로드] 버튼으로 github 로 이동해 plugin unitypackage 다운로드
    (Link : https://github.com/googleads/googleads-mobile-unity/releases)(https://github.com/googleads/googleads-mobile-unity/releases/tag/3.17.0)
  • 다운 받은 unitypackage를 Project에 설치(import)
  • ADmob사이트>가이드>시작하기 페이지의 "AdMob 앱 ID 설정" 을 진행 
  • 앱>앱 설정>앱 ID 에서 정보를 확인
  • 생성된 앱 ID (예:ca-app-pub-270......~33...)를Assets/Plugins/Android/GoogleMobileAdsPlugin 디렉토리의 AndroidManifest.xml 파일 내 AdMob 앱 ID 항목에 추가함 (plugin 버전 3.17에서의 작업으로 3.18에서는 유니티 asset에 등록 메뉴가 따로 존재)
  • 파일 내 android:value="[ADMOB APPLICATION ID]" 에 android:value="ca-app-pub-2709XXXXXX ~ XXXXXX" 형태로 값을 입력 (나머지는 그대로 유지)

3-5. 테스트 코드 작성

  • 테스트 광고 등록 : 링크
  • 테스트 광고 등록 페이지를 보고 테스트용 광고 Id와 테스트 기기 등록을 진행
  • Edit>Preferences>ExternalTools>Android/SDK 경로 확인
    이후 경로/tools/monitor.bat 를 실행 연결 기기 선택 후 logcat 중 addTestDevice 검색으로 기기 ID 확보
  • 배너 광고 샘플 : 링크
  • 전면 광고 샘플 : 링크
  • 보상형 광고 샘플 : 링크
  • 최소한의 광고 구현 예제 : 링크

3-6. 테스트 기기 등록

  • logcat으로 확인한 기기ID를 빈 광고를 생성하는 단계에 추가
  • AdRequest request = new AdRequest.Builder().AddTestDevice("AF5B889832D74BCF75FE8237E6A46478").Build();
  • 이는 자신의 기기로 테스트 시 잦은 광고 호출로 부정클릭으로 인한 정지가 발생하지 않도록 처리 하기 위함




이상과 같이 GPGS와 AdMob 연동시 경험했던 작업 내용이 정리되었다.


댓글 없음:

댓글 쓰기

Unity - Firebase 연동 (Analytics, AdMob)

버전 : firebase_unity_sdk_6.5.0.zip 게임에서 통계 측정 및 광고 추적을 위해 Firebase 을 연동한다. 앞서 [Unity - GPGS 와 Admob 연동 및 배포 준비 작업]  연동 이후에 작업을 진행 한다. 유니...