비디오 클라우드 SSAI광고 태그 유효성 검사

이 항목에서는 SSAI (Server-Side Ad Insertion)로 지정된 광고 호출을 추적하는 방법에 대해 알아 봅니다.

개요

서버 측 광고의 디버깅을 돕기 위해 SSAI를 사용한 Dynamic Delivery는 광고 호출을 추적하는 API 엔드 포인트를 제공합니다.

Video Cloud에 저장된 비디오 콘텐츠로 서버 측 광고를 디버깅하려면 다음 단계를 따르십시오.

  1. API 경로 및 권한에 대한 일반 정보 검토
  2. 광고 구성에 대한 추적 실행
  3. 추적 세부 사항 검색

일반 정보

다음 정보는 모든 SSAI API 요청과 관련이 있습니다.

기본 URL

SSAIAPI의 기본 URL은 다음과 같습니다.

  https://ssai.api.brightcove.com/v1

계정 경로

모든 경우에 특정 Video Cloud 계정에 대한 요청이 이루어집니다. 따라서 항상 기본 URL에 계정 ID accounts다음에 용어를 추가합니다.

  https://ssai.api.brightcove.com/v1/accounts/your account id

권한

API 요청에는 Authorization 헤더가 필요합니다.

  Authorization: Bearer your access token

access_token는 브라이트코브 OAuth 서비스에서 가져와야 하는 임시 OAuth2 액세스 토큰입니다. 클라이언트 자격 증명을 획득하고 이를 사용하여 액세스 토큰을 검색하는 방법에 대한 자세한 내용은브라이트코브 OAuth 개요를참조하십시오.

운영

클라이언트 자격 증명을 요청할 때 원하는 계정 액세스 또는 작업 유형을 지정해야 합니다. 다음은 SSAI API에 대해 현재 지원되는 작업 목록입니다.

  • SSAI의 데이터:

    video-cloud/ssai/read
    video-cloud/ssai/all

광고 구성에 대한 추적 실행

광고 구성에 대한 추적을 실행하려면 다음 단계를 따르세요.

정보를 수집하다

다음 정보를 수집하십시오. API 요청 :

매개 변수 유형 설명
account_id 문자열 사용자 계정 ID
playback_config 객체 필드는구성 필드 세부 정보 SSAI API 문서의 섹션.
title_metadata 객체 올바른 광고 응답을 생성하기 위해 콘텐츠의 길이를 시스템에 알려줍니다.

예를 들어 다음은 콘텐츠 길이가 1 분임을 시스템에 알려줍니다. 그에 따라 광고를 삽입하는 데 사용됩니다.
  "title_metadata": {  "duration": "1m" }
videocloud_metadata 객체 선택 사항입니다.
메타 데이터 필드를 참조하는 템플릿 변수를 사용하는 경우에만 필요합니다. 이들은광고 변수 SSAI API 문서의 섹션.

요청

SSAI 광고 구성에 대한 추적을 만듭니다.

방법 우편
URL https://ssai.api.brightcove.com/v1/accounts/ {계정 ID} /ssai_debug_vmap/debug.xml
헤더 권한 부여: 베어러액세스 토큰 ( 액세스 토큰 가져 오기참조)
콘텐츠 유형: 응용 프로그램/json
샘플 본체
  {
    "playback_config":{
      "name": "config_name",
      "vmap_response_namespace": "config_namespace",
      "account_id": "account_id",
      "ad_config": {
        "enable_ads": true,
        "expected_ad_response": "dfp_ad_rules",
        "disable_server_beacons": false,
        "round_up_cue_points": false,
        "template_url": {
        "template": "template_url"
        }
      },
      "extend_beacon_guard_ttl": false
    },
    "title_metadata":{
      "duration": "39s"
    }
  }

대응

응답body VAST 또는 광고 서버와 동등한 응답을 포함하는 광고 서버 응답으로 구성됩니다.

