MediaTailor 동적 광고 변수 - AWS Elemental MediaTailor

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

MediaTailor 동적 광고 변수

AWS Elemental MediaTailor 광고 결정 서버(ADS)에 대한 요청에는 현재 보기 세션에 대한 정보가 포함됩니다. 이 정보는 ADS가 응답에 제공할 최상의 광고를 선택하는 데 도움이 됩니다. MediaTailor 구성에서 ADS 템플릿을 구성할 때 매크로라고도 하는 동적 변수를 포함할 수 있습니다. 동적 변수는 대체 가능한 문자열입니다.

동적 변수의 형식은 다음과 같습니다.

  • 정적 값 - 한 세션에서 다음 세션으로 변경되지 않는 값입니다. 예를 들어 MediaTailor가 ADS에서 기대하는 응답 유형입니다.

  • 도메인 변수 - URL my-ads-server.com 같은 URL 도메인에 사용할 수 있는 동적 변수입니다 http://my-ads-server.com. 자세한 내용은 MediaTailor 도메인 변수을 참조하세요.

  • 세션 데이터 - 세션 ID와 같이 각 세션에 대해 MediaTailor에서 제공하는 동적 값입니다. 자세한 내용은 MediaTailor 세션 변수을 참조하세요.

  • 플레이어 데이터 - 각 세션에 대해 플레이어가 제공하는 동적 값입니다. 이는 콘텐츠 뷰어를 설명하고 ADS가 MediaTailor가 스트림에 연결해야 하는 광고를 결정하는 데 도움이 됩니다. 자세한 내용은 MediaTailor 플레이어 변수을 참조하세요.

MediaTailor 파라미터 참조 및 제한 사항

AWS Elemental MediaTailor 는 매니페스트 쿼리 파라미터와 ADS 파라미터 모두에 대해 파라미터 문자 제한, 길이 제한 및 지원되는 형식에 대한 포괄적인 정보를 제공합니다.

매니페스트 쿼리 파라미터 문자 제한

매니페스트 쿼리 파라미터는 특정 문자를 지원하며 길이 제한이 정의되어 있습니다.

지원되는 문자(URL 인코딩 제외)

매니페스트 쿼리 파라미터에 다음 문자를 직접 사용할 수 있습니다.

  • 영숫자 문자(A~Z, a~z, 0~9)

  • 마침표(.)

  • 하이픈(-)

  • 밑줄(_)

  • 백슬래시(\)

URL 인코딩이 지원되는 문자

URL 인코딩 시 다음과 같은 특수 문자가 지원됩니다.

  • 마침표(.) = %2E

  • 대시(-) = %2D

  • 밑줄(_) = %5F

  • 백분율(%) = %25

  • 물결표(~) = %7E

  • 슬래시(/) = %2F

  • 별표(*) = %2A

  • 같음(=) = %3D

  • 질문(?) = %3F

URL 인코딩 지원

MediaTailor는 URL 인코딩에 사용할 때 백분율(%) 기호를 지원합니다(예: hello%20world = hello world). HTTP 사양에 따라 URL 인코딩이 유효한 경우 URL 인코딩 문자를 사용할 수 있습니다.

지원되지 않는 문자

URL 인코딩 없이는 매니페스트 쿼리 파라미터에 :, , ?, &, =%, / (슬래시) 문자를 사용할 수 없습니다.

중요

MediaTailor는 %%% 또는 ==와 같은 이중 문자를 지원하지 않습니다. 문자 제한으로 인해 전체 URLs 매니페스트 쿼리 파라미터 값으로 사용할 수 없습니다.

길이 제한

모든 매니페스트 쿼리 파라미터(키와 값을 합친 값)의 총 길이는 2,000자를 초과해서는 안 됩니다.

ADS 파라미터 길이 제한

ADS에 대한 요청에 사용되는 파라미터에는 다음과 같은 길이 제한이 적용됩니다.

  • ADS 파라미터 이름: 최대 10,000자

  • ADS 파라미터 값: 최대 25,000자

  • ADS URL: 최대 25,000자

MediaTailor 구성 별칭 및 동적 변수 교체

