광고 구성은 광고 통화, 비콘 및 기타 구성 옵션을 포함하여 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",
"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] 값:
|
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 |
문자열 |
발사 할 비콘의 유형입니다. 값:
|
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
유형 작업에 대한 몇 가지 추가 정보입니다. 값:
vast_3_0
- 디지털 동영상 광고 서빙 템플릿 (VAST)dfp_vmap
- 동영상 멀티플 광고 플레이리스트 (VMAP)dfp_ad_rules
- 구글 광고 매니저 (GAM) 로 리브랜딩된 구글 DFP 전용 포맷smart_xml
- 프리휠을 위한 전용 포맷
프로세스 흐름
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 변수를 교체해야 합니다.
- Playback API에 요청하는 코드를 작성합니다.
- API 요청에서 반환된 데이터를 가로채십시오.
- 소스 URL의 모든
{{url.*}}
토큰을 교체합니다. - 데이터/소스를 플레이어에 로드(웹용 Brightcove Player 또는 기본 SDK)
메타데이터 변수
메타데이터 변수는 비디오 클라우드 및 동적 전송 데이터 소스에서 파생된 콘텐츠 비디오를 설명하는 변수입니다. 값 (제외ad_keys
)은 URL 템플릿에 삽입되기 전에 URL로 인코딩됩니다.
메타데이터 변수는 다음과 같이 식별됩니다. {{metadata.*}}
필드 | 설명 |
---|---|
ad_keys |
광고 응답 유형에 따라 아래 두 필드 중 하나를 사용하여 Video Cloud Studio Media 모듈에서 추가 및 편집할 수 있는 자유 형식 텍스트 문자열
|
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 및 다중 기간에서 불연속으로 재생을 비활성화합니다. 재생 구성의 불연속 설정보다 우선합니다. |
구성 참고 사항
- SSAI를 사용하여 광고를 미리 로드하면 안 됩니다. 그 이유는 미리 로드하면 플레이어가 광고 노출과 동영상이 재생되기 전에 첫 번째 사분위수 비콘을 보고하기 때문입니다. 이로 인해 광고 분석이 부정확할 수 있습니다. Studio에서 SSAI를 구성하면 이 작업이 자동으로 수행되지만 수동으로 SSAI를 설정하는 경우에는 이 문제를 알고 있어야 합니다.
- 웹 플레이어가 SSAI를 사용하고 있고 이를 위한 동기 중 하나가 광고 차단기를 해결하는 것이라면 서버 측 비콘을 사용해야 합니다. 클라이언트 측 비콘은 차단되므로 사용해서는 안 됩니다.
클라이언트 측 매크로
클라이언트측 광고 매크로를 사용하려는 경우page
접두사를 사용하십시오. 이러한 매크로를 사용하면 VMAP 및 서버 URL의 변수를 사용할 수 있습니다. 광고 매크로에 대한 자세한 내용은 IMA3 플러그인을 사용한광고 문서의 광고 매크로 및 ServerURL섹션을 참조하십시오.
클라이언트 측 매크로에는 다음과 같은 접두사가 붙습니다. {{page.*}}
예를 들어document.referrer
및pageVariable
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가 포함된광고 오류 비콘문서를 참조하십시오.