샘플 응답:

  <?xml version="1.0" encoding="UTF-8" ?>
  <vmap:VMAP xmlns:bc="bc" xmlns:vmap="http://www.iab.net/vmap-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
    <vmap:Extensions>
      <bc:Brightcove ttl="1800" contenturi="https://ssaiplayback.us-east-1.prod.boltdns.net/playback/once/v1/hls/v5/clear/1752604059001/debug/debug/195b46a6-f71b-432d-af0a-60c7f2131a7e/debug.m3u8?bc_token=NWIxNmQ4YWFfMzMwMzllMzIwMmZlYjRkNmJhY2ZkMWZiN2Y2NGQwOWVkZTYxYTBiOThhZmEwMTdkZjc5NjEzNGFkZDdiYTFjYw%3D%3D"
      contentlength="39.0000" payloadlength="67.0000" contenttype="application/x-mpegURL"></bc:Brightcove>
      <bc:BrightcoveDebug sessionID="195b46a6-f71b-432d-af0a-60c7f2131a7e"></bc:BrightcoveDebug>
    </vmap:Extensions>
    <vmap:AdBreak breakType="linear" breakId="MidRoll_5_0" timeOffset="00:00:05.0000">
      <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="0">
        <vmap:VASTData>
          <VAST xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Ad id="2">
              <InLine>
                <AdSystem>Test Ad Server</AdSystem>
                <AdTitle>&#xA; Marketing&#xA;</AdTitle>
                <Description>&#xA; Demo ad number 4&#xA;</Description>
                <Error>&#xA; &#xA;</Error>
                <Creatives>
                  <Creative>
                    <Linear skipoffset="00:00:05">
                      <CreativeExtensions>
                        <CreativeExtension>
                          <BrightcoveForeignKey>2</BrightcoveForeignKey>
                        </CreativeExtension>
                      </CreativeExtensions>
                      <Duration>00:00:12.0000</Duration>
                      <AdParameters>&#xA; &lt;xml&gt;&lt;/xml&gt;&#xA;</AdParameters>
                      <VideoClicks></VideoClicks>
                    </Linear>
                  </Creative>
                </Creatives>
                <Extensions>
                  <Extension>
                    <xml>data</xml>
                  </Extension>
                </Extensions>
              </InLine>
            </Ad>
          </VAST>
        </vmap:VASTData>
      </vmap:AdSource>
    </vmap:AdBreak>
    ...// additional ad breaks
  </vmap:VMAP>
  

Request2-템플릿 변수 사용

메타 데이터 필드를 참조하는 템플릿 변수를 사용하는 SSAI 광고 추적을 만듭니다.

방법 우편
URL https://ssai.api.brightcove.com/v1/accounts/ {계정 ID} /ssai_debug_vmap/debug.xml
헤더 권한 부여: 베어러액세스 토큰 ( 액세스 토큰 가져 오기참조)
콘텐츠 유형: 응용 프로그램/json
샘플 본체
  {
    "playback_config":{
      "name": "config_name",
      "vmap_response_namespace": "config_namespace",
      "account_id": "account_id",
      "ad_config": {
        "enable_ads": true,
        "expected_ad_response": "dfp_ad_rules",
        "disable_server_beacons": false,
        "round_up_cue_points": false,
        "template_url": {
        "template": "template_url"
        }
      },
      "extend_beacon_guard_ttl": false
    },
    "title_metadata":{
    "duration": "10s"
    },
    "videocloud_metadata": {
      "name": "ad_name",
      "tags": [ "tag1:tag1_value", "tag2:tag2_value" ],
      "ad_keys":"a=1&b=2",
      "cue_points": [{
        "name":"Pre-roll",
        "type":"AD",
        "time":0,
        "metadata":"type:pre-roll,a=b",
        },
        {
        "name":"Mid-roll",
        "type":"AD",
        "time":10,
        "metadata":"type=mid-roll,x=y",
      }]
    }
  }

응답 2

