비디오 클라우드 SSAI API

이 항목에서는 SSAI (서버측 광고 삽입) API를 사용하여 광고 구성을 만들고 관리하는 방법에 대해 알아봅니다.

광고 구성은 광고 통화, 비콘 및 기타 구성 옵션을 포함하여 SSAI 재생의 다양한 측면을 정의합니다. 계정에는 여러 구성이 있을 수 있으며 현재 구성을 계정 간에 공유할 수 없습니다.

일반 정보

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

기본 URL

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

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

계정 경로

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

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

인증

요청에 대한 인증에는 권한 부여 헤더가 필요합니다.

Authorization: Bearer your access token

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

운영

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

  • SSAI의 데이터:

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

광고 구성 관리

API는 다음과 같은 GET 및 PUT 요청을 지원합니다.

광고 구성 나열

계정에 대해 정의된 광고 구성을 나열합니다.

방법 얻다
URL https://ssai.api.brightcove.com/v1/accounts/ 귀하의 계정 ID /ssai_configs
헤더 권한 부여: 액세스 토큰 전달자
콘텐츠 유형: 응용 프로그램/json

샘플 응답:

[
  {
    "name": "VMAP Ad Server",
    "vmap_response_namespace": "bc",
    "config_id": "2ecc6beb-d6a4-4deb-a78e-37ac27e0f883",
    "account_id": "57838016001",
    "created_timestamp": "2017-07-24T19:28:34.976878586Z",
    "updated_timestamp": "2017-07-24T19:28:34.976878586Z",
    "ad_config": {
      "expected_ad_response": "dfp_ad_rules",
      "disable_server_beacons": false,
      "template_url": {
          "template": "https://solutions.brightcove.com/bcls/ads/simple-ad-rules?ip={{ system.ip_address }}&vid={{ metadata.video_id }}&ppid={{ system.unique_user_id }}&p_vmap={{ url.p_vmap }}"
      }
    }
  }
]

필드 정의는 구성 필드 세부 정보 섹션을 참조하십시오.

광고 구성 만들기

계정에 대한 광고 구성을 만듭니다.

방법 우편
URL https://ssai.api.brightcove.com/v1/accounts/ 귀하의 계정 ID /ssai_configs
헤더 권한 부여: 액세스 토큰 전달자
콘텐츠 유형: 응용 프로그램/json

샘플 본문:

{
  "name": "VMAP Ad Server",
  "vmap_response_namespace": "bc",
  "ad_tracking_sample_percentage": 100,
  "ad_config": {
    "expected_ad_response": "vast_3_0",
    "disable_server_beacons": false,
    "round_up_cue_points": false,
    "template_url": {
      "template": "https://solutions.brightcove.com/bcls/ads/simple-ad-rules?ip={{ system.ip_address }}&vid={{ metadata.video_id }}&ppid={{ system.unique_user_id }}&p_vmap={{ url.p_vmap }}"
    }
  },
  "discontinuities": {
    "hls": [ "*" ]
  }
}

필드 정의는 구성 필드 세부 정보 섹션을 참조하십시오.

참고 사항

  • ad_tracking_sample_percentage기록될 세션의 백분율을 결정합니다. 0(로깅 비활성화)에서 100(모든 세션 로그) 사이의 값을 사용할 수 있습니다.

광고 구성 세부 정보 가져오기

계정의 경우 구성 ID별로 광고 구성 세부 정보를 가져옵니다.