AWS Elemental MediaTailor 구성 별칭을 사용하면 URL 도메인 및 기타 지원되는 필드에서 동적 변수 교체가 가능합니다. 이 기능을 사용하여 여러 도메인을 사용하고 세션 초기화 중에 URLs 동적으로 구성합니다.

동적 변수 교체에 지원되는 필드

다음 구성 필드에서 동적 변수를 사용할 수 있습니다.

  • VideoContentSourceUrl

  • AdDecisionServerUrl

  • LivePreroll.AdDecisionServerUrl

  • AdSegmentUrlPrefix

  • ContentSegmentUrlPrefix

  • TranscodeProfileName

  • SlateAdUrl

  • StartUrl

  • EndUrl

도메인 수준 파라미터 규칙

URLs의 도메인 부분에서 동적 변수를 사용하는 경우 다음 제한이 적용됩니다.

  • 도메인에 사용되는 모든 동적 변수는 로 지정해야 합니다. ConfigurationAliases

  • 만 가능 player_params

  • 별칭이 지정된 값의 목록은 전체여야 합니다.

  • 별칭이 잘못되었거나 누락되면 HTTP 400 오류가 발생합니다.

ConfigurationAliases API 파라미터 구조

ConfigurationAliases 파라미터는 다음 JSON 구조를 사용합니다.

{ "ConfigurationAliases": { "player_params.origin_domain": { "pdx": "abc.mediapackage.us-west-2.amazonaws.com", "iad": "xyz.mediapackage.us-east-1.amazonaws.com" }, "player_params.ad_type": { "customized": "abc12345", "default": "defaultAdType" } } }
API 일관성

playerParams는 이제 ads 및의 대안으로 지원adsParams되므로 API 일관성이 향상됩니다.

누락된 별칭에 대한 대체 동작

구성 별칭을 찾을 수 없거나 유효하지 않은 경우 MediaTailor는 다음 대체 동작을 구현합니다.

  • 도메인 변수: 도메인 변수 별칭이 누락되었거나 유효하지 않은 경우 HTTP 400 상태 코드와 함께 요청이 실패합니다. 모든 도메인 변수에는 유효한 별칭이 정의되어 있어야 합니다.

  • 비도메인 변수: URLs의 비도메인 부분에 사용되는 변수(예: 경로 요소 또는 쿼리 파라미터)의 경우 별칭이 누락되면 빈 문자열이 대체됩니다.

  • 구성 검증: MediaTailor는 구성 생성 및 업데이트 작업 중에 필요한 모든 별칭이 있는지 확인합니다.

고급 다중 구성 사용 사례

구성 별칭을 사용하면 다음 시나리오에서 정교한 다중 구성 아키텍처를 사용할 수 있습니다.

예 별칭을 사용하여 구성 완료

다음 예제에서는 구성 별칭과 동적 도메인 변수를 포함하는 전체 구성을 보여줍니다.

PUT /playbackConfiguration { "Name": "aliasedConfig", "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]", "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]", "AdSegmentUrlPrefix": "https://[player_params.ad_cdn_domain]/ads/", "ContentSegmentUrlPrefix": "https://[player_params.content_cdn_domain]/content/", "TranscodeProfileName": "[player_params.transcode_profile]", "SlateAdUrl": "https://[player_params.slate_domain]/slate/[player_params.slate_type].mp4", "StartUrl": "https://[player_params.tracking_domain]/start?session=[session.id]", "EndUrl": "https://[player_params.tracking_domain]/end?session=[session.id]", "ConfigurationAliases": { "player_params.origin_domain": { "pdx": "abc", "iad": "xyz" }, "player_params.region": { "pdx": "us-west-2", "iad": "us-east-1" }, "player_params.endpoint_id": { "pdx": "abcd", "iad": "wxyz" }, "player_params.ad_type": { "customized": "abc12345", "default": "defaultAdType" }, "player_params.ad_cdn_domain": { "pdx": "ads-west.cdn.example.com", "iad": "ads-east.cdn.example.com" }, "player_params.content_cdn_domain": { "pdx": "content-west.cdn.example.com", "iad": "content-east.cdn.example.com" }, "player_params.transcode_profile": { "mobile": "mobile_optimized", "desktop": "high_quality", "tv": "4k_profile" }, "player_params.slate_domain": { "pdx": "slate-west.example.com", "iad": "slate-east.example.com" }, "player_params.slate_type": { "standard": "default_slate", "branded": "brand_slate" }, "player_params.tracking_domain": { "pdx": "tracking-west.example.com", "iad": "tracking-east.example.com" } } }
예 별칭을 사용한 세션 초기화

