The shape of the player's customData on the requests
passed to CmcdReporter.createRequestReport.
Defaults to Record<string, unknown>.
OptionalcustomHeaderMap?: Partial<CmcdHeaderMap>A map of CMCD header fields to the custom keys that should be
emitted in them when the transmission mode is
CmcdTransmissionMode.HEADERS. Custom keys not listed in any
shard are emitted in the CMCD-Request header. Standard keys
have fixed shards per the CMCD specification and cannot be
re-routed. Has no effect in query transmission mode or on event
reports.
Optionaltransform?: CmcdRequestReportTransform<C>Transform applied to each request-mode report before encoding.
Return the data to continue, or null to skip CMCD decoration
for that request.
Applies only to reports created by
CmcdReporter.createRequestReport. To transform event
reports, set transform on the event target instead.
const { requester } = createMockRequester()
const reporter = new CmcdReporter({
sid: 'session-id',
cid: 'content-id',
enabledKeys: ['br', 'sid', 'cid', 'v', 'sn'],
// Request mode: never decorate license requests with CMCD
transform: (data, request) => request.url.includes('/license') ? null : data,
eventTargets: [
{
url: 'https://collector.example.com/cmcd',
events: [CmcdEventType.RESPONSE_RECEIVED],
enabledKeys: ['url', 'rc', 'sid', 'v', 'e', 'ts', 'sn'],
batchSize: 1,
// Event mode, this target only: segment responses only
transform: (data, request) =>
request?.customData?.['requestType'] === 'segment' ? data : null,
},
],
}, requester)
const license = reporter.createRequestReport({ url: 'https://drm.example.com/license' })
ok(!license.url.includes('CMCD='))
const segment = reporter.createRequestReport({ url: 'https://cdn.example.com/segment.mp4' })
ok(segment.url.includes('CMCD='))
OptionaltransmissionMode?: CmcdTransmissionModeThe transmission mode to use.
Configuration for a CMCD request report.