Vungle SDK v.5 - Corona 시작하기

목차

시작하기 전에

  • 통합에는 최신 Corona 빌드를 사용하는 것이 좋습니다. Vungle Android 및 iOS SDK v. 5.3.2은 Corona 일일 빌드 2017.3179부터 사용할 수 있습니다.
  • 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 Services를 추가한 후 AndroidManifest에 아래 권한을 추가합니다. Vungle은 이 정보를 사용하여 사용자에게 최적화된 최상의 광고를 제공합니다.

androidPermissions = { "android.permission.ACCESS_COARSE_LOCATION", "android.permission.ACCESS_FINE_LOCATION" / }, 

중요: Corona Enterprise로 개발하는 경우 통합을 성공적으로 완료하려면 Android Support Library v4를 포함해야 합니다.

2단계: 코드 추가

SDK 초기화

참고: 앱별로 기본 플레이스먼트가 자동으로 생성됩니다. 이 초기화 단계에서 플레이스먼트 기능을 사용하지 않더라도 반드시 플레이스먼트 참조 ID를 제공해야 합니다. 플레이스먼트를 여러 개 만드는 경우, 참조 ID를 모두 제공합니다.

SDK가 자동 캐시된 플레이스먼트의 광고 자산을 다운로드하는 데 충분한 시간을 사용할 수 있도록 앱이 실행되는 즉시 SDK를 초기화하는 것이 좋습니다. SDK를 초기화하려면 다음이 필요합니다.

  • Vungle 광고 가져오기
  • 앱 ID
  • 앱에서 사용할 모든 플레이스먼트의 참조 ID

이러한 ID는 Vungle 대시보드(플레이스먼트 설정 및 리포팅 참조)에서 찾을 수 있습니다. Amazon 플랫폼의 경우 Vungle 대시보드의 Amazon 어플리케이션 ID를 사용하십시오.

샘플 코드:

local ads = require "plugin.vungle" platform = system.getInfo( "platformName" ) placements = {}

-- Amazon application ID is under the Android platform
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
    오류: 광고를 재생할 수 없는 경우 true, 재생이 시작된 경우 false

  • 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로 설정합니다.

userTag

스트링

보상형 광고 시청에 대해 사용자에게 보상을 제공하려면 사용자 ID를 설정하십시오.

서수

스트링

한 세션에 게재된 광고 수를 추적하는 서수 데이터를 설정하십시오. 요청 시 사용자 지정 보고서가 제공됩니다.


샘플 코드:

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)
또 다른 질문이 있으십니까? 문의 등록

댓글