Vungle 시작하기(SDK v.1.0 - v.4.1) - Adobe Air

이 설명서는 Vungle Adobe Air 플러그인의 기본 샘플 애플리케이션과의 통합에 대해 설명합니다. 여기에 언급된 소스 코드는 공용 GitHub 저장소에서 사용할 수 있습니다.

목차

시작하기 전에
1. 확장 라이브러리 포함
2. 애플리케이션 설명자 업데이트
3. Vungle API
문제해결사 및 FAQ 통합

시작하기 전에

  • Vungle Extension을 사용하려면 Adobe AIR SDK 4.0 이상이 필요합니다. Flash Builder 또는 Flash Professional에서 AIR SDK를 업데이트하는 방법은 이 설명서의 마지막 부분에 있는 "AIR SDK를 어떻게 업데이트합니까?"를 참조합니다.

  • Android를 사용하는 경우, Vungle AIR 확장 기능을 이용하려면 개발 중인 시스템에 JDK 6 또는 JDK 7(사용 중인 Flash 버전에 따라 다름)이 설치되어 있어야 합니다. 애플리케이션 실행에는 Android 3.0(Honeycomb - API version 11) 이상이 필요합니다.

  • ActionScript3 클래스 자료를 참조할 수 있습니다.

  • example/VungleExample.as를 샘플 애플리케이션 클래스로 검토합니다. (Flash Professional 사용자이고 문서 클래스 사용법을 모르는 경우, guide.) 마지막 부분의 "Flash CS6에서 VungleExample 문서 클래스를 어떻게 사용합니까?"를 참조합니다.

1. 확장 라이브러리 포함

모바일 프로젝트용 새 AIR를 만들고 기본 확장을 추가합니다.

Android를 타겟으로 하는 경우: 프로젝트에 Google Play Services 라이브러리를 추가해야 할 수 있습니다. 이미 다수의 다른 확장에 이 라이브러리가 포함되어 있으므로 추가할 필요가 없을 수도 있습니다. 확장을 추가하려면 아래의 과정을 반복하되, com.vungle.extensions.android.GooglePlayServices.anecom.vungle.extensions.Vungle.ane 대신 사용합니다.

Flash Professional CS6 이상을 사용하는 경우:

  1. Android용 AIR 또는 iOS용 AIR 프로젝트를 새로 만듭니다.
  2. 파일 > 게시Settings...를 선택합니다.
  3. 'ActionScript 설정'에서 스크립트 옆에 있는 공구 모양 아이콘을 선택합니다.
  4. 라이브러리 경로 탭에서 기본 확장(ANE) 파일 검색을 클릭하고 com.vungle.extensions.Vungle.ane 파일을 선택합니다. 확인을 클릭합니다.
  5. '플레이어 설정'에서 타겟 옆에 있는 공구 모양 아이콘을 선택합니다.
  6. Android를 타겟으로 하는 경우: 권한 탭에서 '인터넷', 'WRITE_EXTERNAL_STORAGE', 'ACCESS_NETWORK_STATE'을 활성화합니다.
  7. 이 앱에 대한 권한 및 매니페스트 추가 기능을 수동으로 관리 옵션을 선택하고 확인을 클릭합니다.

Flash Builder 4.6 이상을 사용하는 경우:

  1. 액션스크립트 빌드 경로프로젝트 속성에서 기본 확장을 선택합니다.
  2. ANE... 추가를 선택하고 com.vungle.extensions.Vungle.ane 파일로 이동합니다.
  3. 액션스크립트 빌드 패키징 > Google Android를 선택합니다.
  4. 기본 확장 탭에서 확장 옆에 있는 패키지 옵션을 선택합니다.
  5. iOS를 타겟으로 하는 경우, 'Apple iOS' 타겟에 대해 3단계와 4단계를 반복합니다.

2. 애플리케이션 설명자 업데이트

Vungle을 사용하려면 앱의 애플리케이션 XML 파일을 변경해야 합니다. 다음의 변경 사항을 실행해 IDE에서 만든 XML 파일을 수정합니다.(Flash Professional을 사용하는 경우, 위의 'Flash Professional CS6 이상에서 라이브러리 포함' 단계를 수행합니다. 이를 수행하지 않으면 Flash에서 변경 사항을 실행 취소할 수 있습니다.)

  1. 앱 설명자 파일에서 AIR SDK를 4.0(이상)으로 설정:
    <application xmlns="http://ns.adobe.com/air/application/4.0">
  2. 확장에 대한 링크를 설명자에 포함합니다.
    <extensions>
    <extensionID>com.vungle.extensions.Vungle</extensionID>
    </extensions>
  3. Android를 타겟으로 하는 경우: Google Play Services 확장을 추가해야 할 수 있습니다. 확장 ID도 여기에 추가합니다.
    <extensions>
    <extensionID>com.vungle.extensions.Vungle</extensionID>
    <extensionID>com.vungle.extensions.android.GooglePlayServices</extensionID>
    </extensions>