방법 얻다
URL https://ssai.api.brightcove.com/v1/accounts/ 계정 ID /ssai_configs/ 광고 구성 ID
헤더 권한 부여: 액세스 토큰 전달자
콘텐츠 유형: 응용 프로그램/json
샘플 응답:
	{
		"name": "VMAP Ad Server",
		"vmap_response_namespace": "bc",
		"config_id": "2ecc6beb-d6a4-4deb-a78e-37ac27e0f883",
		"account_id": "57838016001",
		"created_timestamp": "2017-07-24T19:28:34.976878586Z",
		"updated_timestamp": "2017-07-24T19:28:34.976878586Z",
    "ad_tracking_sample_percentage": 100,
		"ad_config": {
			"expected_ad_response": "dfp_ad_rules",
			"disable_server_beacons": false,
			"template_url": {
					"template": "https://solutions.brightcove.com/bcls/ads/simple-ad-rules?ip={{ system.ip_address }}&vid={{ metadata.video_id }}&ppid={{ system.unique_user_id }}&p_vmap={{ url.p_vmap }}"
			}
		},
		"beacon_templates": [
				{
					"type": "content_start",
					"template_url": {
						"template": "https://myserver.com/beaconRX/{{metadata.video_id}}/load?position=load&sid={{system.xfp.unique_user_id}}&jid={{metadata.video_id}}&rnd32={{sytem.random_number_32}}&bid={{system.uuid}}&t={{system.timestamp_utc}}&ua={{system.user_agent}}&ip={{system.ip_address}}&ref={{system.referer}}"
					}
				},
				{
					"type": "content_midpoint",
					"template_url": {
						"template": "https://myserver.com/beaconRX/{{metadata.video_id}}/load?position=load&sid={{system.xfp.unique_user_id}}&jid={{metadata.video_id}}&rnd32={{sytem.random_number_32}}&bid={{system.uuid}}&t={{system.timestamp_utc}}&ua={{system.user_agent}}&ip={{system.ip_address}}&ref={{system.referer}}"
					}
				},
				{
					"type": "ad_start",
					"template_url": {
						"template": "https://myserver.com/beaconRX/{{metadata.video_id}}/load?position=load&sid={{system.xfp.unique_user_id}}&jid={{metadata.video_id}}&rnd32={{sytem.random_number_32}}&bid={{system.uuid}}&t={{system.timestamp_utc}}&ua={{system.user_agent}}&ip={{system.ip_address}}&ref={{system.referer}}"
					}
				},
				{
					"type": "content_complete",
					"template_url": {
						"template": "https://myserver.com/beaconRX/{{metadata.video_id}}/load?position=load&sid={{system.xfp.unique_user_id}}&jid={{metadata.video_id}}&rnd32={{sytem.random_number_32}}&bid={{system.uuid}}&t={{system.timestamp_utc}}&ua={{system.user_agent}}&ip={{system.ip_address}}&ref={{system.referer}}"
					}
				}
			],
			"discontinuities": {
				"dash": [
					"*"
				],
				"hls": [
					"*"
				]
			},
			"extend_beacon_guard_ttl": true
		}
	}

필드 정의는 구성 필드 세부 정보 섹션을 참조하십시오.

광고 구성 업데이트

구성 ID로 광고 구성을 업데이트하십시오.

방법 넣어
URL https://ssai.api.brightcove.com/v1/accounts/ 계정 ID /ssai_configs/ 광고 구성 ID
헤더 권한 부여: 액세스 토큰 전달자
콘텐츠 유형: 응용 프로그램/json
샘플 본체
{
    "name": "VMAP Ad Server - updated"
}
샘플 응답:
	{
		"name": "VMAP Ad Server - updated",
		"vmap_response_namespace": "bc",
		"config_id": "2ecc6beb-d6a4-4deb-a78e-37ac27e0f883",
		"account_id": "57838016001",
		"created_timestamp": "2017-07-24T19:28:34.976878586Z",
		"updated_timestamp": "2017-07-24T19:28:34.976878586Z",
		"ad_config": {
			"expected_ad_response": "dfp_ad_rules",
			"disable_server_beacons": false,
			"template_url": {
				"template": "https://solutions.brightcove.com/bcls/ads/simple-ad-rules?ip={{ system.ip_address }}&vid={{ metadata.video_id }}&ppid={{ system.unique_user_id }}&p_vmap={{ url.p_vmap }}"
			}
		}
	}

필드 정의는 구성 필드 세부 정보 섹션을 참조하십시오.

구성 필드 세부 정보

이 표는 요청의 본문 섹션 내에서 사용되는 광고 구성 필드를 정의합니다.