샘플 응답:

  <vmap:VMAP xmlns:bc="bc" xmlns:vmap="http://www.iab.net/vmap-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
  <vmap:Extensions>
  <bc:Brightcove ttl="1800" contenturi="https://ssaiplayback.us-east-1.qa.boltdns.net/playback/once/v1/hls/v5/clear/accoutn_debug/debug/debug/7592e9c3-214f-4c68-a576-1e2494b7be06/debug.m3u8" contentlength="10.0000" payloadlength="70.0000" contenttype="application/x-mpegURL"></bc:Brightcove>
  <bc:BrightcoveDebug sessionID="7592e9c3-214f-4c68-a576-1e2494b7be06"></bc:BrightcoveDebug>
  </vmap:Extensions>
  <vmap:AdBreak breakType="linear" breakId="PreRoll_0_0" timeOffset="start">
  <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="0">
  <vmap:VASTData>
    <VAST xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Ad id="test-01-30s">
        <InLine>
          <AdSystem>BIAS</AdSystem>
          <AdTitle>test-01-30s</AdTitle>
          <Creatives>
            <Creative>
              <Linear>
                <CreativeExtensions>
                  <CreativeExtension>
                    <BrightcoveForeignKey>test-01-30s</BrightcoveForeignKey>
                  </CreativeExtension>
                </CreativeExtensions>
                <Duration>00:00:30.0000</Duration>
                <TrackingEvents>
                  <Tracking event="mute">https://solutions.brightcove.com/beacon?event=mute&amp;type=vast&amp;request_id=43a0e4a5-4420-11e8-b306-99b1b6ae5164&amp;parent_request_id=436ae081-4420-11e8-bd7f-41361f814644&amp;ad_id=test-01-30s</Tracking>
                  <Tracking event="unmute">https://solutions.brightcove.com/beacon?event=unmute&amp;type=vast&amp;request_id=43a0e4a5-4420-11e8-b306-99b1b6ae5164&amp;parent_request_id=436ae081-4420-11e8-bd7f-41361f814644&amp;ad_id=test-01-30s</Tracking>
                  <Tracking event="rewind">https://solutions.brightcove.com/beacon?event=rewind&amp;type=vast&amp;request_id=43a0e4a5-4420-11e8-b306-99b1b6ae5164&amp;parent_request_id=436ae081-4420-11e8-bd7f-41361f814644&amp;ad_id=test-01-30s</Tracking>
                  <Tracking event="pause">https://solutions.brightcove.com/beacon?event=pause&amp;type=vast&amp;request_id=43a0e4a5-4420-11e8-b306-99b1b6ae5164&amp;parent_request_id=436ae081-4420-11e8-bd7f-41361f814644&amp;ad_id=test-01-30s</Tracking>
                  <Tracking event="resume">https://solutions.brightcove.com/beacon?event=resume&amp;type=vast&amp;request_id=43a0e4a5-4420-11e8-b306-99b1b6ae5164&amp;parent_request_id=436ae081-4420-11e8-bd7f-41361f814644&amp;ad_id=test-01-30s</Tracking>
                  <Tracking event="fullscreen">https://solutions.brightcove.com/beacon?event=fullscreen&amp;type=vast&amp;request_id=43a0e4a5-4420-11e8-b306-99b1b6ae5164&amp;parent_request_id=436ae081-4420-11e8-bd7f-41361f814644&amp;ad_id=test-01-30s</Tracking>
                  <Tracking event="acceptInvitation">https://solutions.brightcove.com/beacon?event=acceptInvitation&amp;type=vast&amp;request_id=43a0e4a5-4420-11e8-b306-99b1b6ae5164&amp;parent_request_id=436ae081-4420-11e8-bd7f-41361f814644&amp;ad_id=test-01-30s</Tracking>
                </TrackingEvents>
                <VideoClicks>
                  <ClickThrough id="clickthrough">https://www.brightcove.com/en/</ClickThrough>
                  <ClickTracking id="43a0e4a5-4420-11e8-b306-99b1b6ae5164"></ClickTracking>
                </VideoClicks>
              </Linear>
            </Creative>
          </Creatives>
        </InLine>
      </Ad>
    </VAST>
  </vmap:VASTData>
  </vmap:AdSource>
  </vmap:AdBreak>
  ...// additional ad breaks
  </vmap:VMAP>
  