Android 타겟 AIR 애플리케이션의 경우

Android를 타겟으로 하는 경우, Android XML 요소에서 Android 매니페스트 추가 기능을 업데이트합니다.

  • 인터넷, WRITE_EXTERNAL_STORAGE, ACCESS_NETWORK_STATE 권한 포함
  • VideoFullScreenAdActivity와 MraidFullScreenAdActivity Activity 정의 추가
  • google-play-services 버전 메타데이터 태그 추가:
<android> 
<manifestAdditions><![CDATA[
<manifest android:installLocation="auto">

 <uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 <application>
   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

   <activity android:name="com.vungle.publisher.VideoFullScreenAdActivity"
     android:configChanges="keyboardHidden|orientation|screenSize"
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
   <activity android:name="com.vungle.publisher.MraidFullScreenAdActivity"
     android:configChanges="keyboardHidden|orientation|screenSize"
     android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
 </application>
</manifest>
]]></manifestAdditions>
</android>

iOS 타겟 AIR 애플리케이션

iOS를 타겟으로 하는 경우, Adobe AIR 21 이상으로 구출할 때 앱 설명자 XML에 다음 행을 추가하여 앱 전송 보안(ATS)을 사용 중지하는 것이 좋습니다.

<iPhone>
    <InfoAdditions>
        <![CDATA[
            <key>NSAppTransportSecurity</key>
            <dict>
                <key>NSAllowsArbitraryLoads</key>
                <true />
            </dict>
        ]]>
    </InfoAdditions>
</iPhone>

앱 전송 보안에 대한 자세한 내용은 iOS 9용 앱 준비를 참조합니다.

3. Vungle API 통합

단 몇 줄의 ActionScript만으로 Vungle API를 애플리케이션에 추가할 수 있습니다.

Vungle 확장 초기화

애플리케이션이 시작되면 API를 초기화합니다.

  • 순수한 ActionScript를 사용하는 경우, 문서 클래스 생성자에서 이 작업을 수행합니다.
  • Flex를 사용하는 경우, 메인 클래스의 initialize() 이벤트에서 이 작업을 호출합니다.
  • Flash에서 타임라인 코드를 사용하는 경우, 프레임 1에서 이 작업을 수행합니다.
  1. API 클래스 가져오기:
    import com.vungle.extensions.*; 
    import com.vungle.extensions.events.*;
  2. Vungle.create()를 호출하여 API를 시작하고, Vungle 대시보드에서 애플리케이션 ID가 들어있는 배열을 전달합니다. 동일한 프로젝트에서 iOS와 Android를 모두 타겟으로 하는 경우 배열에 ID 두 개를 모두 포함합니다(iOS ID 먼저, Android ID가 그 다음).

    생성 프로세스 중에 Vungle이 오류를 발생시킬 수 있으므로(예: 데스크탑에서 실행 중인 경우 확장 프로그램에서 오류 발생) 예외잡기에서 Vungle.create()에 대한 호출을 래핑해야 합니다.
    시도
    {
     //앱 ID 초기화
     Vungle.create(["your_vungle_id"]);

     //-OR- 다중 플랫폼 앱을 위해 iOS와 Android ID를 모두 초기화
     //Vungle.create(["your_ios_vungle_id","your_android_vungle_id"]);
    } 캐치 (오류:오류) {
     //확장자를 만들 수 없음 iOS/Android 외에 다른 것을 실행 중입니까?
    }

인터스티셜 광고 표시

인터스티셜 광고를 표시하려면 playAd()를 호출합니다. AdAvailable() 메서드를 사용해 광고의 사용 가능 여부를 먼저 확인해야 합니다.

if (Vungle.vungle.isAdAvailable())
{
    Vungle.vungle.playAd();
}

인센티브화 광고 표시

인센티브화 광고를 표시하려면 구성 객체로 playAd()를 호출하고 인센티브화 옵션을 true로 설정합니다. AdAvailable() 메서드를 사용해 광고의 사용 가능 여부를 먼저 확인해야 합니다.

