광고 구성은 광고 통화, 비콘 및 기타 구성 옵션을 포함하여 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 OAuth 개요를 참조하십시오 .
운영
클라이언트 자격 증명을 요청할 때 원하는 계정 액세스 또는 작업 유형을 지정해야 합니다. 다음은 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": "http://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_config": {
"expected_ad_response": "vast_3_0",
"disable_server_beacons": false,
"round_up_cue_points": false,
"template_url": {
"template": "http://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": [ "*" ]
}
}
광고 구성 세부 정보 가져오기
계정의 경우 구성 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_config": {
"expected_ad_response": "dfp_ad_rules",
"disable_server_beacons": false,
"template_url": {
"template": "http://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": "http://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 }}" } |
discontinuities.dash [2] |
[] 문자열 | 다중 기간 대시 매니페스트를 제공할 대시 버전을 제어합니다. 모든 버전에 다중 기간 대시를 ["*"] 제공하도록 설정빈 목록 없음 예: ["live-timeline"] 실시간 타임라인용으로 제공하지만 hbbtv에는 제공하지 않음 |
discontinuities.hls [2] |
[] 문자열 | 불연속으로 제공할 hl의 버전을 제어합니다. 로 설정 ["*"] HLS의 모든 버전에서 불연속으로 제공절대 빈 목록 예: ["v4","v5"] v4 및 v5에는 제공하지만 v3에는 제공하지 않음 |
beacon_templates |
어레이 | 발사할 비콘 배열 (예: 타사 비콘) |
beacon_templates[].type |
문자열 |
발사 할 비콘의 유형입니다. 값:
|
beacon_templates[].template_url.template |
문자열 | 신호 URL 템플리트 |
extend_beacon_guard_ttl |
부울 | 비콘 가드 TTL (사용 시간) 의 길이를 컨텐츠 세션 TTL 길이로 설정합니다. 그렇지 않으면 기본값은 1분입니다. |
광고 변수
템플릿 URL의 변수는 변수 경로 앞뒤에 선택적 공백이 있는 이중 중괄호 ( {{ … }}
) 로 식별됩니다. 모든 변수에는 세 개의 네임스페이스 중 하나가 접두사로 붙어있습니다.
시스템 변수
시스템 변수는 SSAI에서 제공하며 임의의 값을 생성하기 위한 최종 사용자 또는 도우미 변수에 대한 정보일 수 있습니다. 값은 URL 템플릿에 삽입되기 전에 URI로 인코딩되어야 합니다.
시스템 변수는 다음과 같이 식별됩니다. {{system.*}}
필드 | 설명 |
---|---|
ip_address |
최종 사용자의 IP 주소 |
random_number_32 |
임의 32비트 정수 |
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 템플릿에 삽입되기 전에 인코딩된 URL입니다.
메타데이터 변수는 다음과 같이 식별됩니다. {{metadata.*}}
필드 | 설명 |
---|---|
ad_keys |
비디오 클라우드 스튜디오 미디어 모듈에서 추가 및 편집할 수 있는 자유 형식 텍스트 문자열 |
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가 포함된광고 오류 비콘문서를 참조하십시오.