추적 세부 사항 검색

이전 섹션에 표시된대로 광고 추적을 실행하면 세션 ID를 사용하여 추적에 대한 자세한 정보를 검색 할 수 있습니다.

그만큼session_id캐싱 세션을 지정합니다. 각 세션에는 비디오 콘텐츠 길이에 따라 자체 길이가 있습니다. 이전 단계의 API 호출에 대한 응답에서 ID를 가져올 수 있습니다.

세션 ID는 이전 섹션의 VMAP 응답에서 찾을 수 있습니다. 다음은 예입니다.

  <bc:BrightcoveDebug sessionID="your session id"></bc:BrightcoveDebug>

요청

세션 ID를 제공하여 광고 호출 추적 정보를 검색하려면 다음과 유사한 GET 요청을 사용하십시오.

방법 얻다
URL https://ssai.api.brightcove.com/v1/accounts/ {계정 ID} / ssai_traces / {session_id} / ad_calls
헤더 권한 부여: 베어러액세스 토큰 ( 액세스 토큰 가져 오기참조)
콘텐츠 유형: 응용 프로그램/json

대응

샘플 응답:

  {
    "ad_calls": [
      {
        "timestamp": "2019-01-29T16:25:57.775607279Z",
        "duration_ms": 2772.666305,
        "request": {
          "content_length": 0,
          "event": "request",
          "headers": {
            "Referer": [
              ""
            ],
            "User-Agent": [
              "insomnia/6.3.2"
            ],
            "X-Device-User-Agent": [
              "insomnia/6.3.2"
            ],
            "X-Forwarded-For": [
              "108.26.214.36, 3.89.139.168"
            ]
          },
          "method": "GET",
          "url": "https://solutions.brightcove.com/bcls/brightcove-player/vmap/simple-vmap.xml"
        },
        "response": {
          "content_length": -1,
          "event": "response",
          "headers": {
            "Accept-Ranges": [
              "bytes"
            ],
            "Access-Control-Allow-Credentials": [
              "true"
            ],
            "Access-Control-Allow-Headers": [
              "X-Requested-With"
            ],
            "Access-Control-Allow-Origin": [
              "*"
            ],
            "Content-Type": [
              "application/xml"
            ],
            "Date": [
              "Tue, 29 Jan 2019 16:25:57 GMT"
            ],
            "Etag": [
              "\"13d6-57baaddddeea0-gzip\""
            ],
            "Last-Modified": [
              "Tue, 27 Nov 2018 19:58:00 GMT"
            ],
            "Server": [
              "Apache/2.4.7 (Ubuntu)"
            ],
            "Vary": [
              "Accept-Encoding"
            ]
          },
          "status_code": 200
        },
        "body": "PHZtYXA6Vk1BUCB4bWxuczp2bWFwPSJodHRwOi8vd3d3LmlhYi5uZXQvdmlkZW9zdWl0ZS92bWFwIiB2ZXJzaW9uPSIxLjAiPgoKICA8dm1hcDpBZEJyZWFrIHRpbWVPZmZzZXQ9InN0YXJ0IiBicmVha1R5cGU9ImxpbmVhciIgYnJlYWtJZD0icHJlcm9sbCI+CiAgICA8dm1hcDpBZFNvdXJjZSBpZD0icHJlcm9sbC1hZCIgYWxsb3dNdWx0aXBsZUFkcz0iZmFsc2UiIGZvbGxvd1JlZGlyZWN0cz0idHJ1ZSI+CiAgICAgIDx2bWFwOlZBU1RBZERhdGE+CiAgICAgICAgPFZBU1QgdmVyc2lvbj0iMy4wIj4KICAgICAgICAgIDxBZCBpZD0iMSI+CiAgICAgICAgICAgIDxJbkxpbmU+CiAgICAgICAgICAgICAgPEFkU3lzdGVtIHZlcnNpb249IjEuMCI+VGVzdCBBZCBTZXJ2ZXI8L0FkU3lzdGVtPgogICAgICAgICAgICAgIDxBZFRpdGxlPgogICAgICAgICAgICAgICAgPCFbQ0RBVEFbUG9ydGFsc11dPgogICAgICAgICAgICAgIDwvQWRUaXRsZT4KICAgICAgICAgICAgICA8RGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8IVtDREFUQVtEZW1vIGFkIG51bWJlciA2XV0+CiAgICAgICAgICAgICAgPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICA8RXJyb3I+CiAgICAgICAgICAgICAgICA8IVtDREFUQVtdXT4KICAgICAgICAgICAgICA8L0Vycm9yPgogICAgICAgICAgICAgIDxDcmVhdGl2ZXM+CiAgICAgICAgICAgICAgICA8Q3JlYXRpdmU+CiAgICAgICAgICAgICAgICAgIDxMaW5lYXI+CiAgICAgICAgICAgICAgICAgICAgPER1cmF0aW9uPjAwOjAwOjg8L0R1cmF0aW9uPgogICAgICAgICAgICAgICAgICAgIDxUcmFja2luZ0V2ZW50cy8+CiAgICAgICAgICAgICAgICAgICAgPEFkUGFyYW1ldGVycz4KICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBWzx4bWw+PC94bWw+XV0+CiAgICAgICAgICAgICAgICAgICAgPC9BZFBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgICAgICAgPFZpZGVvQ2xpY2tzLz4KICAgICAgICAgICAgICAgICAgICA8TWVkaWFGaWxlcz4KICAgICAgICAgICAgICAgICAgICAgIDxNZWRpYUZpbGUgdHlwZT0idmlkZW8vbXA0IiB3aWR0aD0iMTI4MCIgaGVpZ2h0PSI3MjAiIGRlbGl2ZXJ5PSJwcm9ncmVzc2l2ZSIgaWQ9IjIiIGJpdHJhdGU9IjQzMTYiIG1pbkJpdHJhdGU9IjMyMCIgbWF4Qml0cmF0ZT0iMzIwIiBzY2FsYWJsZT0idHJ1ZSIgbWFpbnRhaW5Bc3BlY3RSYXRpbz0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBW2h0dHBzOi8vc29sdXRpb25zLmJyaWdodGNvdmUuY29tL2JjbHMvYWRzL2JjLWFkcy9iY2xzLWFkLTYtNXNlY29uZHMubXA0XV0+CiAgICAgICAgICAgICAgICAgICAgICA8L01lZGlhRmlsZT4KICAgICAgICAgICAgICAgICAgICA8L01lZGlhRmlsZXM+CiAgICAgICAgICAgICAgICAgIDwvTGluZWFyPgogICAgICAgICAgICAgICAgPC9DcmVhdGl2ZT4KICAgICAgICAgICAgICA8L0NyZWF0aXZlcz4KICAgICAgICAgICAgICA8RXh0ZW5zaW9ucz4KICAgICAgICAgICAgICAgIDxFeHRlbnNpb24+CiAgICAgICAgICAgICAgICAgIDx4bWw+ZGF0YTwveG1sPgogICAgICAgICAgICAgICAgPC9FeHRlbnNpb24+CiAgICAgICAgICAgICAgPC9FeHRlbnNpb25zPgogICAgICAgICAgICA8L0luTGluZT4KICAgICAgICAgIDwvQWQ+CiAgICAgICAgPC9WQVNUPgogICAgICA8L3ZtYXA6VkFTVEFkRGF0YT4KICAgIDwvdm1hcDpBZFNvdXJjZT4KICA8L3ZtYXA6QWRCcmVhaz4KCiAgPHZtYXA6QWRCcmVhayB0aW1lT2Zmc2V0PSIwMDowMDowNSIgYnJlYWtUeXBlPSJsaW5lYXIiIGJyZWFrSWQ9Im1pZHJvbGwiPgogICAgPHZtYXA6QWRTb3VyY2UgaWQ9Im1pZHJvbGwtYWQiIGFsbG93TXVsdGlwbGVBZHM9ImZhbHNlIiBmb2xsb3dSZWRpcmVjdHM9InRydWUiPgogICAgICA8dm1hcDpWQVNUQWREYXRhPgogICAgICAgIDxWQVNUIHZlcnNpb249IjMuMCI+CiAgICAgICAgICA8QWQgaWQ9IjIiPgogICAgICAgICAgICA8SW5MaW5lPgogICAgICAgICAgICAgIDxBZFN5c3RlbSB2ZXJzaW9uPSIxLjAiPlRlc3QgQWQgU2VydmVyPC9BZFN5c3RlbT4KICAgICAgICAgICAgICA8QWRUaXRsZT4KICAgICAgICAgICAgICAgIDwhW0NEQVRBW01hcmtldGluZ11dPgogICAgICAgICAgICAgIDwvQWRUaXRsZT4KICAgICAgICAgICAgICA8RGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICA8IVtDREFUQVtEZW1vIGFkIG51bWJlciA0XV0+CiAgICAgICAgICAgICAgPC9EZXNjcmlwdGlvbj4KICAgICAgICAgICAgICA8RXJyb3I+CiAgICAgICAgICAgICAgICA8IVtDREFUQVtdXT4KICAgICAgICAgICAgICA8L0Vycm9yPgogICAgICAgICAgICAgIDxDcmVhdGl2ZXM+CiAgICAgICAgICAgICAgICA8Q3JlYXRpdmU+CiAgICAgICAgICAgICAgICAgIDxMaW5lYXIgc2tpcG9mZnNldD0iMDA6MDA6MDUiPgogICAgICAgICAgICAgICAgICAgIDxEdXJhdGlvbj4wMDowMDoxMjwvRHVyYXRpb24+CiAgICAgICAgICAgICAgICAgICAgPFRyYWNraW5nRXZlbnRzLz4KICAgICAgICAgICAgICAgICAgICA8QWRQYXJhbWV0ZXJzPgogICAgICAgICAgICAgICAgICAgICAgPCFbQ0RBVEFbPHhtbD48L3htbD5dXT4KICAgICAgICAgICAgICAgICAgICA8L0FkUGFyYW1ldGVycz4KICAgICAgICAgICAgICAgICAgICA8VmlkZW9DbGlja3MvPgogICAgICAgICAgICAgICAgICAgIDxNZWRpYUZpbGVzPgogICAgICAgICAgICAgICAgICAgICAgPE1lZGlhRmlsZSB0eXBlPSJ2aWRlby9tcDQiIHdpZHRoPSIxMjgwIiBoZWlnaHQ9IjcyMCIgZGVsaXZlcnk9InByb2dyZXNzaXZlIiBpZD0iMyIgYml0cmF0ZT0iMzAyNiIgbWluQml0cmF0ZT0iMzIwIiBtYXhCaXRyYXRlPSIzMjAiIHNjYWxhYmxlPSJ0cnVlIiBtYWludGFpbkFzcGVjdFJhdGlvPSJ0cnVlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPCFbQ0RBVEFbaHR0cHM6Ly9zb2x1dGlvbnMuYnJpZ2h0Y292ZS5jb20vYmNscy9hZHMvYmMtYWRzL2JjbHMtYWQtNC0xMnNlY29uZHMubXA0XV0+CiAgICAgICAgICAgICAgICAgICAgICA8L01lZGlhRmlsZT4KICAgICAgICAgICAgICAgICAgICA8L01lZGlhRmlsZXM+CiAgICAgICAgICAgICAgICAgIDwvTGluZWFyPgogICAgICAgICAgICAgICAgPC9DcmVhdGl2ZT4KICAgICAgICAgICAgICA8L0NyZWF0aXZlcz4KICAgICAgICAgICAgICA8RXh0ZW5zaW9ucz4KICAgICAgICAgICAgICAgIDxFeHRlbnNpb24+CiAgICAgICAgICAgICAgICAgIDx4bWw+ZGF0YTwveG1sPgogICAgICAgICAgICAgICAgPC9FeHRlbnNpb24+CiAgICAgICAgICAgICAgPC9FeHRlbnNpb25zPgogICAgICAgICAgICA8L0luTGluZT4KICAgICAgICAgIDwvQWQ+CiAgICAgICAgPC9WQVNUPgogICAgICA8L3ZtYXA6VkFTVEFkRGF0YT4KICAgIDwvdm1hcDpBZFNvdXJjZT4KICA8L3ZtYXA6QWRCcmVhaz4KCiAgPHZtYXA6QWRCcmVhayB0aW1lT2Zmc2V0PSJlbmQiIGJyZWFrVHlwZT0ibGluZWFyIiBicmVha0lkPSJwb3N0cm9sbCI+CiAgICA8dm1hcDpBZFNvdXJjZSBpZD0icG9zdHJvbGwtYWQiIGFsbG93TXVsdGlwbGVBZHM9ImZhbHNlIiBmb2xsb3dSZWRpcmVjdHM9InRydWUiPgogICAgICA8dm1hcDpWQVNUQWREYXRhPgogICAgICAgIDxWQVNUIHZlcnNpb249IjMuMCI+CiAgICAgICAgICA8QWQgaWQ9IjMiPgogICAgICAgICAgICA8SW5MaW5lPgogICAgICAgICAgICAgIDxBZFN5c3RlbSB2ZXJzaW9uPSIxLjAiPlRlc3QgQWQgU2VydmVyPC9BZFN5c3RlbT4KICAgICAgICAgICAgICA8QWRUaXRsZT4KICAgICAgICAgICAgICAgIDwhW0NEQVRBW0JyYW5kXV0+CiAgICAgICAgICAgICAgPC9BZFRpdGxlPgogICAgICAgICAgICAgIDxEZXNjcmlwdGlvbj4KICAgICAgICAgICAgICAgIDwhW0NEQVRBW0RlbW8gYWQgbnVtYmVyIDFdXT4KICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uPgogICAgICAgICAgICAgIDxFcnJvcj4KICAgICAgICAgICAgICAgIDwhW0NEQVRBW11dPgogICAgICAgICAgICAgIDwvRXJyb3I+CiAgICAgICAgICAgICAgPENyZWF0aXZlcz4KICAgICAgICAgICAgICAgIDxDcmVhdGl2ZT4KICAgICAgICAgICAgICAgICAgPExpbmVhcj4KICAgICAgICAgICAgICAgICAgICA8RHVyYXRpb24+MDA6MDA6MDg8L0R1cmF0aW9uPgogICAgICAgICAgICAgICAgICAgIDxUcmFja2luZ0V2ZW50cy8+CiAgICAgICAgICAgICAgICAgICAgPEFkUGFyYW1ldGVycz4KICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBWzx4bWw+PC94bWw+XV0+CiAgICAgICAgICAgICAgICAgICAgPC9BZFBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgICAgICAgPFZpZGVvQ2xpY2tzLz4KICAgICAgICAgICAgICAgICAgICA8TWVkaWFGaWxlcz4KICAgICAgICAgICAgICAgICAgICAgIDxNZWRpYUZpbGUgdHlwZT0idmlkZW8vbXA0IiB3aWR0aD0iMTI4MCIgaGVpZ2h0PSI3MjAiIGRlbGl2ZXJ5PSJwcm9ncmVzc2l2ZSIgaWQ9IjQiIGJpdHJhdGU9IjIxMTUiIG1pbkJpdHJhdGU9IjMyMCIgbWF4Qml0cmF0ZT0iMzIwIiBzY2FsYWJsZT0idHJ1ZSIgbWFpbnRhaW5Bc3BlY3RSYXRpbz0idHJ1ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhW0NEQVRBW2h0dHBzOi8vc29sdXRpb25zLmJyaWdodGNvdmUuY29tL2JjbHMvYWRzL2JjLWFkcy9iY2xzLWFkLTEtOHNlY29uZHMubXA0XV0+CiAgICAgICAgICAgICAgICAgICAgICA8L01lZGlhRmlsZT4KICAgICAgICAgICAgICAgICAgICA8L01lZGlhRmlsZXM+CiAgICAgICAgICAgICAgICAgIDwvTGluZWFyPgogICAgICAgICAgICAgICAgPC9DcmVhdGl2ZT4KICAgICAgICAgICAgICA8L0NyZWF0aXZlcz4KICAgICAgICAgICAgICA8RXh0ZW5zaW9ucz4KICAgICAgICAgICAgICAgIDxFeHRlbnNpb24+CiAgICAgICAgICAgICAgICAgIDx4bWw+ZGF0YTwveG1sPgogICAgICAgICAgICAgICAgPC9FeHRlbnNpb24+CiAgICAgICAgICAgICAgPC9FeHRlbnNpb25zPgogICAgICAgICAgICA8L0luTGluZT4KICAgICAgICAgIDwvQWQ+CiAgICAgICAgPC9WQVNUPgogICAgICA8L3ZtYXA6VkFTVEFkRGF0YT4KICAgIDwvdm1hcDpBZFNvdXJjZT4KICA8L3ZtYXA6QWRCcmVhaz4KCjwvdm1hcDpWTUFQPgo=",
        "creatives": null,
        "errors": null
      }
    ]
  }

