목차
시작하기 전에
- 최신 Corona 빌드를 통합에 사용할 것을 권장합니다. Corona 일일 빌드 2017.3154부터 Vungle Android 및 iOS SDK v.5.3.0을 사용할 수 있습니다.
- iOS용 Vungle Corona 플러그인은 iOS 8 이상을 지원하며 Corona SDK로 제한됩니다.
- Android용 Vungle Corona 플러그인은 Android 4.0.3(Ice Cream Sandwich - API version 15) 이상을 지원하며 Corona SDK로 제한됩니다.
- Android용 Vungle Corona 플러그인은 Amazon OS 5.4 이상을 지원하며 일일 빌드 2017.3124부터 추가되었습니다.
- 샘플 앱 다운로드: https://github.com/Vungle/Corona-Plugin/tree/sdk5.
1단계: build.settings 업데이트
플러그인 표에 다음 항목을 추가합니다. build.settings
. 항목이 추가되면 SDK가 서버에 연결하여 빌드 단계에서 Vungle SDK 5+ 플러그인을 통합합니다.
plugins =
{
["plugin.vungle"] = {
publisherId = "com.vungle",
},
..
}
Android에만 적용되는 사항입니다.
Android인 경우, 이 플러그인을 사용하면 다음의 권한이 자동으로 추가됩니다.
androidPermissions = {
"android.permission.INTERNET",
"android.permission.WRITE_EXTERNAL_STORAGE",
"android.permission.ACCESS_NETWORK_STATE"
},
Google Play 서비스를 추가한 후 AndroidManifest에 아래 권한을 추가합니다. Vungle은 이 정보를 사용하여 사용자에게 최적화된 최상의 광고를 제공합니다.
androidPermissions = {
"android.permission.ACCESS_COARSE_LOCATION",
"android.permission.ACCESS_FINE_LOCATION" /
},
2단계: 코드 추가
SDK 초기화
참고: 앱별로 기본 광고위치가 자동으로 생성됩니다. 이 초기화 단계에서 광고위치 기능을 사용하지 않더라도 반드시 광고위치 참조 ID를 제공해야 합니다. 광고위치를 여러 개 만드는 경우, 참조 ID를 모두 제공합니다.
SDK가 자동 캐시된 광고위치의 광고 자산을 다운로드하는데 충분한 시간을 사용할 수 있도록 앱이 실행되는 즉시 SDK를 초기화하는 것이 좋습니다. SDK를 초기화하려면 다음이 필요합니다.
- Vungle 광고 가져오기
- 앱 ID
- 앱에서 사용할 모든 광고위치의 참조 ID
이 ID는 Vungle 대시보드에서 찾을 수 있습니다(광고위치 설정 및 보고 참조).
샘플 코드:
local ads = require "plugin.vungle"
platform = system.getInfo( "platformName" )
placements = {}
if (platform == "Android") then
appData = {
appID="YOUR_ANDROID_APP_ID",
placements={“PLMT_DEFAULT","PLMT_1","PLMT_2"}
}
else
appData = {
appID="YOUR_IOS_APP_ID",
placements={“PLMT_DEFAULT","PLMT_1","PLMT_2"}
}
-- vungleAdListner is optional
ads.init("vungle", appData.appID .. "," .. appData.placements[1] .. "," .. appData.placements[2] .. "," .. appData.placements[3] [, vungleAdListener])
SDK가 성공적으로 초기화되면 다음과 같은 이벤트가 호출됩니다.
event.type == "adAvailable"
Vungle SDK가 초기화된 후에는 Vungle 대시보드에서 자동 캐시로 선택한 광고위치에 광고가 자동으로 캐시됩니다. 조회 수가 가장 높은 광고위치를 자동 캐시로 설정하는 것이 좋습니다.
광고가 성공적으로 캐시되면 자동 캐시된 광고위치와 일치하는 광고위치 참조 ID로 adAvailable
이벤트가 호출됩니다. 자동 캐시된 광고위치의 경우 광고 가용성이 true에서 false로 변경되거나 false에서 true로 변경된 경우에만 이 메서드가 호출됩니다. SDK는 자동 캐시된 광고위치에 대한 광고를 계속 요청합니다. 다른 광고위치에서는 "로드 실패"(adAvailable
가 '아니오'를 반환)하는 경우에 이 콜백 메서드가 호출됩니다.
광고위치에 광고 로드
자동 캐시된 광고위치 외의 다른 광고위치에는 ads.load()
메서드를 호출하여 광고를 로드합니다. 이는 광고위치 참조 ID 문자열을 인수로 사용하고, ads.load()
이 발행되고 해당 광고위치에 광고를 사용할 수 없는 경우에만 특정 광고위치에 광고를 로드하려고 시도합니다.
ads.load( "PLMT_1” )
참고: 자동 캐시된 광고는 사전 캐시된 광고를 재생한 직후에 로드되기 때문에 이 메서드는 자동 캐시된 광고가 아닌 광고위치에만 사용됩니다.
광고위치에 광고 재생
광고 자산이 다운로드될 때까지 충분히 기다렸다가 ads.show()
을 호출하여 광고를 재생할 수 있습니다. 광고를 재생하기 전에 event.adPlayble
를 호출하여 이 광고위치에 사용할 수 있는 광고가 있는지 확인해야 합니다.
샘플 코드:
if (event.placementID == appData.placements[1]) then
if ( event.adPlayable == true ) then
ads.show( "PLMT_DEFAULT")
end
end
이벤트 취급
초기화를 하기 전에 리스너를 설정하여 선택적 이벤트 리스너를 ads.init()
에 전달할 수 있습니다. 다음은 사용 가능한 이벤트 리스너 목록입니다.
- adStart
유형: adStart
placementID: 광고위치 참조 ID
isError: 광고를 재생하지 못한 경우 true, 광고 재생을 시작한 경우
- adLog
유형: adLog
메시지: 광고 액티비티 메시지
- adInitialize
유형: adInitialize
- adAvailable
유형: adAvailable
placementID: 광고위치 참조 ID
isAdPlayable: 재생 가능한 광고가 있으면 true, 그렇지 않으면 false
- adEnd
유형: adEnd
placementID: 광고위치 참조 ID
didDownload: 사용자가 다운로드 버튼을 클릭한 경우 true, 그렇지 않으면 false
completedView: 사용자가 비디오를 80% 이상 시청한 경우 true, 그렇지 않으면 false
- vungleSDKlog
유형: vungleSDKlog
메시지: SDK 이벤트 메시지
샘플 코드:
local function vungleAdListener( event )
if ( event.type == "adStart" and not event.isError ) then
-- adStart event is called and ad will play
end
if ( event.type == "adStart" and event.isError ) then
-- Ad has not finished caching and will not play
end
if ( event.type == "adLog") then
-- adLog event is called to pass ad activity information
end
if ( event.type == "adInitialize") then
-- adInitilizaed is called when placement has successfully initialized
end
if ( event.type == "adAvailable" ) then
-- adAvailable is called when playablility changes to/from true/false
-- Usage example: setting a flag to true when download completes
-- Check event.placementID and event.isAdPlayable to set a flag to true
-- Then check this flag later in your app and play an ad when it is true
end
if ( event.type == "adEnd" ) then
-- adEnd is called when the end card is closed and and control is return to the hosting app
end
if ( event.type == "vungleSDKlog" ) then
-- vungleSDKlog is called when logging event from SDK takes place
end
end
사용자 정의 옵션
ads.show()
방법을 통해 옵션 딕셔너리를 수락하여 광고 재생 경험을 사용자 지정할 수도 있습니다.
키 |
밸류 |
설명 |
alertTitle alertText alertContinue 광고위치 |
스트링 |
인센티브 동영상이 완료되기 전에 닫을 때 사용자에게 표시되는 메시지를 사용자 지정할 수 있습니다. (경우에 따라 보상 광고가 인센티브화 광고로 불리기도 합니다. 두 용어는 항상 같은 종류의 광고를 나타냅니다. SDK 코드와 보고 API에서는 '인센티브'라는 용어를 사용합니다. 참고: 이 설정은 표준 Vungle 광고에만 적용됩니다. 동적 템플릿 광고에는 대시보드에서 동일한 사용자 정의 옵션을 사용할 수 있습니다. |
isAutoRotation |
부울 |
Android에서는 true(기본)인 경우, 비디오 광고가 장치가 놓인 방향으로 자동으로 회전합니다. false인 경우, 해당 광고에 설정된 방향을 적용합니다. iOS의 경우, 아래에서 방향 전환 키를 참조합니다. |
isSoundEnabled |
부울 |
true인 경우(기본), 비디오 광고를 재생하는 동안 장치의 소리 설정에 따라 사운드를 사용할 수 있습니다. false인 경우, 비디오 재생이 무음 상태로 시작됩니다. 재생되는 중에 사용자가 음향을 끄거나 음소거 상태를 해제할 수 있습니다. |
immersive |
부울 |
Android에 한해, KitKat+ 기종에서 몰입형 모드를 사용하거나 중지합니다. |
large |
부울 |
iOS에 한해, 음소거 또는 닫기 등의 광고 기능을 제어하는 버튼을 더 크게 표시합니다. |
orientation |
Integer |
iOS에 한해, 가로 방향은 4, 세로 방향은 0, 또는 자동 회전하려면 5로 설정합니다. |
샘플 코드:
if (platform == "Android") then
options = {
placementId = placements[i],
isAutoRotation = isAutoRotate,
immersive = isImmersive,
isSoundEnabled = not isMuted
}
else
options = {
placementId = placements[i],
large = large.isOn,
isSoundEnabled = not muted.isOn
}
end
if (not isempty(alertTitle.text)) then
options.alertTitle = alertTitle.text
end
if (not isempty(alertText.text)) then
options.alertText = alertText.text
end
if (not isempty(alertClose.text)) then
options.alertClose = alertClose.text
end
if (not isempty(alertContinue.text)) then
options.alertContinue = alertContinue.text
end
if (not isempty(placement.text)) then
options.placement = placement.text
end
ads.show(options)
댓글