개요
전면 광고란
전면 광고는 앱의 인터페이스를 덮는 전체 화면 광고입니다. 일반적으로 활동 간 또는 게임 레벨 사이의 일시 중지 동안과 같이 앱 흐름의 자연스러운 전환 지점에 표시됩니다. 보상형 광고인 전면 광고도 있습니다.
보상형 광고란
보상형 광고는 사용자에게 광고 시청 및 참여의 대가로 가치 있는 무언가를 제공하여 훌륭한 사용자 경험을 제공합니다. 제공되는 것은 일반적으로 게임의 추가 생명, 가상 화폐 또는 퍼즐의 힌트와 같은 앱 내의 보상입니다(보상의 성격과 금액 결정 가능). 앱 사용 중 중단 지점에서 자연스럽게 표시되는 보상형 동영상 광고는 특히 Vungle의 권장 사항에 따라 건너뛸 수 없도록 만드는 경우 높은 수익을 제공합니다.
참고: 경우에 따라 보상형 광고는 인센티브 광고로 불리기도 합니다. 두 용어는 항상 같은 종류의 광고를 나타냅니다. Vungle은 '보상'이라는 용어를 더 선호하지만, SDK 코드와 보고 API에서는 '인센티브'라는 용어를 사용합니다.
보상형 광고를 통합하는 방법에는 인앱 보상(권장, 이하 설명 제공) 또는 서버 간 콜백(해당 주제에 관한 당사 FAQ 문서 참조)의 두 가지가 있습니다. 인앱 보상을 사용하면, 사용자가 성공적으로 광고 시청을 완료하거나 다운로드 버튼을 클릭하였을 때 앱을 통해 직접 보상할 수 있습니다. 이 접근 방식의 주요 이점은 구현이 간단하다는 것입니다. 빠르게 무언가를 찾고 있거나, 반복 재생 어택에 관심이 없다면 해당 방법을 이용해야 합니다.
Vungle은 이제 동적 템플릿 광고로 다양한 광고 포멧을 제공합니다. 비디오 재생 후에 끝내기 카드가 표시되는 기존 광고 포멧과 달리 Vungle은 비디오 재생 중에 클릭 유도 문안 (CTA) 버튼을 사용할 수 있는 템플릿을 제공합니다. 비디오 광고를 끝까지 시청한 사용자 및 버튼을 클릭한 사용자에게 보상을 제공해야 합니다.
1단계. 기본 플러그인 통합 완료
Unity 앱에 전면 광고 또는 보상형 광고를 통합하려면 먼저 기본 플러그인 통합 문서의 지침을 따릅니다. 이 문서에는 추가 정보가 포함되어 있으며 기본 통합을 완료했다고 가정하고 설명을 진행합니다.
2단계. 이벤트 핸들러 구현(선택 사항)
광고 프레젠테이션 관련 5개의 Vungle SDK 이벤트 모두에 대해 이벤트 핸들러를 설정할 수 있습니다.
- 다음 이벤트는 SDK가 동영상 광고를 재생하기 시작하면 발생합니다. 게임 플레이, 음향 효과, 애니메이션 등을 일시 중지하기에 좋은 위치입니다.
public static event Action onAdStartedEvent;
- 다음 이벤트는 SDK가 동영상 광고를 종료하면 발생합니다. 사용자에게 보상을 제공하고 게임 플레이, 음향 효과, 애니메이션 등을 다시 재생하기에 좋은 위치입니다.
public static event Action<string, AdFinishedEventArgs> onAdFinishedEvent;
AdFinishedEventArgs
클래스는 광고 재생 결과의 확인을 위한 다음 속성으로 구성되어 있습니다.public class AdFinishedEventArgs : EventArgs { //Represents a BOOL whether or not the user clicked the download button. public bool WasCallToActionClicked{ get; set;} //Represents a bool whether or not the video can be considered a completed view. public bool IsCompletedView{ get; set;} }
- SDK가 광고 가용성 상태를 변경하면 다음 이벤트가 발생합니다.
isAdPlayable
부울은 특정placementID
의 새로운 재생 가능성을 나타냅니다.public static event Action<string, bool> adPlayableEvent;
- SDK가 초기화되면 다음 이벤트가 발생합니다.
public static event Action onInitializeEvent;
샘플 코드:
void initializeEventHandlers()
{
Vungle.onAdStartedEvent += (placementID) => {
DebugLog ("Ad " + placementID + " is starting! Pause your game animation or sound here.");
};
Vungle.onAdFinishedEvent += (placementID, args) => {
DebugLog ("Ad finished - placementID " + placementID + ", was call to action clicked:" + args.WasCallToActionClicked + ", is completed view:"
+ args.IsCompletedView);
};
Vungle.adPlayableEvent += (placementID, adPlayable) => {
DebugLog ("Ad's playable state has been changed! placementID " + placementID + ". Now: " + adPlayable);
};
Vungle.onInitializeEvent += () => {
adInited = true;
DebugLog ("SDK initialized");
};
}
3단계. 광고 로드 및 재생
플레이스먼트에 광고 로드
모든 플레이스먼트의 경우 loadAd()
메서드를 호출하여 광고를 로드합니다.
public static void loadAd(string placementID)
올바른 플랫폼에 연결된 placementID
를 사용합니다.
샘플 코드:
string placementID;
#if UNITY_IPHONE
placementID = "ios_placement_id";
#elif UNITY_ANDROID
placementID = "android_placement_id";
#elif UNITY_WSA_10_0 || UNITY_WINRT_8_1 || UNITY_METRO
placementID = "windows_placement_id";
#endif
Vungle.loadAd(placementID);
플레이스먼트의 광고 가용성 확인
SDK가 플레이스먼트에 광고를 캐시하고 나면 다음과 같은 이벤트가 호출됩니다.
public static event Action<string, bool> adPlayableEvent;
샘플 코드:
Vungle.adPlayableEvent += (placementID, adPlayable) => {
if(placementID == "ios_placement_id") {
playButtonPlacement1.enabled = adPlayable;
}
};
참고: 캐시에 최적화된 플레이스먼트의 경우 광고를 사용할 수 있는 경우에만 이 이벤트를 호출합니다. 최적화된 플레이스먼트는 추가 작업 없이 자동으로 채우기를 시도합니다. 다른 모든 플레이스먼트의 경우 '로드 실패'(이 경우 adPlayable
코드가 false
를 반환함)인 경우에도 이 이벤트를 호출합니다.
다음 메서드를 사용하여 플레이스먼트의 광고 가용성을 확인할 수도 있습니다.
public static bool isAdvertAvailable(string placementID);
광고 재생
중요: 위에서 설명한 adPlayableEvent
함수가 'true'를 반환할 때까지 광고를 재생하지 마십시오. adPlayableEvent
함수가 'true'로 반환되기 전에 광고를 재생하면 광고가 로드되는 동안 사용자 경험에 부정적인 영향을 미칩니다. Android에 배치하는 경우 사용 가능한 광고가 없으면 adPlayableEvent
코드가 'false'를 반환하지 않으므로 대신 isAdvertAvailable()
코드에서 반환된 값을 사용하여 광고가 사용 가능한지 확인하십시오.
플레이스먼트에 사용 가능한 광고가 있는 경우, 다음과 같은 방법으로 광고를 재생할 수 있습니다.
public static void playAd(string placementID);
샘플 코드:
Vungle.playAd(placementID);