이전 구성을 사용하여 플레이어 변수와 별칭을 지정하는 세션 초기화 요청을 생성합니다.

POST master.m3u8 { "playerParams": { "origin_domain": "pdx", "region": "pdx", "endpoint_id": "pdx", "ad_type": "customized", "ad_cdn_domain": "pdx", "content_cdn_domain": "pdx", "transcode_profile": "mobile", "slate_domain": "pdx", "slate_type": "branded", "tracking_domain": "pdx" } }
예 파라미터 처리 흐름

MediaTailor는 별칭 문자열을 구성 별칭의 매핑된 값으로 바꿉니다. 처리 결과 다음과 같은 요청이 발생합니다.

  • ADS 요청:

    https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
  • VideoContentSource 요청:

    https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
  • AdSegmentUrlPrefix:

    https://ads-west.cdn.example.com/ads/
  • ContentSegmentUrlPrefix:

    https://content-west.cdn.example.com/content/
  • TranscodeProfileName:

    mobile_optimized
  • SlateAdUrl:

    https://slate-west.example.com/slate/brand_slate.mp4
  • StartUrl:

    https://tracking-west.example.com/start?session=[session.id]
  • EndUrl:

    https://tracking-west.example.com/end?session=[session.id]

MediaTailor에 파라미터 전달

AWS Elemental MediaTailor 는 다음 단계를 사용하여 ADS에 대한 MediaTailor 요청에서 동적 변수 설정을 지원합니다.

세션 초기화 방법

MediaTailor는 세션 초기화 및 파라미터 전달을 위한 여러 방법을 지원합니다.

  1. 요청 본문이 있는 POST:

    POST <master>.m3u8 { "adsParams": {"param1": "value1", "param2": "value2"}, "playerParams": {"param3": "value3"} }
  2. URL의 쿼리 파라미터:

    GET <master>.m3u8?ads.param1=value1&ads.param2=value2&playerParams.param3=value3
중요

초기화 시 파라미터를 한 번만 지정할 수 있습니다. 구성 별칭은 전달하기 전에 실제 값으로 확인됩니다.

세션 및 플레이어 정보를 ADS에 전달하려면
  1. ADS와 협력하여 광고 쿼리에 응답하는 데 필요한 정보를 결정합니다 AWS Elemental MediaTailor.

  2. ADS 요구 사항을 충족하는 템플릿 ADS 요청 URL을 사용하는 구성을 MediaTailor에서 생성합니다. URL에는 정적 파라미터를 포함시키고 동적 파라미터의 자리 표시자를 포함시킵니다. 구성의 Ad decision server(광고 의사결정 서버) 필드에 템플릿 URL을 입력합니다.

    다음 예제 템플릿 URL에서 correlation은 세션 데이터를 제공하고 deviceType은 플레이어 데이터를 제공합니다.

    https://my.ads.server.com/path?correlation=[session.id]&deviceType=[player_params.deviceType]
  3. 플레이어에서는 AWS Elemental MediaTailor 이 플레이어 데이터의 파라미터를 제공하도록 세션 시작 요청을 구성합니다. 세션 시작 요청에 파라미터를 포함시키고 세션에 대한 후속적인 요청에서 이를 제외합니다.

    세션을 초기화하기 위해 플레이어가 수행하는 호출 유형에 따라 플레이어(클라이언트) 또는 MediaTailor(서버)가 세션에 대한 광고 추적 보고를 제공하는지 여부가 결정됩니다. 이러한 두 가지 옵션에 대한 자세한 내용은 광고 추적 데이터 보고 단원을 참조하십시오.

    서버 측 또는 클라이언트 측 광고 추적 보고 중 어떤 것을 원하는지 여부에 따라 다음 호출 유형 중 하나를 실행합니다. 두 가지 예제 호출의 경우 모두 userID는 ADS를 위한 것이며 auth_token은 오리진을 위한 것입니다.

    • (선택 사항) 서버 측 광고 추적 보고 호출 - MediaTailor가 ADS로 전송할 파라미터 앞에를 추가합니다ads. MediaTailor가 오리진 서버로 전송할 파라미터의 접두사를 끈 상태로 둡니다.

      다음 예제에서는에 대한 HLS 및 DASH에 대한 수신 요청을 보여줍니다 AWS Elemental MediaTailor. MediaTailor는 ADS에 대한 요청deviceType에서를 사용하고 오리진 서버에 대한 요청auth_token에서를 사용합니다.

      HLS 예:

      GET master.m3u8?ads.deviceType=ipad&auth_token=kjhdsaf7gh

      DASH 예:

      GET manifest.mpd?ads.deviceType=ipad&auth_token=kjhdsaf7gh
    • (선택 사항) 클라이언트 측 광고 추적 보고를 위한 호출 - adsParams 객체 내의 ADS에 대한 파라미터를 제공합니다.

      HLS 예:

      POST master.m3u8 { "adsParams": { "deviceType": "ipad" } }

      DASH 예:

      POST manifest.mpd { "adsParams": { "deviceType": "ipad" } }

