이 가이드에서는 Google 모바일 광고 SDK를 사용하여 미디에이션을 통해 Unity Ads의 광고를 로드하고 표시하는 방법을 보여주며, 폭포식 구조 통합에 대해 다룹니다. 광고 단위의 미디에이션 구성에 Unity Ads를 추가하는 방법과 Unity Ads SDK 및 어댑터를 Flutter 앱에 통합하는 방법을 설명합니다.
지원되는 통합 및 광고 형식
Unity Ads용 Ad Manager 미디에이션 어댑터에는 다음과 같은 기능이 있습니다.
통합 | |
---|---|
입찰 | 1 |
폭포 | |
형식 | |
배너 | |
전면 광고 | |
리워드 제공됨 |
1 입찰 통합은 공개 베타 버전입니다.
요구사항
- 최신 Google 모바일 광고 SDK
- Flutter 3.7.0 이상
- [입찰의 경우]: 지원되는 모든 광고 형식을 입찰에 통합하려면 Unity Ads용 Google 모바일 광고 미디에이션 플러그인 1.1.0 이상 (최신 버전 권장됨)을 사용하세요.
- Android에 배포하는 경우
- Android API 수준 23 이상
- iOS에 배포하는 경우
- iOS 배포 대상 12.0 이상
- Google 모바일 광고 SDK로 구성된 실행 중인 Flutter 프로젝트. 자세한 내용은 시작하기를 참고하세요.
- 미디에이션 시작 가이드 완료
1단계: Unity Ads UI에서 구성 설정하기
프로젝트 만들기
Unity Ads dashboard(Unity Ads 대시보드)에서 Projects(프로젝트)로 이동하여 New(새로 만들기)를 클릭합니다.
양식을 작성하고 만들기를 클릭하여 프로젝트를 추가합니다.
Unity Ads Monetization(Unity Ads 수익 창출)으로 이동한 다음 Get started(시작하기)를 클릭합니다.
New Project(새 프로젝트) 모달에서 I will use Mediation(미디에이션 사용)을 선택하고 Mediation Partner(미디에이션 파트너)로 Google Admob을 선택한 다음 Next(다음)를 클릭합니다.
광고 설정 옵션을 선택한 다음 Next(다음)를 클릭합니다.
게재위치 설정을 선택한 다음 Next(다음)를 클릭합니다.
입찰
폭포
양식을 작성한 후 프로젝트 추가를 클릭합니다.
Game ID(게임 ID)를 기록해 둡니다.
광고 단위 및 게재위치 만들기
Unity Ads Monetization(Unity Ads 수익 창출) > Placements(게재위치)로 이동한 다음 프로젝트를 선택하고 Add ad unit(광고 단위 추가)를 클릭합니다.
Ad unit name(광고 단위 이름)을 입력한 다음 Platform(플랫폼)과 Ad format(광고 형식)을 선택합니다.
Android
iOS
수익 창출 > 게재위치로 이동한 다음 광고 단위 추가를 클릭합니다.
Ad Unit Name(광고 단위 이름)을 입력한 다음 Platform(플랫폼)과 Ad Format(광고 형식)을 선택합니다.
Android
iOS
Setup(설정)에서 Waterfall(폭포식 구조)을 선택합니다. Placement(게재위치)에서 Placement name(게재위치 이름), GEO Tagging(지역 태그 지정), Target(타겟)을 입력합니다.
Placement ID(게재위치 ID)를 기록해 둡니다.
마지막으로 Add ad unit(광고 단위 추가)을 클릭하여 광고 단위와 게재위치를 저장합니다.
Unity Ads Reporting API 키 찾기
입찰
입찰 통합에는 이 단계가 필요하지 않습니다.
폭포
Unity Ads Monetization(Unity Ads 수익 창출) > API management(API 관리)로 이동하여 Monetization Stats API Access(Monetization Stats API 액세스)의 API Key(API 키)를 기록해 둡니다.
그런 다음 Unity Ads Monetization(Unity Ads 수익 창출) > Organization Settings(조직 설정)으로 이동하여 Organization core ID(조직 핵심 ID)를 기록합니다.
app-ads.txt 업데이트
승인된 앱 판매자 app-ads.txt는 승인받은 것으로 확인된 채널을 통해서만 앱 광고 인벤토리가 판매될 수 있게 해주는 IAB Tech Lab 이니셔티브입니다. 광고 수익이 크게 감소하는 것을 방지하려면 app-ads.txt
파일을 구현해야 합니다.
아직 구현하지 않았다면
Ad Manager용 app-ads.txt 파일을 만듭니다.
Unity Ads에 app-ads.txt
를 구현하려면 처음으로 app-ads.txt 설정하기를 참고하세요.
테스트 모드 사용 설정
테스트 모드는 Unity Ads 대시보드에서 사용 설정할 수 있습니다. Unity Ads Monetization(Unity Ads 수익 창출) > Testing(테스트)으로 이동합니다.
각 플랫폼의 수정 버튼을 클릭하고 Override client test mode(클라이언트 테스트 모드 재정의)를 사용 설정한 다음 Force test mode ON (i.e. use test ads) for all devices(모든 기기에 테스트 모드 강제 설정(즉, 테스트 광고 사용))를 선택하여 앱의 테스트 모드를 강제 설정할 수 있습니다.
Android
iOS
또는 테스트 기기 추가를 클릭하여 특정 기기의 테스트 모드를 사용 설정할 수 있습니다.
테스트 기기 세부정보를 입력한 다음 저장을 클릭합니다.
2단계: Ad Manager UI에서 Unity Ads 수요 설정하기
광고 단위의 미디에이션 설정 구성
GDPR 및 미국 주 규정 광고 파트너 목록에 Unity Ads 추가하기
유럽 규정 설정 및 미국 주 규정 설정의 단계에 따라 Ad Manager UI의 유럽 및 미국 주 규정 광고 파트너 목록에 Unity Ads를 추가하세요.
3단계: Unity Ads SDK 및 어댑터 가져오기
pub.dev를 통한 통합
패키지의 pubspec.yaml
파일에 Unity Ads SDK 및 어댑터의 최신 버전과 함께 다음 종속 항목을 추가합니다.
dependencies:
gma_mediation_unity: ^
수동 통합
Unity Ads용 Google 모바일 광고 미디에이션 플러그인의 최신 버전을 다운로드하고, 다운로드한 파일을 추출하고, 추출한 플러그인 폴더(및 콘텐츠)를 Flutter 프로젝트에 추가합니다. 그런 다음 다음 종속 항목을 추가하여 pubspec.yaml
파일에서 플러그인을 참조합니다.
dependencies:
gma_mediation_unity:
path: path/to/local/package
4단계: Unity Ads SDK에 개인 정보 보호 설정 구현하기
EU 동의 및 GDPR
Google EU 사용자 동의 정책을 준수하려면 유럽 경제 지역 (EEA), 영국, 스위스의 사용자에게 특정 정보를 공개하고, 법적으로 요구되는 경우 쿠키 또는 기타 로컬 저장소의 사용과 광고 개인화를 위한 개인 정보의 수집, 공유, 사용에 대한 동의를 얻어야 합니다. 이 정책에는 EU 온라인 개인 정보 보호 지침 및 개인 정보 보호법 (GDPR)의 요구사항이 반영되어 있습니다. 동의가 미디에이션 체인의 각 광고 소스에 전파되는지 확인해야 합니다. Google은 사용자의 동의 여부를 이러한 네트워크에 자동으로 전달할 수 없습니다.
Unity Ads용 Google 모바일 광고 미디에이션 플러그인에는
GmaMediationUnity.setGDPRConsent()
메서드가 포함되어 있습니다. 다음 샘플 코드는 동의 정보를 Unity Ads SDK에 전달하는 방법을 보여줍니다. 이 메서드를 호출하는 경우 Google 모바일 광고 SDK를 통해 광고를 요청하기 전에 호출하는 것이 좋습니다.
import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...
GmaMediationUnity.setGDPRConsent(true);
각 메서드에서 제공할 수 있는 값과 자세한 내용은 Unity Ads의 개인 정보 보호 동의 및 데이터 API 및 GDPR 준수 가이드를 참고하세요.
미국 주 개인 정보 보호법
미국 주 개인 정보 보호법에 따라 사용자에게 법률에 정의된 조항에 따라 '개인 정보'의 '판매'를 거부할 권리를 부여해야 합니다. 개인 정보 판매 거부 권리는 '판매'하는 회사의 홈페이지에 명시된 'Do Not Sell My Personal Information(내 개인 정보 판매 거부)' 링크를 통해 행사할 수 있습니다. 미국 주 개인 정보 보호법 준수 가이드에서는 Google 광고 게재에 대해 제한적인 데이터 처리를 사용 설정할 수 있지만, Google은 게시자 미디에이션 체인의 각 광고 네트워크에 이 설정을 적용할 수 없습니다. 따라서 미디에이션 체인에서 개인 정보 판매에 참여할 수 있는 각 광고 네트워크를 식별하고 각 네트워크의 가이드에 따라 규정을 준수해야 합니다.
Unity Ads용 Google 모바일 광고 미디에이션 플러그인에는
GmaMediationUnity.setCCPAConsent()
메서드가 포함되어 있습니다. 다음 샘플 코드는 동의 정보를 Unity Ads SDK에 전달하는 방법을 보여줍니다. 이 메서드를 호출하는 경우 Google 모바일 광고 SDK를 통해 광고를 요청하기 전에 호출하는 것이 좋습니다.
import 'package:gma_mediation_unity/gma_mediation_unity.dart';
// ...
GmaMediationUnity.setCCPAConsent(true);
5단계: 필수 코드 추가하기
Android
Unity Ads Android 통합에는 추가 코드가 필요하지 않습니다.
iOS
SKAdNetwork 통합
Unity Ads 문서에 따라 SKAdNetwork 식별자를 프로젝트의 Info.plist
파일에 추가합니다.
6단계: 구현 테스트하기
테스트 광고 사용 설정
Ad Manager에 테스트 기기를 등록하고 Unity Ads UI에서 테스트 모드를 사용 설정해야 합니다.
테스트 광고 확인
Unity Ads에서 테스트 광고를 수신하는지 확인하려면 Unity Ads(입찰) 및 Unity Ads(폭포식 구조) 광고 소스를 사용하여 광고 검사기에서 단일 광고 소스 테스트를 사용 설정하세요.
오류 코드
어댑터가 Unity Ads에서 광고를 수신하지 못하면 다음 클래스에서 ResponseInfo
를 사용하여 광고 응답의 기본 오류를 확인할 수 있습니다.
Android
com.google.ads.mediation.unity.UnityAdapter
com.google.ads.mediation.unity.UnityMediationAdapter
iOS
GADMAdapterUnity
GADMediationAdapterUnity
다음은 광고 로드에 실패할 때 UnityAds 어댑터에서 발생하는 코드와 메시지입니다.
Android
오류 코드 | 이유 |
---|---|
0-10 | UnityAds SDK에서 오류를 반환했습니다. 자세한 내용은 코드를 참고하세요. |
101 | AdMob UI에서 구성된 UnityAds 서버 매개변수가 누락되거나 잘못되었습니다. |
102 | UnityAds에서 NO_FILL 상태의 게재위치를 반환했습니다. |
103 | UnityAds에서 상태가 DISABLED인 게재위치를 반환했습니다. |
104 | UnityAds가 null 컨텍스트의 광고를 표시하려고 했습니다. |
105 | Unity Ads에서 광고를 초기화, 로드 또는 표시하는 데 사용되는 컨텍스트가 Activity 인스턴스가 아닙니다. |
106 | UnityAds가 표시할 준비가 되지 않은 광고를 표시하려고 했습니다. |
107 | 기기에서 UnityAds가 지원되지 않습니다. |
108 | UnityAds는 게재위치당 한 번에 하나의 광고만 로드할 수 있습니다. |
109 | UnityAds가 ERROR 상태로 완료되었습니다. |
200-204 | UnityAds 배너 관련 오류입니다. 자세한 내용은 코드를 참고하세요. |
iOS
0-9 | UnityAds SDK에서 오류를 반환했습니다. 자세한 내용은 Unity의 문서를 참고하세요. |
101 | Ad Manager UI에서 구성된 UnityAds 서버 매개변수가 누락되었거나 잘못되었습니다. |
102 | UnityAds에서 지원되지 않는 기기입니다. |
103 | UnityAds가 오류 상태 kUnityAdsFinishStateError 로 프레젠테이션을 완료했습니다. |
104 | 이니셜라이저를 호출한 후 Unity 광고 객체가 nil입니다. |
105 | 광고가 준비되지 않아 Unity Ads를 표시하지 못했습니다. |
107 | UnityAds에서 게재위치 상태가 kUnityAdsPlacementStateDisabled 인 게재위치 변경 콜백을 호출했습니다. |
108 | 이 게재위치에 광고가 이미 로드되었습니다. UnityAds SDK는 동일한 게재위치에 여러 광고를 로드하는 것을 지원하지 않습니다. |
109 | UnityAds에서 반환된 배너 광고가 요청된 크기와 일치하지 않습니다. |
110 | UnityAds에서 초기화 오류를 반환했습니다. |
111 | 지원되지 않는 광고 형식입니다. |
Unity Ads Flutter 미디에이션 어댑터 변경 로그
버전 1.6.1 (진행 중)
버전 1.6.0
- 이제 iOS 버전 13.0 이상이 필요합니다.
- Unity Android 어댑터 버전 4.16.0.0을 지원합니다.
- Unity iOS 어댑터 버전 4.16.0.0을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 6.0.0으로 빌드하고 테스트했습니다.
버전 1.5.1
- Unity Android 어댑터 버전 4.15.1.0을 지원합니다.
- Unity iOS 어댑터 버전 4.15.1.0을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 6.0.0으로 빌드하고 테스트했습니다.
버전 1.5.0
- Unity Android 어댑터 버전 4.15.0.0을 지원합니다.
- Unity iOS 어댑터 버전 4.15.0.0을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 6.0.0으로 빌드하고 테스트했습니다.
버전 1.4.1
- Unity Android 어댑터 버전 4.14.2.0을 지원합니다.
- Unity iOS 어댑터 버전 4.14.2.0을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 6.0.0으로 빌드하고 테스트했습니다.
버전 1.4.0
- Unity Android 어댑터 버전 4.14.1.0을 지원합니다.
- Unity iOS 어댑터 버전 4.14.1.1을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 6.0.0으로 빌드하고 테스트했습니다.
버전 1.3.0
- Unity Android 어댑터 버전 4.13.1.0을 지원합니다.
- Unity iOS 어댑터 버전 4.13.1.0을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 5.3.1로 빌드하고 테스트했습니다.
버전 1.2.0
- Unity Android 어댑터 버전 4.13.0.0을 지원합니다.
- Unity iOS 어댑터 버전 4.12.5.0을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 5.3.1로 빌드하고 테스트했습니다.
버전 1.1.0
- Unity Android 어댑터 버전 4.12.3.0을 지원합니다.
- Unity iOS 어댑터 버전 4.12.3.1을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 5.2.0으로 빌드하고 테스트했습니다.
버전 1.0.0
- 첫 출시입니다.
- Unity Android 어댑터 버전 4.10.0.0을 지원합니다.
- Unity iOS 어댑터 버전 4.10.0.0을 지원합니다.
- Google 모바일 광고 Flutter 플러그인 버전 5.0.0으로 빌드하고 테스트했습니다.