필드 유형 설명
name 문자열 사람이 읽을 수 있는 이름
vmap_response_namespace 문자열 레거시 Unicorn Once 네임스페이스 형식을 사용하거나 새로운 브라이트코브 네임스페이스 형식을 사용하도록 VMAP 출력을 조정합니다.

값: uo , bc기본값: bc
description 문자열 사람이 읽을 수 있는 설명
ad_config.expected_ad_response 문자열 응답을 분석하는 데 사용할 기술[1]

값:
  • dfp_ad_rules
  • dfp_vmap
  • smart_xml
  • vast_3_0
자세한 내용은 광고 응답 유형 섹션을 참조하세요.
ad_config.disable_server_beacons 부울 광고 노출/비콘의 서버 측 실행을 비활성화할지 여부를 표시합니다.

로 설정할 때true , SSAI는 서버 측 비콘을 실행하지 않고 VMAP 출력에 모든 비콘을 포함합니다.

로 설정할 때false , SSAI는 서버 측에서 할 수 있는 비콘을 발사하고 VMAP 출력에 할 수 없는 비콘을 포함합니다.
ad_config.round_up_cue_points 부울 광고를 삽입할 근처 위치를 선택할 때 다음 키프레임으로 반올림할지 여부를 표시합니다.

기본값: false원하는 광고 위치에 가장 가까운 키프레임을 선택합니다.
ad_config.template_url.template 문자열 광고 태그 템플릿. 사용 가능한 변수는 이후 섹션에서 설명합니다.
ad_config.template_url.defaults 객체 URL 매개 변수를 제공하지 않는 경우에 사용할 기본값을 정의하는 문자열에 문자열의지도.

리터럴일 수 있습니다. { "url.foo": "SomeString" }

또는 다른 변수를 참조할 수 있습니다. { "url.foo": "{{ metadata.title_id }}" }
ad_tracking_sample_percentage 정수 이 값은 기록될 세션의 백분율을 결정합니다. (로깅 비활성화) 에서0 (모든 세션 기록) 까지의100모든 값을 지정할 수 있습니다. 값은 로그를 완전히0비활성화합니다.

기본: 0

가치: [ 0 .. 100 ]
beacon_templates 어레이 발사할 비콘 배열 (예: 타사 비콘)
beacon_templates[].type 문자열

발사 할 비콘의 유형입니다. 값:

  • content_start
  • content_first_quartile
  • content_midpoint
  • content_third_quartile
  • content_complete
  • content_quartiles
  • content_interval
  • ad_start
  • ad_first_quartile
  • ad_midpoint
  • ad_third_quartile
  • ad_complete
  • ad_quartiles
  • ad_break_start
  • ad_break_end
  • segment_start
  • segment_end
  • on_load
beacon_templates[].template_url.template 문자열 신호 URL 템플리트
discontinuities.dash[2] [] 문자열 다중 기간 대시 매니페스트를 제공할 대시 버전을 제어합니다.

모든 버전에 다중 기간 대시를["*"]제공하도록 설정

빈 목록 없음

예: ["live-timeline"]실시간 타임라인용으로 제공하지만 hbbtv에는 제공하지 않음
discontinuities.hls[2] [] 문자열 불연속으로 제공할 hl의 버전을 제어합니다.

로 설정["*"] HLS의 모든 버전에서 불연속으로 제공

절대 빈 목록

예: ["v4","v5"] v4 및 v5에는 제공하지만 v3에는 제공하지 않음
extend_beacon_guard_ttl 부울 비콘 가드 TTL (사용 시간) 의 길이를 컨텐츠 세션 TTL 길이로 설정합니다. 그렇지 않으면 기본값은 1분입니다.

광고 응답 유형

다음은 위 표에 나와 있는ad_config.expected_ad_response유형 작업에 대한 몇 가지 추가 정보입니다. 값:

프로세스 흐름

VOD SSAI 구성
VOD SSAI 구성

SSAI 광고 구성을 생성할 때 다음 프로세스 참고 사항에 유의하십시오.

VMAP