플레이어가 세션을 시작하면 템플릿 ADS 요청 URL의 변수를 세션 데이터 및 플레이어의 ads 파라미터로 바 AWS Elemental MediaTailor 꿉니다. 나머지 파라미터는 플레이어에서 오리진 서버로 전달됩니다.

예 광고 변수를 사용한 MediaTailor 요청

다음 예제에서는 앞에 나온 플레이어의 세션 초기화 호출 예제와 일치하는 AWS Elemental MediaTailor 에서의 ADS 및 오리진 서버로의 호출을 보여줍니다.

  • MediaTailor는 세션 데이터와 플레이어의 디바이스 유형을 사용하여 ADS를 호출합니다.

    https://my.ads.server.com/path?correlation=896976764&deviceType=ipad
  • MediaTailor는 플레이어의 권한 부여 토큰을 사용하여 오리진 서버를 호출합니다.

    • HLS 예:

      https://my.origin.server.com/master.m3u8?auth_token=kjhdsaf7gh
    • DASH 예:

      https://my.origin.server.com/manifest.mpd?auth_token=kjhdsaf7gh

고급 사용

플레이어 및 세션 데이터로 다양한 방법으로 ADS 요청을 사용자 지정할 수 있습니다. ADS 호스트 이름만 포함하면 됩니다.

다음 예시에서는 요청을 사용자 지정할 수 있는 방법의 일부를 보여줍니다.

  • 플레이어 파라미터와 세션 파라미터를 연결하여 새 파라미터를 생성합니다. 예시

    https://my.ads.com?key1=[player_params.value1][session.id]
  • 플레이어 파라미터를 경로 요소의 일부로 사용합니다. 예시

    https://my.ads.com/[player_params.path]?key=value
  • 플레이어 파라미터를 사용하여 단지 값을 전달하기 보다는 경로 요소와 키 자체를 둘 다 전달합니다. 예시

    https://my.ads.com/[player_params.path]?[player_params.key1]=[player_params.value1]

MediaTailor 구성 별칭 문제 해결

AWS Elemental MediaTailor 는 일반적인 구성 별칭 문제 및 오류 시나리오에 대한 체계적인 문제 해결 지침을 제공합니다.

구성 별칭 검증 오류

구성 별칭이 누락되거나 유효하지 않은 경우 MediaTailor는 문제를 식별하는 데 도움이 되도록 특정 오류 응답을 반환합니다.

일반적인 오류 시나리오

다음 표에서는 일반적인 구성 별칭 오류와 해결 단계를 설명합니다.

오류 원인 해결 방법
HTTP 400: 잘못된 플레이어 파라미터 별칭 ConfigurationAliases에서 플레이어 파라미터 값을 찾을 수 없음 플레이어 파라미터 값이 해당 ConfigurationAliases 매핑에 키로 존재하는지 확인합니다.
HTTP 400: 필수 구성 별칭 누락 해당 ConfigurationAliases 항목 없이 사용되는 도메인 변수 모든 필수 별칭 매핑을 사용하여 누락된 플레이어 파라미터를 ConfigurationAliases에 추가
HTTP 400: 구성 검증 실패 ConfigurationAliases 구조의 형식이 잘못되었거나 불완전함 JSON 구조를 검증하고 모든 도메인 변수에 해당 별칭이 있는지 확인합니다.
URLs의 빈 문자열 대체 도메인이 아닌 변수 별칭을 찾을 수 없음 누락된 별칭 매핑 추가 또는 ConfigurationAliases에 기본값 제공
검증 체크리스트