다음과 같은 도구를 사용할 수 있습니다. BASE64응답 본문을 읽을 수 있도록합니다.

디코딩 된 응답 본문 샘플 :

  <vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" version="1.0">

    <vmap:AdBreak timeOffset="start" breakType="linear" breakId="preroll">
      <vmap:AdSource id="preroll-ad" allowMultipleAds="false" followRedirects="true">
        <vmap:VASTAdData>
          <VAST version="3.0">
            <Ad id="1">
              <InLine>
                <AdSystem version="1.0">Test Ad Server</AdSystem>
                <AdTitle>
                  <![CDATA[Portals]]>
                </AdTitle>
                <Description>
                  <![CDATA[Demo ad number 6]]>
                </Description>
                <Error>
                  <![CDATA[]]>
                </Error>
                <Creatives>
                  <Creative>
                    <Linear>
                      <Duration>00:00:8</Duration>
                      <TrackingEvents/>
                      <AdParameters>
                        <![CDATA[<xml></xml>]]>
                      </AdParameters>
                      <VideoClicks/>
                      <MediaFiles>
                        <MediaFile type="video/mp4" width="1280" height="720" delivery="progressive" id="2" bitrate="4316" minBitrate="320" maxBitrate="320" scalable="true" maintainAspectRatio="true">
                          <![CDATA[http://solutions.brightcove.com/bcls/ads/bc-ads/bcls-ad-6-5seconds.mp4]]>
                        </MediaFile>
                      </MediaFiles>
                    </Linear>
                  </Creative>
                </Creatives>
                <Extensions>
                  <Extension>
                    <xml>data</xml>
                  </Extension>
                </Extensions>
              </InLine>
            </Ad>
          </VAST>
        </vmap:VASTAdData>
      </vmap:AdSource>
    </vmap:AdBreak>
  ...