if (Vungle.vungle.isAdAvailable())
{
   var config:VungleAdConfig = new VungleAdConfig();
   config.incentivized = true;
   Vungle.vungle.playAd(config);
}

인센티브화 시청을 완료한 플레이어에게 보상을 제공하려면 아래에 설명된 대로 AD_FINISHED 이벤트 리스너를 구현해야 합니다.

이벤트 리스너 추가

Vungle 확장은 네 가지 이벤트를 전달합니다. VungleEvent.AD_PLAYABLE, VungleEvent.AD_STARTED, VungleEvent.AD_FINISHED, VungleEvent.AD_LOG.

  1. AD_PLAYABLE는 광고가 재생 준비 되었을 때 전달됩니다.
    Vungle.vungle.addEventListener(VungleEvent.AD_PLAYABLE, onAdPlayable);

    function onAdPlayable(e:VungleEvent):void
    {
       trace("ad playable");
    }
  2. AD_STARTED와 AD_FINISHED 이벤트는 각각 광고가 표시되거나 해제될 때 전달됩니다.
    Vungle.vungle.addEventListener(VungleEvent.AD_STARTED, onAdStarted); 
    Vungle.vungle.addEventListener(VungleEvent.AD_FINISHED, onAdFinished);

    function onAdStarted(e:VungleEvent):void
    {
     trace("ad displayed");
    }

    function onAdFinished(e:VungleEvent):void
    {
     trace("ad dismissed, CTA = " + e.wasCallToActionClicked);
     if (e.wasSuccessfulView)
     {
       trace("counts a completed view - present reward.");
     }
    }
  3. AD_LOG는 Vungle SDK에서 로그 메시지를 보낼 때 전달됩니다. 디버깅에 사용할 수 있습니다. 로깅은 iOS용 Vungle SDK에서만 구현되므로 이 이벤트는 플랫폼에 따라 다릅니다.
    
    Vungle.vungle.setLoggingEnabled(true);
    Vungle.vungle.addEventListener(VungleEvent.AD_LOG, onAdLog);

    private function onAdLog(e:VungleEvent):void
    {
       log("ad log: " + e.message);
    }

추가 옵션

이미 본 것처럼, playAd() 메서드를 호출할 때 구성 옵션을 사용하여 객체를 전달할 수 있습니다. 이 속성은 VungleAdConfig에서 사용할 수 있습니다.

방향 전환

이 속성을 사용해 광고의 방향을 지정할 수 있습니다. Android 및 iOS용 플래그는 다양한 종류가 있습니다. 자세한 내용은 VungleOrientation 클래스를 참조합니다. 이 플래그는 비트 OR 연산자와 결합할 수 있습니다.

구성.방향 전환 = VungleOrientation.ANDROID_AUTOROTATE | VungleOrientation.IOS_PORTRAIT;

soundEnabled

이 속성을 사용해 광고의 소리 재생 또는 음소거 기능을 전환할 수 있습니다.

backButtonImmediatelyEnabled

Android에만 적용되는 옵션입니다. true에서는 사용자가 뒤로 버튼을 사용해 즉시 광고를 끝낼 수 있습니다. false에서는 화면에 닫기 버튼이 나타날 때까지 사용자가 뒤로 버튼을 사용해 광고를 끝낼 수 없습니다.

immersiveMode

Android에만 적용되는 옵션입니다. KitKat+ 장치에서 몰입형 모드를 사용하거나 중지합니다.

인센티브화

인센티브화 모드를 설정합니다. true에서는 사용자가 광고를 건너뛰려 할 때 확인 대화 상자가 표시됩니다.

incentivizedUserId

해당 사용자에게 인센티브화 광고 시청에 대한 보상을 제공해야 하는지 확인하기 위해 고유한 사용자 ID가 애플리케이션에 전달됩니다.

incentivizedCancelDialogTitle, incentivizedCancelDialogBodyText, incentivizedCancelDialogCloseButtonText, incentivizedCancelDialogKeepWatchingButtonText

이 옵션을 사용하면 인센티브 광고를 건너뛸 때 나타나는 확인 대화 상자를 사용자 정의할 수 있습니다.

엑스트라1 … 엑스트라8

출시 예정 - 연령대, 성별 등의 지표 추적에 사용할 수 있습니다.

광고위치

