개요
전면 광고란
전면 광고는 앱의 인터페이스를 덮는 전체 화면 광고입니다. 일반적으로 활동 간 또는 게임 레벨 사이의 일시 중지 동안과 같이 앱 흐름의 자연스러운 전환 지점에 표시됩니다. 일부 전면 광고는 보상형 광고에 해당합니다.
보상형 광고란
보상형 광고는 사용자에게 광고 시청 및 참여의 대가로 가치 있는 무언가를 제공하여 훌륭한 사용자 경험을 제공합니다. 제공되는 것은 일반적으로 게임의 추가 생명, 가상 화폐 또는 퍼즐의 힌트와 같은 앱 내의 보상입니다(보상의 성격과 금액 결정 가능). 앱 사용 중 중단 지점에서 자연스럽게 표시되는 보상형 동영상 광고는 특히 Vungle의 권장 사항에 따라 건너뛸 수 없도록 만드는 경우 높은 수익을 제공합니다.
참고: 경우에 따라 보상형 광고는 인센티브 광고로 불리기도 합니다. 두 용어는 항상 같은 종류의 광고를 나타냅니다. Vungle은 '보상'이라는 용어를 더 선호하지만, SDK 코드와 보고 API에서는 '인센티브'라는 용어를 사용합니다.
보상형 광고를 통합하는 방법에는 인앱 보상(권장, 이하 설명 제공) 또는 서버 간 콜백(해당 주제에 관한 당사 FAQ 문서 참조)의 두 가지가 있습니다. 인앱 보상을 사용하면, 사용자가 성공적으로 광고 시청을 완료하거나 다운로드 버튼을 클릭하였을 때 앱을 통해 직접 보상할 수 있습니다. 이 접근 방식의 주요 이점은 구현이 간단하다는 것입니다. 빠르게 무언가를 모색하거나 반복 재생 어택에 관심이 없다면 해당 방법을 이용해야 합니다.
Vungle은 이제 동적 템플릿 광고로 다양한 광고 포멧을 제공합니다. 비디오 재생 후에 끝내기 카드가 표시되는 기존 광고 포멧과 달리 Vungle은 비디오 재생 중에 클릭 유도 문안 (CTA) 버튼을 사용할 수 있는 템플릿을 제공합니다. 비디오 광고를 끝까지 시청한 사용자 및 버튼을 클릭한 사용자에게 보상을 제공해야 합니다.
1단계. 기본 통합 완료
Android 또는 Amazon 앱에 전면 광고를 통합하려면 먼저 기본 통합 문서의 지침을 따릅니다. 이 문서에는 추가 정보가 포함되어 있으며 기본 통합을 완료했다고 가정하고 설명을 진행합니다.
2단계. 이벤트 리스너 구현
이제 광고 로드 이벤트용 LoadAdCallback
및 광고 재생 이벤트용 PlayAdCallback
을(를) 구현하거나, loadAd
및playAd
을(를) 호출하는 인라인 콜백을 구현하여 모든 이벤트에 일반 콜백을 사용할 수 있습니다.
LoadAdCallback
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() {
@Override
public void onAdLoad(String id) {
// Ad has been successfully loaded for the placement
}
@Override
public void onError(String id, VungleException exception) {
// Ad has failed to load for the placement
}
};
// 6.4.x & below
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() {
@Override
public void onAdLoad(String id) {
// Ad has been successfully loaded for the placement
}
@Override
public void onError(String id, Throwable throwable) {
// Ad has failed to load for the placement
}
};
오버라이딩 가능 메서드 | 설명 |
---|---|
onAdLoad(String id) |
광고가 성공적으로 로드되고 플레이스먼트에 재생될 때 호출됩니다 |
onError(String id) |
광고를 재생하는 동안 오류가 발생하면 호출됩니다. VungleException 의 getLocalizedMessage 오류 메시지를 확인하고 getExceptionCode 을(를) 디버깅에 사용할 수 있습니다.
|
PlayAdCallback
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
@Override
public void onAdStart(String id) {
// Ad experience started
}
@Override
public void onAdEnd(String id) {
// Ad experience ended
}
@Override
public void onAdClick(String id) {
// User clicked on ad
}
@Override
public void onAdRewarded(String id) {
// User earned reward for watching an ad
}
@Override
public void onAdLeftApplication(String id) {
// User has left app during an ad experience
}
@Override
public void onError(String id, VungleException exception) {
// Ad failed to play
}
};
// 6.5.x & below
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) {
// Ad experience started
}
// Deprecated
@Override
public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) {
// Invoked when the ad experience is completed
// isCTAClicked flag indicates whether CTA download button has been triggered
// completed flag will indicate whether user has watched 80% of video or longer.
}
@Override
public void onError(String placementReferenceId, VungleException exception) {
// Ad failed to play
}
};
오버라이딩 가능 메서드 | 설명 |
---|---|
onAdStart(String id) |
광고가 성공적으로 실행되고 기기에 표시될 때 호출됩니다. |
onAdEnd(String id) |
컨트롤이 호스팅 앱으로 다시 반환되기 직전에 전체 광고 경험이 완료될 때 호출됩니다. |
onAdClick(String id) |
사용자가 동영상 광고 또는 다운로드 버튼을 클릭할 때 호출됩니다. |
onAdRewarded(String id) |
사용자가 보상형 동영상의 80%를 완료하고 보상을 받아야 할 때 호출됩니다. 사용자에 대한 보상은 해당 장소에서 이루어져야 하며 오직 보상형 플레이스먼트에 대해서만 트리거됩니다. |
onAdLeftApplication(String id) |
광고에 관련된 스토어 페이지를 여는 것과 같이 광고 경험이 완료되기 전에 사용자가 앱을 떠날 때 호출됩니다. |
onAdError(String id, VungleException exception) |
광고를 재생하는 동안 오류가 발생하면 호출됩니다. VungleException 의 getLocalizedMessage 오류 메시지를 확인하고 getExceptionCode 을(를) 디버깅에 사용할 수 있습니다.
|
3단계. 광고 로드 및 재생
플레이스먼트에 광고 로드
LoadAdCallback
은(는) 할당된 호출의 로드 상태에 대한 알림을 받습니다. SDK는 이 콜백을 참조만 하며 어디에도 저장하지 않습니다. 콜백을 적절하게 관리하는 것은 호출자의 책임입니다.
public static void loadAd(@NonNull final String id, @Nullable LoadAdCallback callback)
// Load Ad Implementation if (Vungle.isInitialized()) { Vungle.loadAd("PLACEMENT_ID", new LoadAdCallback() { @Override public void onAdLoad(String placementReferenceId) { } @Override public void onError(String placementReferenceId, VungleException exception) { } }); }
플레이스먼트의 광고 가용성 확인
메서드를 호출하기 전에 정적 메서드 canPlayAdmethod
를 사용하여 playAd
해당 플레이스먼트에 대해 재생할 수 있는 광고가 있는지 확인합니다.
public static boolean canPlayAd(@NonNull String id)
광고 재생
광고를 재생하려면 플레이스먼트 참조 ID, AdConfig
옵션(사용되지 않는 경우 null) 및 PlayAdCallback
이벤트 리스너가 포함된 playAd
메서드를 호출하여 광고가 재생되는 동안 성공 또는 오류에 대한 알림을 수신합니다.
public static void playAd(@NonNull final String id, final AdConfig settings, @Nullable final PlayAdCallback listener)
playAd
메서드를 호출하기 전에 canPlayAd
메서드를 호출하여 광고 가용성을 항상 확인해야 합니다. playAd
이(가) 반복적으로 잇달아 호출되는 경우 광고가 적절하게 렌더링되지 않으므로 추가 playAd
을(를) 발행하기 전에 초기 playAd
호출의 onAdEnd
또는 onError
콜백을 수신했는지 확인해야 합니다.
if (Vungle.canPlayAd("PLACEMENT_ID")) { Vungle.playAd("PLACEMENT_ID", null, new PlayAdCallback() { @Override public void onAdStart(String placementReferenceId) { } @Override public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) { } @Override public void onError(String placementReferenceId, VungleException exception) { } }); }
4 단계. 모든 전체 화면 광고 구성 (선택)
새 adConfig
개체를 playAd
에 추가하여 재생하는 광고를 개별적으로 사용자 지정할 수 있는 옵션이 있습니다. AdConfig
개체가 null이 되는 경우, 광고가 기본 구성으로 재생될 수 있습니다. 또는 개체가 null이 아닌 경우, AdConfig
setter에서 설정을 재지정할 수도 있습니다. 다음은 AdConfig
사용 방법에 대한 예입니다.
Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);
위의 예에서는 맞춤형 구성 옵션이 포함된 adConfig
개체를 사용합니다. 다음과 같이 AdConfig
개체를 설정합니다.
AdConfig adConfig = new AdConfig(); adConfig.setAdOrientation(AdConfig.AUTO_ROTATE); adConfig.setMuted(true); Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);
다음 목록은 사용 가능한 모든 AdConfig
옵션을 보여줍니다.
옵션 |
설명 |
|
종료 광고 버튼이 표시되기 전에 뒤로 버튼이 활성화되어야 하는 경우 'true', 그렇지 않은 경우 'false'가 나타납니다 |
|
동영상 광고가 자동 회전하도록 되어 있는 경우 AdConfig.AUTO_ROTATE , 동영상 광고 방향을 따르도록 되어 있는 경우 AdConfig.LANDSCAPE 또는 AdConfig.PORTRAIT
|
|
동영상이 주변의 어플리케이션의 설정 중 일치하는 오디오 설정으로 시작되어야 하는 경우 'false', 음소거로 시작되어야 하는 경우 'true' |
|
동일한 세션에서 재생되는 광고의 수를 추적하려면 서수의 정수 값을 사용합니다 |
참고: 여러 광고에 대해 동일한 AdConfig
개체를 사용할 수 있습니다.
5단계. 보상형 광고 사용자 정의 (선택)
팝업 메시지 대화 상자
보상형 광고에 대한 팝업 메시지 대화 상자는 setIncentivizedFields
메서드로 구성 가능합니다.
public static void setIncentivizedFields(@Nullable String userID, @Nullable String title, @Nullable String body, @Nullable String keepWatching, @Nullable String close)
보상 고려 사항
사용자 보상에 기준은 없습니다. 결정은 게임 경제에 따라 좌우됩니다. 개발자는 동영상 시청 옵션을 매력적으로 만들 수 있을 정도이면서도, 보상이 IAP 구매를 대체하지는 않을 정도로 사용자에게 보상해야 합니다. 사용자당 지급되는 보상의 수를 제한하기 위해 보상형 동영상에 일일 시청 횟수 제한을 두는 것도 중요합니다.
다음은 적당한 보상을 결정할 때 자문해 보아야 할 몇 가지 질문입니다.
-
연화와 경화 중 사용자에게 더 가치 있는 것은 무엇입니까?
연화는 보상으로 제공하기에 더 저렴하긴 하지만 즉시 사용할 수 있기 때문에, 사용자가 더 적극적으로 동영상을 시청하려는 태도를 보일 수 있습니다. 또한 사용자에게 새로운 항목을 소개하는 방법으로 보상형 동영상을 사용하여 추후 IAP를 구매하도록 장려할 수 있습니다. -
보상이 사용자에게 얼마나 매력적입니까?
보상이 사용자가 실제로 필요로 하거나 원하는 것이면서 쉽게 얻을 수 없는 것인지 확인해보는 것이 좋습니다. -
보상을 가장 일반적인 IAP와 비교하면 어떻습니까?
보상이 IAP를 얻기 위한 디딤돌이 되거나 사용자가 원할 만한 것이지만 절대 구매하지 않는 것이기를 바랄 것입니다. -
보상을 사용자가 게임을 통해 평균적으로 얻는 것과 비교하면 어떻습니까?
사용자가 하나의 레벨을 플레이하여 동일한 보상을 획득하게 된다면 사용자는 15초의 시간을 투자해 보상을 받을 가치가 없다고 생각할 수 있습니다. -
사용자당 일일 보상 수를 제한해야 합니까?
네. 일일 시청 제한을 설정하면 사용자가 획득할 수 있는 무료 아이템/코인 수를 제어하는 데 도움이 됩니다.
Vungle 계정 관리 팀이 도와드리겠습니다. monetize@vungle.com으로 이메일을 보내주시기 바랍니다.