다음 체크리스트를 사용하여 구성 별칭 설정을 검증합니다.

  1. 도메인 변수 적용 범위: URLs 있는지 확인합니다. ConfigurationAliases

  2. 별칭 완전성: 가능한 모든 플레이어 파라미터 값이 별칭 매핑에 키로 포함되어 있는지 확인합니다.

  3. JSON 구조: ConfigurationAliases JSON의 형식이 올바르게 지정되고 중첩되었는지 확인

  4. 파라미터 이름 지정: 모든 플레이어 파라미터가 player_params. 접두사를 사용하는지 확인

  5. 값 일관성: 별칭 값이 용도에 맞는지 확인(URLs, 프로필 이름 등)

구성 별칭 확인 디버깅

이 체계적인 접근 방식을 따라 구성 별칭 해결 문제를 디버깅합니다.

Step-by-step 디버깅 방법론

다음 단계에 따라 구성 별칭 문제를 식별하고 해결합니다.

구성 별칭 디버깅 절차
  1. 구성 구조 확인: 재생 구성에 올바른 형식의 ConfigurationAliases가 포함되어 있는지 확인합니다.

    { "ConfigurationAliases": { "player_params.example_param": { "alias1": "value1", "alias2": "value2" } } }
  2. 플레이어 파라미터 형식 확인: 세션 초기화에 올바른 형식의 플레이어 파라미터가 포함되어 있는지 확인합니다.

    { "playerParams": { "example_param": "alias1" } }
  3. 별칭 매핑 검증: 플레이어 파라미터 값("alias1")이 ConfigurationAliases 매핑에 키로 존재하는지 확인합니다.

  4. 간단한 구성으로 테스트: 최소한의 구성으로 시작하여 문제를 격리합니다.

  5. 오류 응답 모니터링: 특정 검증 메시지에 대한 MediaTailor 오류 응답 확인

  6. 해결URLs 확인: 최종 해결된 URLs 유효하고 액세스 가능한지 확인

구성 별칭 모범 사례

다음 모범 사례를 따라 안정적인 구성 별칭 구현을 보장합니다.

보안 고려 사항

구성 별칭을 사용할 때 다음 보안 조치를 구현합니다.

  • 입력 검증: 별칭 확인에 사용하기 전에 모든 플레이어 파라미터 값을 검증합니다.

  • 별칭 값 삭제: 별칭 값에 예상 문자 및 형식만 포함되는지 확인합니다.

  • 도메인 제한: 도메인 별칭을 신뢰할 수 있고 제어된 도메인으로 제한

  • 액세스 제어: 권한 있는 직원으로만 구성 수정 제한

성능 최적화

다음 권장 사항을 사용하여 구성 별칭 성능을 최적화합니다.

  • 별칭 수 최소화: 처리 오버헤드를 줄이기 위해 필요한 별칭만 사용

  • 효율적인 이름 지정: 별칭 및 파라미터에 명확하고 일관된 이름 지정 규칙 사용

  • 기본값: 일반적인 사용 사례에 적합한 기본 별칭 제공

  • 구성 캐싱: MediaTailor의 구성 캐싱을 활용하여 성능 향상

유지 관리 및 모니터링

다음 방법을 사용하여 안정적인 구성 별칭 작업을 유지합니다.

  • 정기적인 검증: 모든 별칭 매핑이 최신이고 작동하는지 정기적으로 검증합니다.

  • 오류 모니터링: 누락되거나 잘못된 별칭과 관련된 HTTP 400 오류 모니터링

  • 설명서: 모든 별칭 매핑 및 용도에 대한 명확한 설명서 유지

  • 테스트 절차: 모든 별칭 조합에 대한 포괄적인 테스트 구현

동적 도메인, 세션 및 플레이어 변수 사용에 대한 자세한 내용은 해당 주제를 선택합니다.