출시 예정 - Vungle 보고 API를 통해 데이터를 요청할 때 향상된 데이터 분류를 사용하기 위한 광고위치 이름 옵션입니다.

largeButtons

iOS에만 적용되는 옵션입니다. true에서는 비디오 위에 표시되는 화면 상의 버튼이 커집니다.

전역 기본값

전역 구성 객체를 사용하여 옵션 기본값을 설정할 수 있습니다.


//원하는 구성 옵션을 설정
VungleAdConfig.전역 구성.방향 전환 = VungleOrientation.ANDROID_MATCH_VIDEO;
VungleAdConfig.전역 구성.소리 사용 = false;

그러면 새로운 VungleAdConfig 객체를 만들 때 모두 이 기본값으로 생성됩니다. 옵션 없는 playAd()도 전역 구성을 사용합니다.

사용되지 않는 메서드

v2.4.0 이후로는 다음 메서드가 사용되지 않습니다.


Vungle.vungle.displayAd(showCloseButton:Boolean, orientationHint:int):void;
Vungle.vungle.displayIncentivizedAd(name:String, showCloseButton:Boolean, orientationHint:int):void;
Vungle.vungle.setSoundEnabled(enabled:Boolean):void;
Vungle.vungle.setBackButtonEnabled(backEnabled:Boolean):void;
Vungle.vungle.setIncentivizedBackButtonEnabled(backEnabled:Boolean):void;

이 메서드는 이전 버전과의 호환성을 위해 유지됩니다. 새로운 애플리케이션에서 사용하거나 playAd() 메서드 호출과 함께 사용하는 것은 권장하지 않습니다.

참고: 앱이 테스트 모드에 있는 동안에는 광고 중인 앱을 다운로드할 수 없습니다. 또한, 대시보드가 광고 노출 수를 보고하지 않습니다. 이는 사용자가 올바르게 SDK를 통합했는지 확인하는 데에만 테스트 광고가 사용되기 때문입니다. 이 기능은 해당 앱이 활성 모드에서 작동할 준비가 되었을 때 비로소 제공됩니다.

문제해결사 및 FAQ

“Flash Professional CS6에서 VungleExample.as 문서 클래스를 어떻게 사용합니까?”

  1. 먼저 애플리케이션을 만들고 이 설명서의 1-3 섹션에 따라 확장을 추가합니다.
  2. VungleExample.as를 복사하여 .fla와 동일한 폴더에 붙여 넣습니다. 해당 내용을 복사하여 타임라인에 붙여 넣지 마십시오. 이는 잘못된 방식입니다.
  3. 51행의 앱 ID를 내 Vungle 앱 ID로 변경합니다.
  4. Flash 속성의 '문서 클래스'에서 'VungleExample'(따옴표 제외)를 입력하고 확인을 누릅니다.
  5. 애플리케이션을 빌드하고 설치합니다.

"Flash Professional CS6에 AIR SDK의 새로운 버전((4.0 이상)을 설치하려면 어떻게 해야 합니까?"

다음 링크를 사용해 최신 AIR SDK를 찾습니다. AIR 4.0 이상이 설치되어 있는 경우 이 단계를 건너뜁니다. 그렇지 않으면 아래 지침을 따르십시오.

  1. AIR 4.0 이상의 SDK 패키지를 하드 드라이브 위치에 압축 해제합니다.
  2. Flash Professional CS6를 시작합니다.
  3. AIR 도움말 > 관리를 선택합니다.SDK...
  4. 플러스(+) 버튼을 누르고 AIR SDK을 압축 해제한 위치로 이동합니다.
  5. 확인을 누릅니다.
  6. 파일 > 게시 설정을 선택합니다.
  7. '타겟' 드롭 다운 메뉴에서 iOS용 최신 AIR SDK를 선택합니다.

"Flash Builder에 AIR SDK의 새로운 버전(4.0 이상)을 설치하려면 어떻게 해야 합니까?"

다음 링크를 사용해 최신 AIR SDK를 찾습니다. AIR 4.0 이상이 설치되어 있는 경우 이 단계를 건너뜁니다. Adobe의 최신 지침을 활용해 Flash Builder AIR SDK 를 업데이트할 수 있습니다.

"'Adobe Animate 잘못된 입력' 오류가 발생합니다. 어떻게 해야 합니까?"

아래 이미지와 같은 오류가 발생하면 이 문서를 참조합니다.error_message_at_publish.png

또 다른 질문이 있으십니까? 문의 등록

댓글