Mobile Ads SDK 통합
시스템: Yandex Advertising Network, Adfox
앱에 Yandex Mobile Ads SDK를 통합하는 것은 광고를 게재하고 수익을 내기 위한 첫 단계입니다. SDK를 통합한 뒤 앱 수익화에 사용할 광고 형식(예: 배너 광고, 리워드 광고)을 선택하고 설정을 진행할 수 있습니다.
사전 요구 사항
앱을 준비하려면 아래 섹션에 설명된 단계를 따르세요.
앱 요구 사항
- Android Studio 2021 이상을 사용합니다.
- Android Gradle Plugin 8.7.0 이상을 사용합니다.
- 앱의 빌드 파일에 다음 값이 사용되는지 확인합니다.
- minSdkVersion 21 이상.
- compileSdkVersion 34 이상.
- 앱에서 AppMetrica SDK를 사용하는 경우 주 버전 7 안에서 7.2.1 이상이 설치되어 있는지 확인합니다.
Yandex Advertising Network 계정에서 앱 설정
Yandex Advertising Network에 앱을 등록하는 방법은 다음과 같습니다.
앱 설정
-
프로젝트 설정에 Google 저장소와 Maven Central 저장소를 추가합니다.
빌드 설정에 따라 아래와 같이 프로젝트의 build.gradle 파일이나 settings.gradle의 repositories 블록에 추가할 수 있습니다.
build.gradlesettings.gradle// Project-level build.gradle file buildscript { repositories { google() mavenCentral() } } allprojects { repositories { google() mavenCentral() } }// Project-level settings.gradle file pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } -
앱 모듈 수준의 Gradle 파일(보통 app/build.gradle)에 Yandex Mobile Ads SDK 의존성을 추가합니다.
dependencies { implementation 'com.yandex.android:mobileads:8.0.0' } -
광고 ID 사용 권한을 설정합니다(SDK 버전이 4.5.0보다 오래된 앱용).
광고 ID 사용 권한을 설정하는 방법
광고 ID는 개인화된 광고를 선택한 사용자에게 광고를 표시하기 위해 Google Play 서비스에서 제공하는 고유 식별자입니다. 사용자는 광고 개인화를 거부하거나 설정에서 ID를 재설정할 수 있습니다. 이 경우 광고 네트워크는 사용자와 관련된 광고를 선택하는 데 ID를 사용할 수 없습니다.
앱이 Yandex Mobile Ads SDK 4.5 버전 이하를 실행하는 경우, AndroidManifest.xml 파일에 com.google.android.gms.permission.AD_ID를 추가하세요.
<manifest> <application> <!-- Android 13 이상 및 Yandex Mobile Ads SDK 버전 4.5.0 미만을 대상으로 하는 앱 --> <uses-permission android:name="com.google.android.gms.permission.AD_ID"/> </application> </manifest>버전 4.5.0부터는 Yandex Mobile Ads SDK가 기본적으로 com.google.android.gms.permission.AD_ID를 추가합니다. 따라서 애플리케이션의 메인 매니페스트에 이를 명시할 필요가 없습니다. 이 권한을 통해 광고 네트워크에서 관련성이 더 높은 광고를 선택하는 데 광고 ID를 사용할 수 있습니다.
필요한 경우 권한을 삭제할 수 있습니다. 예를 들면 가족 정책(Families Policy)과 같이 광고 선택에 대해 ID 사용을 허용하지 않는 정책이 있는 경우가 있습니다.
애플리케이션의 메인 매니페스트에 권한이 추가되지 않도록 하려면 AndroidManifest.xml 파일에 다음을 추가하세요.
<manifest> <application> <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/> </application> </manifest>Важно
권한과 ID에 접근하지 못하면 관련성이 낮은 광고가 더 많이 게재되어 수익에 영향을 줄 수 있습니다.
Yandex Mobile Ads SDK 초기화
Yandex Mobile Ads SDK를 성공적으로 초기화하는 것은 라이브러리를 올바르게 통합하는 데 필요한 전제 조건입니다. 기본적으로 앱 시작 시 SDK가 자동으로 초기화됩니다. 광고 로드가 빨라져 수익화 수익이 증가합니다.
앱에서 개인 데이터 개인정보 처리방침을 설정해야 하는 경우 Yandex Mobile Ads SDK를 초기화하기 전에 반드시 설정하세요.
AndroidManifest 파일로 설정하거나, 수동으로 SDK를 초기화하기 직전에 설정할 수 있습니다.
COPPA 설정
자동 초기화를 선택한 경우 미성년자가 앱을 사용한다고 Yandex Mobile Ads SDK에 알리려면 AndroidManifest.xml 파일에 다음 코드를 추가합니다.
<manifest>
<application>
<!-- Disable the use of child's personal data for app monetization. -->
<meta-data
android:name="@string/yandex_mobileads_age_restricted_user"
android:value="true" />
</application>
</manifest>
수동 SDK 초기화
필요하면 자동 초기화를 끄고 initialize() 메서드로 라이브러리를 수동 초기화할 수 있습니다.
<manifest>
<application>
<!-- Disable automatic sdk initialization. -->
<meta-data
android:name="com.yandex.mobile.ads.AUTOMATIC_SDK_INITIALIZATION"
android:value="false" />
</application>
</manifest>
Важно
자동 초기화를 꺼도 YandexAds.initialize()를 수동으로 호출하지 않았다면 첫 광고 요청 전에 SDK가 초기화됩니다. 초기화 로그에 대한 자세한 내용은 아래 SDK 통합 테스트를 참고하세요.
초기화 코드는 Application 클래스의 onCreate 메서드에 넣는 것을 권장합니다. SDK를 초기화하기 전에 개인정보 처리방침을 설정하세요.
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// Configure the user data privacy policy before sdk init
YandexAds.initialize(this) {
// Now you can use ads
}
}
}
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Configure the user data privacy policy before sdk init
YandexAds.initialize(this, () -> {
// Now you can use ads
});
}
}
SDK 통합 테스트
SDK에 내장된 통합 테스트 도구를 사용하여 라이브러리 통합에 성공했는지 확인할 수 있습니다.
이 작업을 수행하려면, 종속성을 추가하고 SDK를 초기화한 후 프로젝트를 다시 빌드하세요.
Logcat을 열고 “Yandex Ads” 키워드를 검색하세요.
명령어로 통합 상태 로그가 출력됩니다. 통합 성공 여부를 나타내는 메시지를 확인할 수 있습니다. 문제가 있는 경우, 자세한 설명과 함께 문제를 해결하는 단계가 표시됩니다. 샘플 명령어 출력:
mobileads$ adb logcat | grep 'Yandex Ads' -i
[Yandex Ads] I Yandex Mobile Ads 8.0.0 integrated successfully
[Yandex Ads] I Yandex Mobile Ads 8.0.0 initialized successfully
로그에는 두 개의 개별 이벤트가 표시됩니다.
integrated successfully: 통합 확인(SDK가 아직 초기화되지 않음).initialized successfully: SDK 초기화 성공.
오래된 라이브러리 버전 표시기
Примечание
표시기는 디버그 모드에서만 사용할 수 있습니다.
Yandex Mobile Ads SDK 버전이 오래된 경우 라이브러리 초기화 시 또는 광고 로드 시 토스트 형태의 표시기가 나타납니다.
문제 세부 정보는 앱 로그에도 기록됩니다.
로그 예시:
***************************************************************************************
* The integrated version of the Yandex Mobile Ads SDK is outdated. *
* Please update com.yandex.android:mobileads to the latest version. *
* Learn more about the latest version of the SDK here: *
* https://yandex.com/dev/mobile-ads/doc/android/quick-start/android-ads-component.html *
* Changelog: https://yandex.com/dev/mobile-ads/doc/intro/changelog-android.html *
***************************************************************************************
표시를 끄려면 enableDebugErrorIndicator 메서드를 false로 호출합니다.
YandexAds.enableDebugErrorIndicator(false)
Совет
오래된 SDK 버전 표시기에 대한 검사를 끄는 것은 권장하지 않습니다. 광고 수익을 극대화하려면 최신 라이브러리 버전을 사용하세요.
최신 SDK 버전에 대한 Lint 검사
앱 릴리스 빌드 시 최신 SDK 버전 사용 여부를 확인하는 lint 검사가 실행됩니다.
Lint 검사는 lintVitalRelease Gradle 작업 호출로 트리거되며, 광고 SDK 버전이 오래되면 작업이 실패합니다.
더 새로운 SDK 버전이 있으면 앱 빌드가 진행되지 않습니다.
최신 SDK 버전 검사를 끄려면 Gradle 코드로 lint 검사를 막는 표준 방법을 사용합니다(자세한 내용은 Android 문서 참고).
android {
lintOptions {
disable 'MobileAdsSdkOutdatedVersion'
}
}
다음 단계
Yandex Mobile Ads SDK 통합이 완료되면 광고 형식 구현으로 진행할 수 있습니다.
앱에 가장 잘 맞는 다음 광고 유형 중 하나를 선택하세요.
|
광고 형식 |
Yandex Advertising Network |
Adfox |
설명 |
|
|
|
적응형 인라인 배너는 장치에서 광고 크기를 최적화하여 최대 효율을 제공하는 유연한 배너 광고 형식입니다. 배너 높이는 자동으로 선택되며 기기 화면 높이까지 올라갈 수 있습니다. 일반적으로 피드 기반 앱이나 사용자의 시선을 주로 광고에 두어도 되는 맥락에서 이 형식을 사용합니다. |
|
|
|
|
앱 화면의 상단 또는 하단에 배치되어 자동으로 업데이트되는 작은 광고입니다. 주요 앱 콘텐츠와 겹치지 않으며 게임 앱에서 자주 사용됩니다. 스티키 배너 높이는 자동으로 결정되며 기기 화면 크기에 맞추되 화면 높이의 15%를 넘지 않습니다. |
|
|
|
|
전면 광고는 게임 레벨 전환이나 목표 작업 완료와 같은 자연스러운 중단 시 앱 콘텐츠 내에 삽입되는 전체 화면 광고 형식입니다. 사용자가 전면 광고를 볼 때는 광고에만 집중하므로 이런 노출의 단가가 더 높습니다. 이 형식을 과용하면 사용자 경험이 나빠질 수 있습니다. |
|
|
|
|
보상형 광고는 사용자가 광고를 시청하면 보상을 받는 인기 있는 전체 화면 광고 형식입니다. 이 광고 유형의 표시는 예를 들어 게임에서 보너스나 추가 생명을 받으려는 사용자에 의해 활성화됩니다. 사용자 동기 부여가 높기 때문에 무료 앱에서 가장 인기 있고 수익성이 높은 광고 형식입니다. |
|
|
|
|
네이티브 광고는 앱 측에서 레이아웃을 정의할 수 있는 광고 유형입니다. 이 기능을 통해 앱 디자인의 특성을 고려하여 광고의 시각적 스타일과 배치를 변경할 수 있습니다. 광고 렌더링은 광고 성능과 폼질을 높이는 네이티브 플랫폼 도구로 수행됩니다. 네이티브 광고 레이아웃은 템플릿으로 설정하거나 수동으로 구성할 수 있습니다. 템플릿을 사용하면 광고 레이아웃이 SDK 쪽에서 설정됩니다. |
|
|
|
|
앱 실행 광고는 앱 로드 화면을 수익화하기 위한 특별한 광고 형식입니다. 이러한 광고는 언제든지 종료할 수 있으며, 사용자가 앱을 전면으로 가져올 때, 즉 앱을 시작할 때 또는 백그라운드에서 돌아올 때 제공되도록 설계되었습니다. |
|
|
|
|
광고 피드는 일련의 광고로 구성된 단위입니다. 피드는 앱의 주요 콘텐츠로 추가되거나 기존 콘텐츠 이후에 표시될 수 있습니다. 피드에는 수십 개의 광고가 포함되어 순차적으로 로드됩니다(여러 광고가 한 번에 로드됨). |
|
|
|
|
InStream은 동영상 콘텐츠가 재생되는 동안 광고를 제공하여 앱을 수익화할 수 있는 광고 형식입니다. InStream 광고는 여러 동영상 블록이 포함된 시나리오로 구성됩니다. InStream 시나리오의 동영상 단위 유형은 메인 동영상 콘텐츠와 관련하여 동영상 광고가 재생되는 방식을 결정합니다. |