SSAI 구성의 광고 응답 유형이 DFP VMAP인 경우:

  • 비디오로 구성된 모든 큐 포인트는 무시됩니다.
  • SSAI는 정의된 위치의 모든 광고가 포함된 광고 공급자의 VMAP XML 파일을 구문 분석합니다.

VAST

SSAI 구성의 광고 응답 유형이 VAST 3.0인 경우:

  • 비디오에서 큐 포인트를 정의합니다. SSAI는 광고 시점을 구성하기 위해 비디오의 각 큐 포인트에 대해 요청을 합니다.
  • 동영상에 큐 포인트가 구성되지 않은 경우 기본적으로 프리롤 광고가 삽입됩니다.

광고 변수

템플릿 URL의 변수는 변수 경로 앞뒤에 선택적 공백이 있는 이중 중괄호 ( {{ … }} ) 로 식별됩니다. 모든 변수에는 세 개의 네임스페이스 중 하나가 접두사로 붙어있습니다.

시스템 변수

시스템 변수는 SSAI에서 제공하며 임의의 값을 생성하기 위한 최종 사용자 또는 도우미 변수에 대한 정보일 수 있습니다. 값은 URL 템플릿에 삽입되기 전에 URI로 인코딩되어야 합니다.

시스템 변수는 다음과 같이 식별됩니다. {{system.*}}

필드 설명
ad.position_time 광고 요청을 트리거한 큐 포인트의 시간(초)입니다. VAST 광고 응답 유형에만 사용 가능
ip_address 최종 사용자의 IP 주소
random_number_32 임의 32비트 정수
random_number_<min>_<max> 두 숫자 사이에 임의의 숫자를 생성합니다. 허용되는 범위는 0에서 최대값까지입니다UInt32 . 양수만 허용되며min는 보다 작아야 합니다. max
random_guid 임의의 UUID
referer 최종 사용자의 참조 헤더 값
timestamp_utc 유닉스 타임 스탬프로 현재 시간
unique_user_id MD5 (IP_주소+사용자_에이전트)
unix_timestamp 유닉스 타임 스탬프 (초) 로 현재 시간
user_agent 최종 사용자의 사용자 에이전트 헤더 값
uuid 랜덤 UUID
x_forwarded_for 최종 사용자의 X-포워드-대상 헤더 값
xfp.correlator 임의의 64 비트 정수
xfp.ip_address 최종 사용자의 IP 주소
xfp.unique_user_id MD5 (IP_주소+사용자_에이전트)
xfp.scor 임의의 64 비트 정수

URL 변수

진입점 VMap/매니페스트에 제공된 쿼리 매개 변수는url네임스페이스에서 사용할 수 있습니다. 다른 네임 스페이스의 변수와 달리 이러한 매개 변수는 템플릿에 삽입 할 때 URL이 인코딩되지 않습니다. 변수 값이 광고 공급자로가는 URL로 인코딩되어야하는 경우 진입 점 URL에 이중 URL로 인코딩되어야합니다.

URL 변수는 다음과 같이 식별됩니다. {{url.*}}

다음과 같이 사용자 지정 통합을 사용하여 URL 변수를 교체해야 합니다.

  1. Playback API에 요청하는 코드를 작성합니다.
  2. API 요청에서 반환된 데이터를 가로채십시오.
  3. 소스 URL의 모든{{url.*}}토큰을 교체합니다.
  4. 데이터/소스를 플레이어에 로드(웹용 Brightcove Player 또는 기본 SDK)

메타데이터 변수

메타데이터 변수는 비디오 클라우드 및 동적 전송 데이터 소스에서 파생된 콘텐츠 비디오를 설명하는 변수입니다. 값 (제외ad_keys )은 URL 템플릿에 삽입되기 전에 URL로 인코딩됩니다.

메타데이터 변수는 다음과 같이 식별됩니다. {{metadata.*}}

필드 설명
ad_keys

