배너 광고는 기기 화면의 상단이나 하단에서 앱의 레이아웃 안에 게재됩니다. 사용자가 앱과 상호작용하는 동안 화면에 계속 표시되며 일정 시간이 지나면 자동으로 새로고침할 수 있습니다. 모바일 광고를 처음 시작하는 경우 이 형식부터 이용해 보시기 바랍니다. 우수사례
이 가이드에서는AdMob 의 배너 광고를 Android 앱에 통합하는 방법을 설명합니다. 코드 스니펫과 안내 외에도 배너 크기 조정에 대한 정보와 추가 리소스에 대한 링크가 나와 있습니다.
기본 요건
- 시작 가이드를 모두 읽어보세요.
레이아웃에 AdView 추가
배너 광고를 게재하려면
먼저 광고를 게재할 Activity
또는 Fragment
레이아웃에
AdView
를
넣으세요. 가장 쉬운 방법은 해당 XML 레이아웃 파일에
넣는 것입니다. 다음은 활동의 AdView
를
보여주는 예입니다.
# main_activity.xml
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
다음 필수 속성을 참고하세요.
ads:adSize
: 사용할 광고 크기로 설정합니다. 상수로 정의된 표준 크기를 사용하지 않으려면 맞춤 크기를 설정하면 됩니다. 자세한 내용은 배너 크기 섹션을 참고하세요.ads:adUnitId
: 앱에서 광고를 표시할 광고 단위에 지정할 고유 식별자로 설정합니다. 여러 활동에서 배너 광고를 게재하려면 활동별로 광고 단위가 필요합니다.
프로그래매틱 방식으로 AdView
를 만들 수도 있습니다.
Java
AdView adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.
Kotlin
val adView = AdView(this)
adView.adSize = AdSize.BANNER
adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.
항상 테스트 광고로 테스트
앱을 빌드하고 테스트할 때는 실제 프로덕션 광고가 아닌 테스트 광고를 사용해야 합니다. 이렇게 하지 않으면 계정이 정지될 수 있습니다.
테스트 광고를 로드하는 가장 쉬운 방법은 Android 배너 광고 테스트 전용 광고 단위 ID를 사용하는 것입니다.
ca-app-pub-3940256099942544/6300978111
이 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트 및 디버깅 중에 앱에서 사용할 수 있습니다. 앱을 게시하기 전에 이 ID를 자체 광고 단위 ID로 바꿔야 합니다.
모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 테스트 광고를 참고하세요.
광고 로드
AdView 가 배치된 후 다음 단계는 광고를 로드하는 것입니다. AdView
클래스의
loadAd()
메서드를 사용하면 됩니다. 단일 광고 요청에 대한
타겟팅 정보 등의 런타임 정보가 포함된
AdRequest
매개변수가 필요합니다.
다음은 Activity
의 onCreate()
메서드에서 광고를 로드하는 방법을 보여주는
예입니다.
MainActivity (발췌)
Java
package ...
import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
public class MainActivity extends AppCompatActivity {
private AdView mAdView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
}
Kotlin
package ...
import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView
class MainActivity : AppCompatActivity() {
lateinit var mAdView : AdView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) {}
mAdView = findViewById(R.id.adView)
val adRequest = AdRequest.Builder().build()
mAdView.loadAd(adRequest)
}
}
광고 단위가 새로고침되도록 이미 설정하였다면 광고가 로드되지 않더라도 다른 광고를 명시적으로 요청하지 않아도 됩니다. Google 모바일 광고 SDK는 AdMob 웹 인터페이스에 지정된 새로고침 빈도를 사용합니다. 새로고침을 사용 설정하지 않은 경우 새 요청을 실행해야 합니다.
이제 완료됐습니다. 이제 앱에서 배너 광고를 게재할 수 있습니다.
광고 이벤트
광고의 작동 방식을 추가로 맞춤설정하려는 경우 광고의 수명 주기(예: 로드, 열기, 닫기)에서
여러 이벤트에 연결할 수 있습니다. AdListener
클래스를 통해 이러한 이벤트를 수신 대기할 수 있습니다.
AdListener
를
AdView
와 함께
사용하려면
setAdListener()
메서드를 호출하세요.
Java
mAdView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
mAdView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
AdListener
에서
재정의할 수 있는
각 메서드가 광고 수명 주기에서 발생하는 이벤트 하나에 해당됩니다.
재정의 가능한 메서드 | |
---|---|
onAdClicked() |
onAdClicked() 메서드는 광고 클릭이 기록되면 호출됩니다.
|
onAdClosed() |
onAdClosed() 메서드는 사용자가 광고의 도착 URL을 조회한 후 앱으로 돌아가면 호출됩니다. 앱에서 이 메서드를 사용해 정지된 활동을 재개하거나
상호작용 준비에 필요한 다른 작업을 처리할 수 있습니다.
Android API 데모 앱의 광고 리스너 메서드를 구현하려면 AdMob AdListener 예를 참고하세요.
|
onAdFailedToLoad() |
onAdFailedToLoad() 메서드는 매개변수를 포함하는 유일한 메서드입니다. LoadAdError 유형의 오류 매개변수는
발생한 오류를 설명합니다. 자세한 내용은
광고 로드 오류 디버깅 문서를
참고하세요.
|
onAdImpression() |
onAdImpression() 메서드는 광고 노출이 기록될 때 호출됩니다.
|
onAdLoaded() |
onAdLoaded() 메서드는
광고 로드가 완료되면 실행됩니다. 예를 들어 광고 로드가 확실하게 완료될 때까지
AdView 가
활동 또는 프래그먼트에 추가되지 않게 하려면
여기에서 확인하세요.
|
onAdOpened() |
onAdOpened()
메서드는 광고에서 화면을 가리는 오버레이를 열 때 호출됩니다.
|
배너 크기
광고를 게재하는 컨테이너의 크기가 배너보다 크거나 같아야 합니다. 컨테이너에 패딩이 있으면 컨테이너의 크기가 사실상 줄어듭니다. 컨테이너가 배너 광고에 맞지 않을 경우 배너가 표시되지 않고 로그에 다음 경고가 표시됩니다.
W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.
아래 표에는 표준 배너 크기가 나와 있습니다.
크기(dp)(WxH) | 설명 | 가용성 | AdSize 상수 |
---|---|---|---|
320x50 | 배너 | 휴대전화 및 태블릿 | BANNER |
320x100 | 대형 배너 | 휴대전화 및 태블릿 | LARGE_BANNER |
300x250 | IAB 중간 직사각형 | 휴대전화 및 태블릿 | MEDIUM_RECTANGLE |
468 x 60 | IAB 원본 크기 배너 | 태블릿 | FULL_BANNER |
728x90 | IAB 리더보드 | 태블릿 | LEADERBOARD |
제공된 너비x적응형 높이 | 적응형 배너 | 휴대전화 및 태블릿 | N/A |
화면 너비 x 32|50|90 | 스마트 배너 | 휴대전화 및 태블릿 | SMART_BANNER |
맞춤 배너 크기를 지정하려면 원하는
AdSize
를 다음과 같이 설정합니다.
Java
AdSize adSize = new AdSize(300, 50);
Kotlin
val adSize = AdSize(300, 50)
동영상 광고의 하드웨어 가속
배너 광고 뷰에 동영상 광고가 게재되려면 하드웨어 가속을 사용 설정해야 합니다.
하드웨어 가속은 기본적으로 사용 설정되어 있지만 일부 앱에서는 사용 중지할 수 있습니다. 앱에 적용되는 경우 광고를 사용하는 Activity
클래스에 하드웨어 가속을 사용 설정하는 것이 좋습니다.
하드웨어 가속 사용 설정
하드웨어 가속이 전역적으로 사용 설정된 상태에서 앱이 제대로 작동하지 않으면 개별 활동에 맞게 제어할 수 있습니다. 하드웨어 가속을 사용하거나 사용 중지하려면 AndroidManifest.xml
의 <application>
및 <activity>
요소에 android:hardwareAccelerated
속성을 사용하면 됩니다. 다음 예에서는 전체 앱에 하드웨어 가속을 사용 설정하고 하나의 활동에는 하드웨어 가속을 사용 중지합니다.
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
하드웨어 가속을 제어하는 옵션에 관한 자세한 내용은 하드웨어 가속 가이드를 참고하세요. 활동이 중지된 경우에는 개별 광고 보기에서 하드웨어 가속을 사용할 수 없으므로 활동 자체에 하드웨어 가속이 사용 설정되어 있어야 합니다.
추가 리소스
GitHub의 예
Mobile Ads Garage 동영상 튜토리얼
성공사례
다음 단계
다음 주제를 살펴보세요.