@cesteral/dbm-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +201 -0
- package/README.md +197 -0
- package/dist/config/index.d.ts +112 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +55 -0
- package/dist/config/index.js.map +1 -0
- package/dist/generated/compatibility-rules.d.ts +26 -0
- package/dist/generated/compatibility-rules.d.ts.map +1 -0
- package/dist/generated/compatibility-rules.js +142 -0
- package/dist/generated/compatibility-rules.js.map +1 -0
- package/dist/generated/filters.d.ts +19 -0
- package/dist/generated/filters.d.ts.map +1 -0
- package/dist/generated/filters.js +2541 -0
- package/dist/generated/filters.js.map +1 -0
- package/dist/generated/index.d.ts +5 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +5 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/metrics.d.ts +28 -0
- package/dist/generated/metrics.d.ts.map +1 -0
- package/dist/generated/metrics.js +961 -0
- package/dist/generated/metrics.js.map +1 -0
- package/dist/generated/report-types.d.ts +14 -0
- package/dist/generated/report-types.d.ts.map +1 -0
- package/dist/generated/report-types.js +94 -0
- package/dist/generated/report-types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js +299 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js +170 -0
- package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/custom-query-workflow.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/custom-query-workflow.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/custom-query-workflow.prompt.js +164 -0
- package/dist/mcp-server/prompts/definitions/custom-query-workflow.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/pacing-performance-analysis.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/pacing-performance-analysis.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/pacing-performance-analysis.prompt.js +204 -0
- package/dist/mcp-server/prompts/definitions/pacing-performance-analysis.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js +66 -0
- package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/troubleshoot-report.prompt.d.ts +4 -0
- package/dist/mcp-server/prompts/definitions/troubleshoot-report.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/troubleshoot-report.prompt.js +179 -0
- package/dist/mcp-server/prompts/definitions/troubleshoot-report.prompt.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/types.d.ts +15 -0
- package/dist/mcp-server/prompts/definitions/types.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/types.js +2 -0
- package/dist/mcp-server/prompts/definitions/types.js.map +1 -0
- package/dist/mcp-server/prompts/index.d.ts +6 -0
- package/dist/mcp-server/prompts/index.d.ts.map +1 -0
- package/dist/mcp-server/prompts/index.js +57 -0
- package/dist/mcp-server/prompts/index.js.map +1 -0
- package/dist/mcp-server/resources/definitions/compatibility-rules.resource.d.ts +3 -0
- package/dist/mcp-server/resources/definitions/compatibility-rules.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/compatibility-rules.resource.js +130 -0
- package/dist/mcp-server/resources/definitions/compatibility-rules.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/filter-types.resource.d.ts +4 -0
- package/dist/mcp-server/resources/definitions/filter-types.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/filter-types.resource.js +198 -0
- package/dist/mcp-server/resources/definitions/filter-types.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/index.d.ts +8 -0
- package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/index.js +49 -0
- package/dist/mcp-server/resources/definitions/index.js.map +1 -0
- package/dist/mcp-server/resources/definitions/metric-types.resource.d.ts +4 -0
- package/dist/mcp-server/resources/definitions/metric-types.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/metric-types.resource.js +221 -0
- package/dist/mcp-server/resources/definitions/metric-types.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/query-examples.resource.d.ts +169 -0
- package/dist/mcp-server/resources/definitions/query-examples.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/query-examples.resource.js +261 -0
- package/dist/mcp-server/resources/definitions/query-examples.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/report-types.resource.d.ts +3 -0
- package/dist/mcp-server/resources/definitions/report-types.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/report-types.resource.js +198 -0
- package/dist/mcp-server/resources/definitions/report-types.resource.js.map +1 -0
- package/dist/mcp-server/resources/index.d.ts +3 -0
- package/dist/mcp-server/resources/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/index.js +2 -0
- package/dist/mcp-server/resources/index.js.map +1 -0
- package/dist/mcp-server/resources/types.d.ts +16 -0
- package/dist/mcp-server/resources/types.d.ts.map +1 -0
- package/dist/mcp-server/resources/types.js +2 -0
- package/dist/mcp-server/resources/types.js.map +1 -0
- package/dist/mcp-server/server.d.ts +5 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +115 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-campaign-delivery.tool.d.ts +89 -0
- package/dist/mcp-server/tools/definitions/get-campaign-delivery.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-campaign-delivery.tool.js +128 -0
- package/dist/mcp-server/tools/definitions/get-campaign-delivery.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-historical-metrics.tool.d.ts +155 -0
- package/dist/mcp-server/tools/definitions/get-historical-metrics.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-historical-metrics.tool.js +160 -0
- package/dist/mcp-server/tools/definitions/get-historical-metrics.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-pacing-status.tool.d.ts +138 -0
- package/dist/mcp-server/tools/definitions/get-pacing-status.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-pacing-status.tool.js +171 -0
- package/dist/mcp-server/tools/definitions/get-pacing-status.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-performance-metrics.tool.d.ts +122 -0
- package/dist/mcp-server/tools/definitions/get-performance-metrics.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-performance-metrics.tool.js +143 -0
- package/dist/mcp-server/tools/definitions/get-performance-metrics.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/index.d.ts +8 -0
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/index.js +23 -0
- package/dist/mcp-server/tools/definitions/index.js.map +1 -0
- package/dist/mcp-server/tools/definitions/run-custom-query-async.tool.d.ts +4 -0
- package/dist/mcp-server/tools/definitions/run-custom-query-async.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/run-custom-query-async.tool.js +46 -0
- package/dist/mcp-server/tools/definitions/run-custom-query-async.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/run-custom-query.tool.d.ts +186 -0
- package/dist/mcp-server/tools/definitions/run-custom-query.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/run-custom-query.tool.js +202 -0
- package/dist/mcp-server/tools/definitions/run-custom-query.tool.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +2 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.js +2 -0
- package/dist/mcp-server/tools/index.js.map +1 -0
- package/dist/mcp-server/tools/utils/query-validation.d.ts +44 -0
- package/dist/mcp-server/tools/utils/query-validation.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/query-validation.js +107 -0
- package/dist/mcp-server/tools/utils/query-validation.js.map +1 -0
- package/dist/mcp-server/tools/utils/resolve-session.d.ts +4 -0
- package/dist/mcp-server/tools/utils/resolve-session.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/resolve-session.js +6 -0
- package/dist/mcp-server/tools/utils/resolve-session.js.map +1 -0
- package/dist/mcp-server/transports/streamable-http-transport.d.ts +55 -0
- package/dist/mcp-server/transports/streamable-http-transport.d.ts.map +1 -0
- package/dist/mcp-server/transports/streamable-http-transport.js +55 -0
- package/dist/mcp-server/transports/streamable-http-transport.js.map +1 -0
- package/dist/services/bid-manager/BidManagerService.d.ts +68 -0
- package/dist/services/bid-manager/BidManagerService.d.ts.map +1 -0
- package/dist/services/bid-manager/BidManagerService.js +464 -0
- package/dist/services/bid-manager/BidManagerService.js.map +1 -0
- package/dist/services/bid-manager/auth-bridge.d.ts +6 -0
- package/dist/services/bid-manager/auth-bridge.d.ts.map +1 -0
- package/dist/services/bid-manager/auth-bridge.js +13 -0
- package/dist/services/bid-manager/auth-bridge.js.map +1 -0
- package/dist/services/bid-manager/client.d.ts +4 -0
- package/dist/services/bid-manager/client.d.ts.map +1 -0
- package/dist/services/bid-manager/client.js +2 -0
- package/dist/services/bid-manager/client.js.map +1 -0
- package/dist/services/bid-manager/index.d.ts +6 -0
- package/dist/services/bid-manager/index.d.ts.map +1 -0
- package/dist/services/bid-manager/index.js +4 -0
- package/dist/services/bid-manager/index.js.map +1 -0
- package/dist/services/bid-manager/report-parser.d.ts +26 -0
- package/dist/services/bid-manager/report-parser.d.ts.map +1 -0
- package/dist/services/bid-manager/report-parser.js +141 -0
- package/dist/services/bid-manager/report-parser.js.map +1 -0
- package/dist/services/bid-manager/types.d.ts +668 -0
- package/dist/services/bid-manager/types.d.ts.map +1 -0
- package/dist/services/bid-manager/types.js +256 -0
- package/dist/services/bid-manager/types.js.map +1 -0
- package/dist/services/session-services.d.ts +12 -0
- package/dist/services/session-services.d.ts.map +1 -0
- package/dist/services/session-services.js +18 -0
- package/dist/services/session-services.js.map +1 -0
- package/dist/types-global/bid-manager.d.ts +76 -0
- package/dist/types-global/bid-manager.d.ts.map +1 -0
- package/dist/types-global/bid-manager.js +2 -0
- package/dist/types-global/bid-manager.js.map +1 -0
- package/dist/types-global/index.d.ts +2 -0
- package/dist/types-global/index.d.ts.map +1 -0
- package/dist/types-global/index.js +2 -0
- package/dist/types-global/index.js.map +1 -0
- package/dist/types-global/mcp.d.ts +2 -0
- package/dist/types-global/mcp.d.ts.map +1 -0
- package/dist/types-global/mcp.js +2 -0
- package/dist/types-global/mcp.js.map +1 -0
- package/dist/utils/date.d.ts +2 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +7 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/errors/bid-manager-errors.d.ts +57 -0
- package/dist/utils/errors/bid-manager-errors.d.ts.map +1 -0
- package/dist/utils/errors/bid-manager-errors.js +119 -0
- package/dist/utils/errors/bid-manager-errors.js.map +1 -0
- package/dist/utils/errors/index.d.ts +3 -0
- package/dist/utils/errors/index.d.ts.map +1 -0
- package/dist/utils/errors/index.js +3 -0
- package/dist/utils/errors/index.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/math.d.ts +9 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +38 -0
- package/dist/utils/math.js.map +1 -0
- package/dist/utils/metrics.d.ts +21 -0
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/utils/metrics.js +92 -0
- package/dist/utils/metrics.js.map +1 -0
- package/dist/utils/platform.d.ts +3 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +5 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/security/index.d.ts +2 -0
- package/dist/utils/security/index.d.ts.map +1 -0
- package/dist/utils/security/index.js +2 -0
- package/dist/utils/security/index.js.map +1 -0
- package/dist/utils/security/rate-limiter.d.ts +3 -0
- package/dist/utils/security/rate-limiter.d.ts.map +1 -0
- package/dist/utils/security/rate-limiter.js +5 -0
- package/dist/utils/security/rate-limiter.js.map +1 -0
- package/dist/utils/telemetry/index.d.ts +2 -0
- package/dist/utils/telemetry/index.d.ts.map +1 -0
- package/dist/utils/telemetry/index.js +2 -0
- package/dist/utils/telemetry/index.js.map +1 -0
- package/dist/utils/telemetry/tracing.d.ts +3 -0
- package/dist/utils/telemetry/tracing.d.ts.map +1 -0
- package/dist/utils/telemetry/tracing.js +4 -0
- package/dist/utils/telemetry/tracing.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
export const REPORT_TYPE_RESTRICTIONS = [
|
|
2
|
+
{
|
|
3
|
+
description: "TrueView metrics are only available in YOUTUBE reports",
|
|
4
|
+
metricsPattern: /^METRIC_TRUEVIEW/,
|
|
5
|
+
reportTypes: ["YOUTUBE"],
|
|
6
|
+
exclusive: true,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
description: "TrueView filters are only available in YOUTUBE reports",
|
|
10
|
+
filtersPattern: /^FILTER_TRUEVIEW/,
|
|
11
|
+
reportTypes: ["YOUTUBE"],
|
|
12
|
+
exclusive: true,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
description: "Active View TrueView metrics are only available in YOUTUBE reports",
|
|
16
|
+
metricsPattern: /_TRUEVIEW_/,
|
|
17
|
+
reportTypes: ["YOUTUBE"],
|
|
18
|
+
exclusive: true,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
description: "Unique Reach metrics require REACH or UNIQUE_REACH_AUDIENCE report type",
|
|
22
|
+
metricsPattern: /^METRIC_UNIQUE_REACH/,
|
|
23
|
+
reportTypes: ["REACH", "UNIQUE_REACH_AUDIENCE"],
|
|
24
|
+
exclusive: true,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
description: "GRP metrics require GRP report type",
|
|
28
|
+
metricsPattern: /^METRIC_GRP/,
|
|
29
|
+
reportTypes: ["GRP"],
|
|
30
|
+
exclusive: true,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
description: "Nielsen filters require GRP report type",
|
|
34
|
+
filtersPattern: /^FILTER_NIELSEN/,
|
|
35
|
+
reportTypes: ["GRP"],
|
|
36
|
+
exclusive: true,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
description: "YouTube Programmatic Guaranteed filters require YOUTUBE_PROGRAMMATIC_GUARANTEED report type",
|
|
40
|
+
filtersPattern: /YOUTUBE_PROGRAMMATIC_GUARANTEED/,
|
|
41
|
+
reportTypes: ["YOUTUBE_PROGRAMMATIC_GUARANTEED"],
|
|
42
|
+
exclusive: true,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
description: "Programmatic Guaranteed metrics require YOUTUBE_PROGRAMMATIC_GUARANTEED report type",
|
|
46
|
+
metricsPattern: /^METRIC_PROGRAMMATIC_GUARANTEED/,
|
|
47
|
+
reportTypes: ["YOUTUBE_PROGRAMMATIC_GUARANTEED"],
|
|
48
|
+
exclusive: true,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
description: "Floodlight metrics/filters work with STANDARD and FLOODLIGHT reports",
|
|
52
|
+
metricsPattern: /FLOODLIGHT/,
|
|
53
|
+
filtersPattern: /FLOODLIGHT/,
|
|
54
|
+
reportTypes: ["STANDARD", "FLOODLIGHT"],
|
|
55
|
+
exclusive: false,
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
export const INCOMPATIBLE_COMBINATIONS = [
|
|
59
|
+
{
|
|
60
|
+
description: "Reach metrics have limited filter compatibility",
|
|
61
|
+
incompatibleItems: {
|
|
62
|
+
metrics: [
|
|
63
|
+
"METRIC_UNIQUE_REACH_IMPRESSION_REACH",
|
|
64
|
+
"METRIC_UNIQUE_REACH_CLICK_REACH",
|
|
65
|
+
"METRIC_UNIQUE_REACH_TOTAL_REACH",
|
|
66
|
+
"METRIC_UNIQUE_REACH_AVERAGE_IMPRESSION_FREQUENCY",
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
reason: "Reach metrics can only be used with a limited set of groupBys due to privacy thresholds. " +
|
|
70
|
+
"Use coarse dimensions like FILTER_DATE, FILTER_ADVERTISER, FILTER_MEDIA_PLAN, FILTER_INSERTION_ORDER.",
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
export const GROUP_BY_ONLY_FILTERS = [
|
|
74
|
+
"FILTER_DATE",
|
|
75
|
+
"FILTER_DAY_OF_WEEK",
|
|
76
|
+
"FILTER_MONTH",
|
|
77
|
+
"FILTER_WEEK",
|
|
78
|
+
"FILTER_QUARTER",
|
|
79
|
+
"FILTER_YEAR",
|
|
80
|
+
"FILTER_TIME_OF_DAY",
|
|
81
|
+
"FILTER_UTC_DATE",
|
|
82
|
+
];
|
|
83
|
+
export function getCompatibilityWarnings(reportType, metrics, filters, groupBys) {
|
|
84
|
+
const warnings = [];
|
|
85
|
+
for (const rule of REPORT_TYPE_RESTRICTIONS) {
|
|
86
|
+
if (rule.metricsPattern && rule.exclusive) {
|
|
87
|
+
for (const metric of metrics) {
|
|
88
|
+
if (rule.metricsPattern.test(metric) &&
|
|
89
|
+
!rule.reportTypes.includes(reportType)) {
|
|
90
|
+
warnings.push(`Warning: ${metric} is typically only available in ${rule.reportTypes.join(", ")} reports, ` +
|
|
91
|
+
`but you're using ${reportType}. ${rule.description}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
for (const rule of REPORT_TYPE_RESTRICTIONS) {
|
|
97
|
+
if (rule.filtersPattern && rule.exclusive) {
|
|
98
|
+
const allFilters = [...filters, ...groupBys];
|
|
99
|
+
for (const filter of allFilters) {
|
|
100
|
+
if (rule.filtersPattern.test(filter) &&
|
|
101
|
+
!rule.reportTypes.includes(reportType)) {
|
|
102
|
+
warnings.push(`Warning: ${filter} is typically only available in ${rule.reportTypes.join(", ")} reports, ` +
|
|
103
|
+
`but you're using ${reportType}. ${rule.description}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
for (const filter of filters) {
|
|
109
|
+
if (GROUP_BY_ONLY_FILTERS.includes(filter)) {
|
|
110
|
+
warnings.push(`Warning: ${filter} should only be used as a groupBy dimension, not as a filter. ` +
|
|
111
|
+
`It may cause errors if used in the filters array.`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
for (const combo of INCOMPATIBLE_COMBINATIONS) {
|
|
115
|
+
if (combo.incompatibleItems.metrics) {
|
|
116
|
+
const matchingMetrics = metrics.filter((m) => combo.incompatibleItems.metrics.includes(m));
|
|
117
|
+
if (matchingMetrics.length > 0) {
|
|
118
|
+
warnings.push(`Note: ${combo.description}. ${combo.reason}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return warnings;
|
|
123
|
+
}
|
|
124
|
+
export function getMetricsForReportType(reportType) {
|
|
125
|
+
const exclusive = [];
|
|
126
|
+
const general = [];
|
|
127
|
+
for (const rule of REPORT_TYPE_RESTRICTIONS) {
|
|
128
|
+
if (rule.metricsPattern && rule.exclusive && rule.reportTypes.includes(reportType)) {
|
|
129
|
+
exclusive.push(rule.metricsPattern.source);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return { exclusive, general };
|
|
133
|
+
}
|
|
134
|
+
export const BEST_PRACTICES = [
|
|
135
|
+
"Build new reports in the DV360 UI first to validate metric/filter combinations before implementing via API.",
|
|
136
|
+
"Use STANDARD report type for most general queries - it supports the widest range of filters and metrics.",
|
|
137
|
+
"Use report-type-specific metrics only with their intended report types (e.g., METRIC_TRUEVIEW_* with YOUTUBE).",
|
|
138
|
+
"Time-based dimensions (DATE, WEEK, MONTH, etc.) can only be used as groupBys, not as filters.",
|
|
139
|
+
"Reach metrics have privacy thresholds and may return incomplete data with granular dimensions.",
|
|
140
|
+
"When combining reports with identical metrics and date ranges, consolidate filters and add filter types as dimensions.",
|
|
141
|
+
];
|
|
142
|
+
//# sourceMappingURL=compatibility-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compatibility-rules.js","sourceRoot":"","sources":["../../src/generated/compatibility-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const FilterTypeSchema: z.ZodEnum<["FILTER_ACTIVE_VIEW_CUSTOM_METRIC_ID", "FILTER_ACTIVE_VIEW_CUSTOM_METRIC_NAME", "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY", "FILTER_ADVERTISER", "FILTER_ADVERTISER_CURRENCY", "FILTER_ADVERTISER_INTEGRATION_CODE", "FILTER_ADVERTISER_INTEGRATION_STATUS", "FILTER_ADVERTISER_NAME", "FILTER_ADVERTISER_TIMEZONE", "FILTER_AD_POSITION", "FILTER_AD_TYPE", "FILTER_AGE", "FILTER_ALGORITHM", "FILTER_ALGORITHM_ID", "FILTER_AMP_PAGE_REQUEST", "FILTER_APP_URL", "FILTER_APP_URL_EXCLUDED", "FILTER_ASSET_COMBINATION_STRING", "FILTER_ATTRIBUTED_USERLIST", "FILTER_ATTRIBUTED_USERLIST_COMMERCE_PARTNER", "FILTER_ATTRIBUTED_USERLIST_COST", "FILTER_ATTRIBUTED_USERLIST_IS_COMMERCE", "FILTER_ATTRIBUTED_USERLIST_TYPE", "FILTER_ATTRIBUTION_MODEL", "FILTER_AUDIENCE_LIST", "FILTER_AUDIENCE_LIST_COST", "FILTER_AUDIENCE_LIST_TYPE", "FILTER_AUDIO_FEED_TYPE_NAME", "FILTER_AUTHORIZED_SELLER_STATE", "FILTER_BID_STRATEGY_TYPE_NAME", "FILTER_BILLABLE_OUTCOME", "FILTER_BRAND_LIFT_TYPE", "FILTER_BROWSER", "FILTER_BUDGET_SEGMENT_BUDGET", "FILTER_BUDGET_SEGMENT_DESCRIPTION", "FILTER_BUDGET_SEGMENT_END_DATE", "FILTER_BUDGET_SEGMENT_PACING_PERCENTAGE", "FILTER_BUDGET_SEGMENT_START_DATE", "FILTER_BUDGET_SEGMENT_TYPE", "FILTER_CAMPAIGN_DAILY_FREQUENCY", "FILTER_CARRIER", "FILTER_CARRIER_NAME", "FILTER_CART_DATA_ITEM_ID", "FILTER_CHANNEL_ID", "FILTER_CHANNEL_NAME", "FILTER_CHANNEL_TYPE", "FILTER_CITY", "FILTER_CITY_NAME", "FILTER_CM360_PLACEMENT_ID", "FILTER_COMMERCE_MEASUREMENT_FEE_COMMERCE_PARTNER_NAME", "FILTER_COMMERCE_MEASUREMENT_FEE_MERCHANT_ID", "FILTER_COMPANION_CREATIVE_ID", "FILTER_COMPANION_CREATIVE_NAME", "FILTER_CONTAINER_PERMISSIONED_LIST", "FILTER_CONVERSION_AD_EVENT_TYPE", "FILTER_CONVERSION_AD_EVENT_TYPE_ID", "FILTER_CONVERSION_DELAY", "FILTER_CONVERSION_SOURCE", "FILTER_CONVERSION_SOURCE_ID", "FILTER_COUNTRY", "FILTER_COUNTRY_ID", "FILTER_CREATIVE", "FILTER_CREATIVE_ASSET", "FILTER_CREATIVE_ATTRIBUTE", "FILTER_CREATIVE_HEIGHT", "FILTER_CREATIVE_ID", "FILTER_CREATIVE_INTEGRATION_CODE", "FILTER_CREATIVE_RENDERED_IN_AMP", "FILTER_CREATIVE_SIZE", "FILTER_CREATIVE_SOURCE", "FILTER_CREATIVE_STATUS", "FILTER_CREATIVE_TYPE", "FILTER_CREATIVE_WIDTH", "FILTER_CTV_AUDIENCE_EXPANSION", "FILTER_DATA_PROVIDER", "FILTER_DATA_PROVIDER_NAME", "FILTER_DATA_SOURCE", "FILTER_DATE", "FILTER_DAY_OF_WEEK", "FILTER_DEVICE_MAKE", "FILTER_DEVICE_MODEL", "FILTER_DEVICE_TYPE", "FILTER_DIGITAL_CONTENT_LABEL", "FILTER_DMA", "FILTER_DMA_NAME", "FILTER_DOMAIN", "FILTER_ELIGIBLE_COOKIES_ON_FIRST_PARTY_AUDIENCE_LIST", "FILTER_ELIGIBLE_COOKIES_ON_THIRD_PARTY_AUDIENCE_LIST_AND_INTEREST", "FILTER_EVENT_PLATFORM_TYPE", "FILTER_EVENT_TYPE", "FILTER_EXCHANGE", "FILTER_EXCHANGE_CODE", "FILTER_EXCHANGE_ID", "FILTER_EXTENSION", "FILTER_EXTENSION_ASSET", "FILTER_EXTENSION_ASSET_STATUS", "FILTER_EXTENSION_ASSET_TYPE", "FILTER_EXTENSION_STATUS", "FILTER_EXTENSION_TYPE", "FILTER_FIRST_PARTY_AUDIENCE_LIST_COST", "FILTER_FIRST_PARTY_AUDIENCE_LIST_TYPE", "FILTER_FLOODLIGHT_ACTIVITY", "FILTER_FLOODLIGHT_ACTIVITY_CONVERSION_CATEGORY", "FILTER_FLOODLIGHT_ACTIVITY_ID", "FILTER_FORMAT", "FILTER_GENDER", "FILTER_GMAIL_GENDER", "FILTER_GUILDER_PRODUCT_ID", "FILTER_IMPRESSION_COUNTING_METHOD", "FILTER_IMPRESSION_LOSS_REJECTION_REASON", "FILTER_INSERTION_ORDER", "FILTER_INSERTION_ORDER_GOAL_TYPE", "FILTER_INSERTION_ORDER_GOAL_VALUE", "FILTER_INSERTION_ORDER_INTEGRATION_CODE", "FILTER_INSERTION_ORDER_NAME", "FILTER_INSERTION_ORDER_STATUS", "FILTER_INVENTORY_COMMITMENT_TYPE", "FILTER_INVENTORY_DELIVERY_METHOD", "FILTER_INVENTORY_FORMAT", "FILTER_INVENTORY_MEDIA_COST_TYPE", "FILTER_INVENTORY_RATE_TYPE", "FILTER_INVENTORY_SOURCE", "FILTER_INVENTORY_SOURCES_PERMISSIONS", "FILTER_INVENTORY_SOURCE_EXTERNAL_ID", "FILTER_INVENTORY_SOURCE_GROUP", "FILTER_INVENTORY_SOURCE_GROUP_ID", "FILTER_INVENTORY_SOURCE_ID", "FILTER_INVENTORY_SOURCE_NAME", "FILTER_INVENTORY_SOURCE_TYPE", "FILTER_IS_YOUTUBE_TV", "FILTER_KEYWORD", "FILTER_LIFE_EVENTS", "FILTER_LINE_ITEM", "FILTER_LINE_ITEM_BUDGET", "FILTER_LINE_ITEM_DAILY_FREQUENCY", "FILTER_LINE_ITEM_END_DATE", "FILTER_LINE_ITEM_INTEGRATION_CODE", "FILTER_LINE_ITEM_LIFETIME_FREQUENCY", "FILTER_LINE_ITEM_NAME", "FILTER_LINE_ITEM_PACING_PERCENTAGE", "FILTER_LINE_ITEM_START_DATE", "FILTER_LINE_ITEM_STATUS", "FILTER_LINE_ITEM_TYPE", "FILTER_LOCATION_ASSET", "FILTER_LOCATION_ASSET_STATUS", "FILTER_LOCATION_ASSET_TYPE", "FILTER_MATCHED_GENRE_TARGET", "FILTER_MATCH_RATIO", "FILTER_MEASUREMENT_SOURCE", "FILTER_MEDIA_PLAN", "FILTER_MEDIA_PLAN_NAME", "FILTER_MEDIA_TYPE", "FILTER_MOBILE_GEO", "FILTER_MONITORED_ENTITY_PRIORITIZATION_NAME", "FILTER_MONTH", "FILTER_MRAID_SUPPORT", "FILTER_NIELSEN_COUNTRY_CODE", "FILTER_NIELSEN_DATE_RANGE", "FILTER_NIELSEN_DEVICE_ID", "FILTER_OMID_CAPABLE", "FILTER_OM_SDK_AVAILABLE", "FILTER_ORDER_ID", "FILTER_OS", "FILTER_OTHER_ADVERTISER_ID", "FILTER_OTHER_ADVERTISER_NAME", "FILTER_OTHER_CAMPAIGN_ID", "FILTER_OTHER_CAMPAIGN_NAME", "FILTER_OTHER_DEVICE_TYPE", "FILTER_PAGE_CATEGORY", "FILTER_PAGE_LAYOUT", "FILTER_PARTNER", "FILTER_PARTNER_CURRENCY", "FILTER_PARTNER_NAME", "FILTER_PARTNER_STATUS", "FILTER_PLACEMENT_ALL_YOUTUBE_CHANNELS", "FILTER_PLACEMENT_NAME_ALL_YOUTUBE_CHANNELS", "FILTER_PLATFORM", "FILTER_PLAYBACK_METHOD", "FILTER_POSITION_IN_CONTENT", "FILTER_PUBLIC_INVENTORY", "FILTER_PUBLISHER_TRAFFIC_SOURCE", "FILTER_QUARTER", "FILTER_REFRESHED_AD_NAME", "FILTER_REFUND_REASON", "FILTER_REGION", "FILTER_REGION_NAME", "FILTER_REWARDED", "FILTER_SENSITIVE_CATEGORY", "FILTER_SERVED_PIXEL_DENSITY", "FILTER_SITE_ID", "FILTER_SITE_LANGUAGE", "FILTER_SKIPPABLE_SUPPORT", "FILTER_SUBDOMAIN", "FILTER_TARGETED_DATA_PROVIDERS", "FILTER_TARGETED_LOCATION_DIMENSION_STRING", "FILTER_TARGETED_USER_LIST", "FILTER_TARGETING_EXPANSION", "FILTER_THIRD_PARTY_AUDIENCE_LIST_COST", "FILTER_THIRD_PARTY_AUDIENCE_LIST_TYPE", "FILTER_TIME_OF_DAY", "FILTER_TRUEVIEW_AD", "FILTER_TRUEVIEW_AD_FORMAT", "FILTER_TRUEVIEW_AD_GROUP", "FILTER_TRUEVIEW_AD_GROUP_AD_ID", "FILTER_TRUEVIEW_AD_GROUP_ID", "FILTER_TRUEVIEW_AD_TYPE_NAME", "FILTER_TRUEVIEW_AGE", "FILTER_TRUEVIEW_AUDIENCE_SEGMENT", "FILTER_TRUEVIEW_AUDIENCE_SEGMENT_TYPE", "FILTER_TRUEVIEW_CATEGORY", "FILTER_TRUEVIEW_CITY", "FILTER_TRUEVIEW_CLICK_TYPE_NAME", "FILTER_TRUEVIEW_CONTENT_SUITABILITY_DETAIL_NAME", "FILTER_TRUEVIEW_CONTENT_SUITABILITY_DETAIL_TYPE_NAME", "FILTER_TRUEVIEW_CONTENT_SUITABILITY_GROUP_NAME", "FILTER_TRUEVIEW_CONVERSION_TYPE", "FILTER_TRUEVIEW_COUNTRY", "FILTER_TRUEVIEW_CUSTOM_AFFINITY", "FILTER_TRUEVIEW_DETAILED_DEMOGRAPHICS", "FILTER_TRUEVIEW_DETAILED_DEMOGRAPHICS_ID", "FILTER_TRUEVIEW_DMA", "FILTER_TRUEVIEW_DMA_NAME", "FILTER_TRUEVIEW_GENDER", "FILTER_TRUEVIEW_HOUSEHOLD_INCOME", "FILTER_TRUEVIEW_INTEREST", "FILTER_TRUEVIEW_KEYWORD", "FILTER_TRUEVIEW_PARENTAL_STATUS", "FILTER_TRUEVIEW_PLACEMENT", "FILTER_TRUEVIEW_PLACEMENT_ID", "FILTER_TRUEVIEW_REGION", "FILTER_TRUEVIEW_REGION_NAME", "FILTER_TRUEVIEW_REMARKETING_LIST", "FILTER_TRUEVIEW_REMARKETING_LIST_NAME", "FILTER_TRUEVIEW_TARGETING_EXPANSION", "FILTER_TRUEVIEW_URL", "FILTER_TRUEVIEW_ZIPCODE", "FILTER_UNIQUE_REACH_SAMPLE_SIZE_ID", "FILTER_USER_LIST", "FILTER_USER_LIST_FIRST_PARTY", "FILTER_USER_LIST_FIRST_PARTY_NAME", "FILTER_USER_LIST_THIRD_PARTY", "FILTER_USER_LIST_THIRD_PARTY_NAME", "FILTER_UTC_DATE", "FILTER_VARIANT_ID", "FILTER_VARIANT_NAME", "FILTER_VARIANT_VERSION", "FILTER_VENDOR_MEASUREMENT_MODE", "FILTER_VERIFICATION_AUDIBILITY_COMPLETE", "FILTER_VERIFICATION_AUDIBILITY_START", "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE", "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_COMPLETE", "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_FIRST_QUARTILE", "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_MID_POINT", "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_START", "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_THIRD_QUARTILE", "FILTER_VERIFICATION_VIDEO_POSITION", "FILTER_VERIFICATION_VIDEO_RESIZED", "FILTER_VIDEO_AD_POSITION_IN_STREAM", "FILTER_VIDEO_COMPANION_CREATIVE_SIZE", "FILTER_VIDEO_CONTENT_DURATION", "FILTER_VIDEO_CONTENT_LIVE_STREAM", "FILTER_VIDEO_CONTINUOUS_PLAY", "FILTER_VIDEO_CREATIVE_DURATION", "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE", "FILTER_VIDEO_DURATION", "FILTER_VIDEO_DURATION_SECONDS", "FILTER_VIDEO_DURATION_SECONDS_RANGE", "FILTER_VIDEO_FORMAT_SUPPORT", "FILTER_VIDEO_PLAYER_SIZE", "FILTER_VIDEO_RATING_TIER", "FILTER_VIDEO_SKIPPABLE_SUPPORT", "FILTER_WEEK", "FILTER_YEAR", "FILTER_YOUTUBE_AD_VIDEO", "FILTER_YOUTUBE_AD_VIDEO_ID", "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_ADVERTISER", "FILTER_ZIP_CODE", "FILTER_ZIP_POSTAL_CODE"]>;
|
|
3
|
+
export type FilterType = z.infer<typeof FilterTypeSchema>;
|
|
4
|
+
export interface FilterMetadata {
|
|
5
|
+
displayName: string;
|
|
6
|
+
reportBuilderName: string;
|
|
7
|
+
category: string;
|
|
8
|
+
description: string;
|
|
9
|
+
usage: ("filter" | "groupBy")[];
|
|
10
|
+
reportTypes?: string[];
|
|
11
|
+
notes?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const FILTER_METADATA: Record<FilterType, FilterMetadata>;
|
|
14
|
+
export declare const FILTER_CATEGORIES: readonly ["Time", "Entity", "Targeting", "Audience", "Inventory", "Video", "Creative", "Conversion", "Viewability", "YouTube", "Audio", "Bidding", "Budget", "Commerce", "Cost", "Delivery", "Measurement", "Reach"];
|
|
15
|
+
export type FilterCategory = (typeof FILTER_CATEGORIES)[number];
|
|
16
|
+
export declare function getFiltersByCategory(category: FilterCategory): FilterType[];
|
|
17
|
+
export declare function getGroupByFilters(): FilterType[];
|
|
18
|
+
export declare function isValidFilterType(value: string): value is FilterType;
|
|
19
|
+
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/generated/filters.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,gBAAgB,gvQAuR3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAK1D,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,CAirE9D,CAAC;AAKF,eAAO,MAAM,iBAAiB,sNAmBpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAKhE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,EAAE,CAI3E;AAKD,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAIhD;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAEpE"}
|