광고 응답 유형에 따라 아래 두 필드 중 하나를 사용하여 Video Cloud Studio Media 모듈에서 추가 및 편집할 수 있는 자유 형식 텍스트 문자열

  • 비 Vast 3.0 - '광고 키' 동영상 필드
  • Vast 3.0 - '광고 키' 동영상 필드가 동영상 큐 포인트의 '키/값 쌍' 필드와 연결됩니다. 큐 포인트 작업 방법을 알아보려면 미디어 모듈 문서에서 큐 포인트 작업을 참조하십시오.
custom_fields.{field_name} 비디오 클라우드 사용자 정의 필드
long_description 비디오 클라우드 자세한 설명
name 비디오 클라우드 비디오 이름
reference_id 비디오 클라우드 참조 ID
tags 비디오에 대한 Video Cloud 태그의 쉼표로 구분된 목록
title.duration 콘텐츠의 지속 시간 (초)
title.id 동적 배달 제목 ID
title.name 동적 배달 제목 이름
video_id 비디오 클라우드 비디오 ID
다른 비디오 클라우드 키/값 쌍도 여기에 있습니다.

진입점 URL 매개 변수

몇 가지 동작을 조정하기 위해 SSAI의 진입점 URL (VMAP 또는 매니페스트) 에 추가할 수 있는 몇 가지 쿼리 매개 변수가 있습니다.

매개 변수 설명
?rule=sd-only 계정 구성에 설정된 임계값보다 낮은 높이의 비디오 변환을 필터링합니다.
?rule=discos-enabled HLS에서 불연속으로 재생을 활성화하고 대시의 다중 기간에서 재생합니다. 재생 구성의 불연속 설정보다 우선합니다.
?rule=discos-disabled Dash의 HLS 및 다중 기간에서 불연속으로 재생을 비활성화합니다. 재생 구성의 불연속 설정보다 우선합니다.

구성 참고 사항

  1. SSAI를 사용하여 광고를 미리 로드하면 안 됩니다. 그 이유는 미리 로드하면 플레이어가 광고 노출과 동영상이 재생되기 전에 첫 번째 사분위수 비콘을 보고하기 때문입니다. 이로 인해 광고 분석이 부정확할 수 있습니다. Studio에서 SSAI를 구성하면 이 작업이 자동으로 수행되지만 수동으로 SSAI를 설정하는 경우에는 이 문제를 알고 있어야 합니다.
  2. 웹 플레이어가 SSAI를 사용하고 있고 이를 위한 동기 중 하나가 광고 차단기를 해결하는 것이라면 서버 측 비콘을 사용해야 합니다. 클라이언트 측 비콘은 차단되므로 사용해서는 안 됩니다.

클라이언트 측 매크로

클라이언트측 광고 매크로를 사용하려는 경우page접두사를 사용하십시오. 이러한 매크로를 사용하면 VMAP 및 서버 URL의 변수를 사용할 수 있습니다. 광고 매크로에 대한 자세한 내용은 IMA3 플러그인을 사용한광고 문서의 광고 매크로 및 ServerURL섹션을 참조하십시오.

클라이언트 측 매크로에는 다음과 같은 접두사가 붙습니다. {{page.*}}

예를 들어document.referrerpageVariable DOM 창 변수를 추가하려면 다음과 같이 광고page템플릿에서 접두사를 붙입니다.

https://adserver.com/{{page.document.referrer}}/{{page.pageVariable.whateverIwant}}

재생 API가document.referrer반환되고 VMAP 및 SRC URL에pageVariable.whateverIwant추가됩니다. 그런 다음 브라이트코브 플레이어는 요청을 보내기 전에 클라이언트 측 매크로 교체 논리를 실행하여 적절한 값을 바꿉니다.

https://bolt-prefix/blah.vmap?document.referrer={document.referrer}&pageVariable.whateverIwant={pageVariable.whateverIwant}

광고 오류 비콘

SSAI를 사용할 때 발생하는 BAST 광고 오류 비콘은 광고 워크플로와 관련된 문제를 사전에 찾고 해결하는 데 도움이 될 수 있습니다. 자세한 내용은 SSAI가 포함된광고 오류 비콘문서를 참조하십시오.