@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.
Files changed (227) hide show
  1. package/LICENSE.md +201 -0
  2. package/README.md +197 -0
  3. package/dist/config/index.d.ts +112 -0
  4. package/dist/config/index.d.ts.map +1 -0
  5. package/dist/config/index.js +55 -0
  6. package/dist/config/index.js.map +1 -0
  7. package/dist/generated/compatibility-rules.d.ts +26 -0
  8. package/dist/generated/compatibility-rules.d.ts.map +1 -0
  9. package/dist/generated/compatibility-rules.js +142 -0
  10. package/dist/generated/compatibility-rules.js.map +1 -0
  11. package/dist/generated/filters.d.ts +19 -0
  12. package/dist/generated/filters.d.ts.map +1 -0
  13. package/dist/generated/filters.js +2541 -0
  14. package/dist/generated/filters.js.map +1 -0
  15. package/dist/generated/index.d.ts +5 -0
  16. package/dist/generated/index.d.ts.map +1 -0
  17. package/dist/generated/index.js +5 -0
  18. package/dist/generated/index.js.map +1 -0
  19. package/dist/generated/metrics.d.ts +28 -0
  20. package/dist/generated/metrics.d.ts.map +1 -0
  21. package/dist/generated/metrics.js +961 -0
  22. package/dist/generated/metrics.js.map +1 -0
  23. package/dist/generated/report-types.d.ts +14 -0
  24. package/dist/generated/report-types.d.ts.map +1 -0
  25. package/dist/generated/report-types.js +94 -0
  26. package/dist/generated/report-types.js.map +1 -0
  27. package/dist/index.d.ts +3 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +51 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts +4 -0
  32. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.d.ts.map +1 -0
  33. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js +299 -0
  34. package/dist/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.js.map +1 -0
  35. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts +4 -0
  36. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.d.ts.map +1 -0
  37. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js +170 -0
  38. package/dist/mcp-server/prompts/definitions/cross-platform-performance.prompt.js.map +1 -0
  39. package/dist/mcp-server/prompts/definitions/custom-query-workflow.prompt.d.ts +4 -0
  40. package/dist/mcp-server/prompts/definitions/custom-query-workflow.prompt.d.ts.map +1 -0
  41. package/dist/mcp-server/prompts/definitions/custom-query-workflow.prompt.js +164 -0
  42. package/dist/mcp-server/prompts/definitions/custom-query-workflow.prompt.js.map +1 -0
  43. package/dist/mcp-server/prompts/definitions/pacing-performance-analysis.prompt.d.ts +4 -0
  44. package/dist/mcp-server/prompts/definitions/pacing-performance-analysis.prompt.d.ts.map +1 -0
  45. package/dist/mcp-server/prompts/definitions/pacing-performance-analysis.prompt.js +204 -0
  46. package/dist/mcp-server/prompts/definitions/pacing-performance-analysis.prompt.js.map +1 -0
  47. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts +4 -0
  48. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.d.ts.map +1 -0
  49. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js +66 -0
  50. package/dist/mcp-server/prompts/definitions/tool-schema-exploration.prompt.js.map +1 -0
  51. package/dist/mcp-server/prompts/definitions/troubleshoot-report.prompt.d.ts +4 -0
  52. package/dist/mcp-server/prompts/definitions/troubleshoot-report.prompt.d.ts.map +1 -0
  53. package/dist/mcp-server/prompts/definitions/troubleshoot-report.prompt.js +179 -0
  54. package/dist/mcp-server/prompts/definitions/troubleshoot-report.prompt.js.map +1 -0
  55. package/dist/mcp-server/prompts/definitions/types.d.ts +15 -0
  56. package/dist/mcp-server/prompts/definitions/types.d.ts.map +1 -0
  57. package/dist/mcp-server/prompts/definitions/types.js +2 -0
  58. package/dist/mcp-server/prompts/definitions/types.js.map +1 -0
  59. package/dist/mcp-server/prompts/index.d.ts +6 -0
  60. package/dist/mcp-server/prompts/index.d.ts.map +1 -0
  61. package/dist/mcp-server/prompts/index.js +57 -0
  62. package/dist/mcp-server/prompts/index.js.map +1 -0
  63. package/dist/mcp-server/resources/definitions/compatibility-rules.resource.d.ts +3 -0
  64. package/dist/mcp-server/resources/definitions/compatibility-rules.resource.d.ts.map +1 -0
  65. package/dist/mcp-server/resources/definitions/compatibility-rules.resource.js +130 -0
  66. package/dist/mcp-server/resources/definitions/compatibility-rules.resource.js.map +1 -0
  67. package/dist/mcp-server/resources/definitions/filter-types.resource.d.ts +4 -0
  68. package/dist/mcp-server/resources/definitions/filter-types.resource.d.ts.map +1 -0
  69. package/dist/mcp-server/resources/definitions/filter-types.resource.js +198 -0
  70. package/dist/mcp-server/resources/definitions/filter-types.resource.js.map +1 -0
  71. package/dist/mcp-server/resources/definitions/index.d.ts +8 -0
  72. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  73. package/dist/mcp-server/resources/definitions/index.js +49 -0
  74. package/dist/mcp-server/resources/definitions/index.js.map +1 -0
  75. package/dist/mcp-server/resources/definitions/metric-types.resource.d.ts +4 -0
  76. package/dist/mcp-server/resources/definitions/metric-types.resource.d.ts.map +1 -0
  77. package/dist/mcp-server/resources/definitions/metric-types.resource.js +221 -0
  78. package/dist/mcp-server/resources/definitions/metric-types.resource.js.map +1 -0
  79. package/dist/mcp-server/resources/definitions/query-examples.resource.d.ts +169 -0
  80. package/dist/mcp-server/resources/definitions/query-examples.resource.d.ts.map +1 -0
  81. package/dist/mcp-server/resources/definitions/query-examples.resource.js +261 -0
  82. package/dist/mcp-server/resources/definitions/query-examples.resource.js.map +1 -0
  83. package/dist/mcp-server/resources/definitions/report-types.resource.d.ts +3 -0
  84. package/dist/mcp-server/resources/definitions/report-types.resource.d.ts.map +1 -0
  85. package/dist/mcp-server/resources/definitions/report-types.resource.js +198 -0
  86. package/dist/mcp-server/resources/definitions/report-types.resource.js.map +1 -0
  87. package/dist/mcp-server/resources/index.d.ts +3 -0
  88. package/dist/mcp-server/resources/index.d.ts.map +1 -0
  89. package/dist/mcp-server/resources/index.js +2 -0
  90. package/dist/mcp-server/resources/index.js.map +1 -0
  91. package/dist/mcp-server/resources/types.d.ts +16 -0
  92. package/dist/mcp-server/resources/types.d.ts.map +1 -0
  93. package/dist/mcp-server/resources/types.js +2 -0
  94. package/dist/mcp-server/resources/types.js.map +1 -0
  95. package/dist/mcp-server/server.d.ts +5 -0
  96. package/dist/mcp-server/server.d.ts.map +1 -0
  97. package/dist/mcp-server/server.js +115 -0
  98. package/dist/mcp-server/server.js.map +1 -0
  99. package/dist/mcp-server/tools/definitions/get-campaign-delivery.tool.d.ts +89 -0
  100. package/dist/mcp-server/tools/definitions/get-campaign-delivery.tool.d.ts.map +1 -0
  101. package/dist/mcp-server/tools/definitions/get-campaign-delivery.tool.js +128 -0
  102. package/dist/mcp-server/tools/definitions/get-campaign-delivery.tool.js.map +1 -0
  103. package/dist/mcp-server/tools/definitions/get-historical-metrics.tool.d.ts +155 -0
  104. package/dist/mcp-server/tools/definitions/get-historical-metrics.tool.d.ts.map +1 -0
  105. package/dist/mcp-server/tools/definitions/get-historical-metrics.tool.js +160 -0
  106. package/dist/mcp-server/tools/definitions/get-historical-metrics.tool.js.map +1 -0
  107. package/dist/mcp-server/tools/definitions/get-pacing-status.tool.d.ts +138 -0
  108. package/dist/mcp-server/tools/definitions/get-pacing-status.tool.d.ts.map +1 -0
  109. package/dist/mcp-server/tools/definitions/get-pacing-status.tool.js +171 -0
  110. package/dist/mcp-server/tools/definitions/get-pacing-status.tool.js.map +1 -0
  111. package/dist/mcp-server/tools/definitions/get-performance-metrics.tool.d.ts +122 -0
  112. package/dist/mcp-server/tools/definitions/get-performance-metrics.tool.d.ts.map +1 -0
  113. package/dist/mcp-server/tools/definitions/get-performance-metrics.tool.js +143 -0
  114. package/dist/mcp-server/tools/definitions/get-performance-metrics.tool.js.map +1 -0
  115. package/dist/mcp-server/tools/definitions/index.d.ts +8 -0
  116. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  117. package/dist/mcp-server/tools/definitions/index.js +23 -0
  118. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  119. package/dist/mcp-server/tools/definitions/run-custom-query-async.tool.d.ts +4 -0
  120. package/dist/mcp-server/tools/definitions/run-custom-query-async.tool.d.ts.map +1 -0
  121. package/dist/mcp-server/tools/definitions/run-custom-query-async.tool.js +46 -0
  122. package/dist/mcp-server/tools/definitions/run-custom-query-async.tool.js.map +1 -0
  123. package/dist/mcp-server/tools/definitions/run-custom-query.tool.d.ts +186 -0
  124. package/dist/mcp-server/tools/definitions/run-custom-query.tool.d.ts.map +1 -0
  125. package/dist/mcp-server/tools/definitions/run-custom-query.tool.js +202 -0
  126. package/dist/mcp-server/tools/definitions/run-custom-query.tool.js.map +1 -0
  127. package/dist/mcp-server/tools/index.d.ts +2 -0
  128. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  129. package/dist/mcp-server/tools/index.js +2 -0
  130. package/dist/mcp-server/tools/index.js.map +1 -0
  131. package/dist/mcp-server/tools/utils/query-validation.d.ts +44 -0
  132. package/dist/mcp-server/tools/utils/query-validation.d.ts.map +1 -0
  133. package/dist/mcp-server/tools/utils/query-validation.js +107 -0
  134. package/dist/mcp-server/tools/utils/query-validation.js.map +1 -0
  135. package/dist/mcp-server/tools/utils/resolve-session.d.ts +4 -0
  136. package/dist/mcp-server/tools/utils/resolve-session.d.ts.map +1 -0
  137. package/dist/mcp-server/tools/utils/resolve-session.js +6 -0
  138. package/dist/mcp-server/tools/utils/resolve-session.js.map +1 -0
  139. package/dist/mcp-server/transports/streamable-http-transport.d.ts +55 -0
  140. package/dist/mcp-server/transports/streamable-http-transport.d.ts.map +1 -0
  141. package/dist/mcp-server/transports/streamable-http-transport.js +55 -0
  142. package/dist/mcp-server/transports/streamable-http-transport.js.map +1 -0
  143. package/dist/services/bid-manager/BidManagerService.d.ts +68 -0
  144. package/dist/services/bid-manager/BidManagerService.d.ts.map +1 -0
  145. package/dist/services/bid-manager/BidManagerService.js +464 -0
  146. package/dist/services/bid-manager/BidManagerService.js.map +1 -0
  147. package/dist/services/bid-manager/auth-bridge.d.ts +6 -0
  148. package/dist/services/bid-manager/auth-bridge.d.ts.map +1 -0
  149. package/dist/services/bid-manager/auth-bridge.js +13 -0
  150. package/dist/services/bid-manager/auth-bridge.js.map +1 -0
  151. package/dist/services/bid-manager/client.d.ts +4 -0
  152. package/dist/services/bid-manager/client.d.ts.map +1 -0
  153. package/dist/services/bid-manager/client.js +2 -0
  154. package/dist/services/bid-manager/client.js.map +1 -0
  155. package/dist/services/bid-manager/index.d.ts +6 -0
  156. package/dist/services/bid-manager/index.d.ts.map +1 -0
  157. package/dist/services/bid-manager/index.js +4 -0
  158. package/dist/services/bid-manager/index.js.map +1 -0
  159. package/dist/services/bid-manager/report-parser.d.ts +26 -0
  160. package/dist/services/bid-manager/report-parser.d.ts.map +1 -0
  161. package/dist/services/bid-manager/report-parser.js +141 -0
  162. package/dist/services/bid-manager/report-parser.js.map +1 -0
  163. package/dist/services/bid-manager/types.d.ts +668 -0
  164. package/dist/services/bid-manager/types.d.ts.map +1 -0
  165. package/dist/services/bid-manager/types.js +256 -0
  166. package/dist/services/bid-manager/types.js.map +1 -0
  167. package/dist/services/session-services.d.ts +12 -0
  168. package/dist/services/session-services.d.ts.map +1 -0
  169. package/dist/services/session-services.js +18 -0
  170. package/dist/services/session-services.js.map +1 -0
  171. package/dist/types-global/bid-manager.d.ts +76 -0
  172. package/dist/types-global/bid-manager.d.ts.map +1 -0
  173. package/dist/types-global/bid-manager.js +2 -0
  174. package/dist/types-global/bid-manager.js.map +1 -0
  175. package/dist/types-global/index.d.ts +2 -0
  176. package/dist/types-global/index.d.ts.map +1 -0
  177. package/dist/types-global/index.js +2 -0
  178. package/dist/types-global/index.js.map +1 -0
  179. package/dist/types-global/mcp.d.ts +2 -0
  180. package/dist/types-global/mcp.d.ts.map +1 -0
  181. package/dist/types-global/mcp.js +2 -0
  182. package/dist/types-global/mcp.js.map +1 -0
  183. package/dist/utils/date.d.ts +2 -0
  184. package/dist/utils/date.d.ts.map +1 -0
  185. package/dist/utils/date.js +7 -0
  186. package/dist/utils/date.js.map +1 -0
  187. package/dist/utils/errors/bid-manager-errors.d.ts +57 -0
  188. package/dist/utils/errors/bid-manager-errors.d.ts.map +1 -0
  189. package/dist/utils/errors/bid-manager-errors.js +119 -0
  190. package/dist/utils/errors/bid-manager-errors.js.map +1 -0
  191. package/dist/utils/errors/index.d.ts +3 -0
  192. package/dist/utils/errors/index.d.ts.map +1 -0
  193. package/dist/utils/errors/index.js +3 -0
  194. package/dist/utils/errors/index.js.map +1 -0
  195. package/dist/utils/index.d.ts +4 -0
  196. package/dist/utils/index.d.ts.map +1 -0
  197. package/dist/utils/index.js +4 -0
  198. package/dist/utils/index.js.map +1 -0
  199. package/dist/utils/math.d.ts +9 -0
  200. package/dist/utils/math.d.ts.map +1 -0
  201. package/dist/utils/math.js +38 -0
  202. package/dist/utils/math.js.map +1 -0
  203. package/dist/utils/metrics.d.ts +21 -0
  204. package/dist/utils/metrics.d.ts.map +1 -0
  205. package/dist/utils/metrics.js +92 -0
  206. package/dist/utils/metrics.js.map +1 -0
  207. package/dist/utils/platform.d.ts +3 -0
  208. package/dist/utils/platform.d.ts.map +1 -0
  209. package/dist/utils/platform.js +5 -0
  210. package/dist/utils/platform.js.map +1 -0
  211. package/dist/utils/security/index.d.ts +2 -0
  212. package/dist/utils/security/index.d.ts.map +1 -0
  213. package/dist/utils/security/index.js +2 -0
  214. package/dist/utils/security/index.js.map +1 -0
  215. package/dist/utils/security/rate-limiter.d.ts +3 -0
  216. package/dist/utils/security/rate-limiter.d.ts.map +1 -0
  217. package/dist/utils/security/rate-limiter.js +5 -0
  218. package/dist/utils/security/rate-limiter.js.map +1 -0
  219. package/dist/utils/telemetry/index.d.ts +2 -0
  220. package/dist/utils/telemetry/index.d.ts.map +1 -0
  221. package/dist/utils/telemetry/index.js +2 -0
  222. package/dist/utils/telemetry/index.js.map +1 -0
  223. package/dist/utils/telemetry/tracing.d.ts +3 -0
  224. package/dist/utils/telemetry/tracing.d.ts.map +1 -0
  225. package/dist/utils/telemetry/tracing.js +4 -0
  226. package/dist/utils/telemetry/tracing.js.map +1 -0
  227. package/package.json +60 -0
@@ -0,0 +1,961 @@
1
+ import { z } from "zod";
2
+ export const MetricTypeSchema = z.enum([
3
+ "METRIC_ACTIVE_VIEW_AUDIBLE_2_SEC_IMPRESSIONS",
4
+ "METRIC_ACTIVE_VIEW_AUDIBLE_AND_BACKGROUND_IMPRESSIONS",
5
+ "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_IMPRESSIONS",
6
+ "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_MEASURABLE_IMPRESSIONS",
7
+ "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_RATE",
8
+ "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_IMPRESSIONS",
9
+ "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_MEASURABLE_IMPRESSIONS",
10
+ "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_RATE",
11
+ "METRIC_ACTIVE_VIEW_AUDIBLE_MEASURABLE_IMPRESSIONS",
12
+ "METRIC_ACTIVE_VIEW_AUDIBLE_VISIBLE_ON_COMPLETE_IMPRESSIONS",
13
+ "METRIC_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME",
14
+ "METRIC_ACTIVE_VIEW_CUSTOM_METRIC_MEASURABLE_IMPRESSIONS",
15
+ "METRIC_ACTIVE_VIEW_CUSTOM_METRIC_VIEWABLE_IMPRESSIONS",
16
+ "METRIC_ACTIVE_VIEW_CUSTOM_METRIC_VIEWABLE_RATE",
17
+ "METRIC_ACTIVE_VIEW_DISTRIBUTION_UNMEASURABLE",
18
+ "METRIC_ACTIVE_VIEW_DISTRIBUTION_UNVIEWABLE",
19
+ "METRIC_ACTIVE_VIEW_DISTRIBUTION_VIEWABLE",
20
+ "METRIC_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS",
21
+ "METRIC_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS",
22
+ "METRIC_ACTIVE_VIEW_PCT_MEASURABLE_IMPRESSIONS",
23
+ "METRIC_ACTIVE_VIEW_PCT_VIEWABLE_IMPRESSIONS",
24
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_2_SEC",
25
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_30_SEC",
26
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_AND_BACKGROUND",
27
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_IMPRESSIONS",
28
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_AT_START",
29
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_FIRST_QUAR",
30
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_ON_COMPLETE",
31
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_SECOND_QUAR",
32
+ "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_THIRD_QUAR",
33
+ "METRIC_ACTIVE_VIEW_UNMEASURABLE_IMPRESSIONS",
34
+ "METRIC_ACTIVE_VIEW_UNVIEWABLE_IMPRESSIONS",
35
+ "METRIC_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS",
36
+ "METRIC_BILLABLE_COST_ADVERTISER",
37
+ "METRIC_BILLABLE_COST_PARTNER",
38
+ "METRIC_BILLABLE_COST_USD",
39
+ "METRIC_BILLABLE_IMPRESSIONS",
40
+ "METRIC_CLICKS",
41
+ "METRIC_CM360_POST_CLICK_REVENUE",
42
+ "METRIC_CM360_POST_VIEW_REVENUE",
43
+ "METRIC_CTR",
44
+ "METRIC_ENGAGEMENTS",
45
+ "METRIC_ENGAGEMENT_RATE",
46
+ "METRIC_FLOODLIGHT_IMPRESSIONS",
47
+ "METRIC_IMPRESSIONS",
48
+ "METRIC_LAST_CLICKS",
49
+ "METRIC_LAST_IMPRESSIONS",
50
+ "METRIC_MEDIA_COST_ADVERTISER",
51
+ "METRIC_MEDIA_COST_ECPA_ADVERTISER",
52
+ "METRIC_MEDIA_COST_ECPC_ADVERTISER",
53
+ "METRIC_MEDIA_COST_ECPM_ADVERTISER",
54
+ "METRIC_MEDIA_COST_ECPM_PARTNER",
55
+ "METRIC_MEDIA_COST_ECPM_USD",
56
+ "METRIC_MEDIA_COST_PARTNER",
57
+ "METRIC_MEDIA_COST_USD",
58
+ "METRIC_REVENUE_ADVERTISER",
59
+ "METRIC_REVENUE_ECPA_ADVERTISER",
60
+ "METRIC_REVENUE_ECPC_ADVERTISER",
61
+ "METRIC_REVENUE_ECPM_ADVERTISER",
62
+ "METRIC_REVENUE_PARTNER",
63
+ "METRIC_REVENUE_USD",
64
+ "METRIC_RICH_MEDIA_VIDEO_COMPLETIONS",
65
+ "METRIC_RICH_MEDIA_VIDEO_FIRST_QUARTILE_COMPLETES",
66
+ "METRIC_RICH_MEDIA_VIDEO_FULL_SCREENS",
67
+ "METRIC_RICH_MEDIA_VIDEO_MIDPOINTS",
68
+ "METRIC_RICH_MEDIA_VIDEO_MUTES",
69
+ "METRIC_RICH_MEDIA_VIDEO_PAUSES",
70
+ "METRIC_RICH_MEDIA_VIDEO_PLAYS",
71
+ "METRIC_RICH_MEDIA_VIDEO_SKIPS",
72
+ "METRIC_RICH_MEDIA_VIDEO_THIRD_QUARTILE_COMPLETES",
73
+ "METRIC_TOTAL_CONVERSIONS",
74
+ "METRIC_TOTAL_MEDIA_COST_ADVERTISER",
75
+ "METRIC_TOTAL_MEDIA_COST_ECPA_ADVERTISER",
76
+ "METRIC_TOTAL_MEDIA_COST_ECPC_ADVERTISER",
77
+ "METRIC_TOTAL_MEDIA_COST_ECPM_ADVERTISER",
78
+ "METRIC_TOTAL_MEDIA_COST_PARTNER",
79
+ "METRIC_TOTAL_MEDIA_COST_USD",
80
+ "METRIC_TRUEVIEW_CONVERSION_MANY_PER_VIEW",
81
+ "METRIC_TRUEVIEW_CPV_ADVERTISER",
82
+ "METRIC_TRUEVIEW_CPV_PARTNER",
83
+ "METRIC_TRUEVIEW_CPV_USD",
84
+ "METRIC_TRUEVIEW_EARNED_LIKES",
85
+ "METRIC_TRUEVIEW_EARNED_PLAYLIST_ADDITIONS",
86
+ "METRIC_TRUEVIEW_EARNED_SHARES",
87
+ "METRIC_TRUEVIEW_EARNED_SUBSCRIBERS",
88
+ "METRIC_TRUEVIEW_EARNED_VIEWS",
89
+ "METRIC_TRUEVIEW_ENGAGEMENTS",
90
+ "METRIC_TRUEVIEW_ENGAGEMENT_RATE",
91
+ "METRIC_TRUEVIEW_IMPRESSION_SHARE",
92
+ "METRIC_TRUEVIEW_LOST_IS_BUDGET",
93
+ "METRIC_TRUEVIEW_LOST_IS_RANK",
94
+ "METRIC_TRUEVIEW_UNIQUE_VIEWERS",
95
+ "METRIC_TRUEVIEW_VIEWS",
96
+ "METRIC_TRUEVIEW_VIEW_RATE",
97
+ "METRIC_TRUEVIEW_VIEW_THROUGH_CONVERSION",
98
+ "METRIC_UNIQUE_REACH_AVERAGE_IMPRESSION_FREQUENCY",
99
+ "METRIC_UNIQUE_REACH_CLICK_REACH",
100
+ "METRIC_UNIQUE_REACH_IMPRESSION_REACH",
101
+ "METRIC_UNIQUE_REACH_TOTAL_REACH",
102
+ "METRIC_VIDEO_COMPLETION_RATE",
103
+ ]);
104
+ export const METRIC_METADATA = {
105
+ METRIC_ACTIVE_VIEW_AUDIBLE_2_SEC_IMPRESSIONS: {
106
+ displayName: "Active View: Audible (Unmuted) for 2 sec Impressions",
107
+ reportBuilderName: "Active View: Audible (Unmuted) for 2 sec Impressions",
108
+ category: "Viewability",
109
+ description: "Impressions audible and unmuted for 2 seconds",
110
+ dataType: "integer",
111
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
112
+ },
113
+ METRIC_ACTIVE_VIEW_AUDIBLE_AND_BACKGROUND_IMPRESSIONS: {
114
+ displayName: "Active View: Audible and Background Impressions",
115
+ reportBuilderName: "Active View: Audible and Background Impressions",
116
+ category: "Viewability",
117
+ description: "Audible impressions including background",
118
+ dataType: "integer",
119
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
120
+ },
121
+ METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_IMPRESSIONS: {
122
+ displayName: "Active View: Audible & Fully On-Screen for Half of Duration (15 sec. cap) Impressions",
123
+ reportBuilderName: "Active View: Audible & Fully On-Screen for Half of Duration (15 sec. cap) Impressions",
124
+ category: "Viewability",
125
+ description: "Fully viewable audible impressions for half duration",
126
+ dataType: "integer",
127
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
128
+ },
129
+ METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_MEASURABLE_IMPRESSIONS: {
130
+ displayName: "Active View: Audible & Fully On-Screen for Half of Duration (15 sec. cap) Measurable Impressions",
131
+ reportBuilderName: "Active View: Audible & Fully On-Screen for Half of Duration (15 sec. cap) Measurable Impressions",
132
+ category: "Viewability",
133
+ description: "Measurable impressions for audible fully on-screen",
134
+ dataType: "integer",
135
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
136
+ },
137
+ METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_RATE: {
138
+ displayName: "Active View: Audible & Fully On-Screen for Half of Duration (15 sec. cap) Rate",
139
+ reportBuilderName: "Active View: Audible & Fully On-Screen for Half of Duration (15 sec. cap) Rate",
140
+ category: "Viewability",
141
+ description: "Rate of audible fully on-screen impressions",
142
+ dataType: "percentage",
143
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
144
+ },
145
+ METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_IMPRESSIONS: {
146
+ displayName: "Active View: Audible & Fully On-Screen for Half of Duration (TrueView) Impressions",
147
+ reportBuilderName: "Active View: Audible & Fully On-Screen for Half of Duration (TrueView) Impressions",
148
+ category: "Viewability",
149
+ description: "TrueView audible fully on-screen impressions",
150
+ dataType: "integer",
151
+ reportTypes: ["YOUTUBE"],
152
+ },
153
+ METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_MEASURABLE_IMPRESSIONS: {
154
+ displayName: "Active View: Audible & Fully On-Screen for Half of Duration (TrueView) Measurable Impressions",
155
+ reportBuilderName: "Active View: Audible & Fully On-Screen for Half of Duration (TrueView) Measurable Impressions",
156
+ category: "Viewability",
157
+ description: "TrueView measurable impressions for audible viewability",
158
+ dataType: "integer",
159
+ reportTypes: ["YOUTUBE"],
160
+ },
161
+ METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_RATE: {
162
+ displayName: "Active View: Audible & Fully On-Screen for Half of Duration (TrueView) Rate",
163
+ reportBuilderName: "Active View: Audible & Fully On-Screen for Half of Duration (TrueView) Rate",
164
+ category: "Viewability",
165
+ description: "TrueView rate for audible fully on-screen",
166
+ dataType: "percentage",
167
+ reportTypes: ["YOUTUBE"],
168
+ },
169
+ METRIC_ACTIVE_VIEW_AUDIBLE_MEASURABLE_IMPRESSIONS: {
170
+ displayName: "Active View: Audible Measurable Impressions",
171
+ reportBuilderName: "Active View: Audible Measurable Impressions",
172
+ category: "Viewability",
173
+ description: "Measurable impressions for audio",
174
+ dataType: "integer",
175
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
176
+ },
177
+ METRIC_ACTIVE_VIEW_AUDIBLE_VISIBLE_ON_COMPLETE_IMPRESSIONS: {
178
+ displayName: "Active View: Impressions Audible and Visible at Completion",
179
+ reportBuilderName: "Active View: Impressions Audible and Visible at Completion",
180
+ category: "Viewability",
181
+ description: "Impressions audible and visible at completion",
182
+ dataType: "integer",
183
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
184
+ },
185
+ METRIC_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME: {
186
+ displayName: "Active View: Average Viewable Time (Seconds)",
187
+ reportBuilderName: "Active View: Average Viewable Time (Seconds)",
188
+ category: "Viewability",
189
+ description: "Average time ad was viewable",
190
+ dataType: "decimal",
191
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
192
+ },
193
+ METRIC_ACTIVE_VIEW_CUSTOM_METRIC_MEASURABLE_IMPRESSIONS: {
194
+ displayName: "Active View: Custom Metric Measurable Impressions",
195
+ reportBuilderName: "Active View: Custom Metric Measurable Impressions",
196
+ category: "Viewability",
197
+ description: "Custom metric measurable impressions",
198
+ dataType: "integer",
199
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
200
+ },
201
+ METRIC_ACTIVE_VIEW_CUSTOM_METRIC_VIEWABLE_IMPRESSIONS: {
202
+ displayName: "Active View: Custom Metric Viewable Impressions",
203
+ reportBuilderName: "Active View: Custom Metric Viewable Impressions",
204
+ category: "Viewability",
205
+ description: "Custom metric viewable impressions",
206
+ dataType: "integer",
207
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
208
+ },
209
+ METRIC_ACTIVE_VIEW_CUSTOM_METRIC_VIEWABLE_RATE: {
210
+ displayName: "Active View: Custom Metric Viewable Rate",
211
+ reportBuilderName: "Active View: Custom Metric Viewable Rate",
212
+ category: "Viewability",
213
+ description: "Custom metric viewable rate",
214
+ dataType: "percentage",
215
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
216
+ },
217
+ METRIC_ACTIVE_VIEW_DISTRIBUTION_UNMEASURABLE: {
218
+ displayName: "Active View: Impression Distribution (Not Measurable)",
219
+ reportBuilderName: "Active View: Impression Distribution (Not Measurable)",
220
+ category: "Viewability",
221
+ description: "Distribution of unmeasurable impressions",
222
+ dataType: "percentage",
223
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
224
+ },
225
+ METRIC_ACTIVE_VIEW_DISTRIBUTION_UNVIEWABLE: {
226
+ displayName: "Active View: Impression Distribution (Not Viewable)",
227
+ reportBuilderName: "Active View: Impression Distribution (Not Viewable)",
228
+ category: "Viewability",
229
+ description: "Distribution of not viewable impressions",
230
+ dataType: "percentage",
231
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
232
+ },
233
+ METRIC_ACTIVE_VIEW_DISTRIBUTION_VIEWABLE: {
234
+ displayName: "Active View: Impression Distribution (Viewable)",
235
+ reportBuilderName: "Active View: Impression Distribution (Viewable)",
236
+ category: "Viewability",
237
+ description: "Distribution of viewable impressions",
238
+ dataType: "percentage",
239
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
240
+ },
241
+ METRIC_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS: {
242
+ displayName: "Active View: Eligible Impressions",
243
+ reportBuilderName: "Active View: Eligible Impressions",
244
+ category: "Viewability",
245
+ description: "Impressions eligible for Active View measurement",
246
+ dataType: "integer",
247
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
248
+ },
249
+ METRIC_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS: {
250
+ displayName: "Active View: Measurable Impressions",
251
+ reportBuilderName: "Active View: Measurable Impressions",
252
+ category: "Viewability",
253
+ description: "Impressions that were measurable for viewability",
254
+ dataType: "integer",
255
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
256
+ },
257
+ METRIC_ACTIVE_VIEW_PCT_MEASURABLE_IMPRESSIONS: {
258
+ displayName: "Active View: % Measurable Impressions",
259
+ reportBuilderName: "Active View: % Measurable Impressions",
260
+ category: "Viewability",
261
+ description: "Percentage of impressions that were measurable",
262
+ dataType: "percentage",
263
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
264
+ },
265
+ METRIC_ACTIVE_VIEW_PCT_VIEWABLE_IMPRESSIONS: {
266
+ displayName: "Active View: % Viewable Impressions",
267
+ reportBuilderName: "Active View: % Viewable Impressions",
268
+ category: "Viewability",
269
+ description: "Percentage of measurable impressions that were viewable",
270
+ dataType: "percentage",
271
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
272
+ },
273
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_2_SEC: {
274
+ displayName: "Active View: % of Audible (Unmuted) for 2 sec Impressions",
275
+ reportBuilderName: "Active View: % of Audible (Unmuted) for 2 sec Impressions",
276
+ category: "Viewability",
277
+ description: "Percent audible for 2 seconds",
278
+ dataType: "percentage",
279
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
280
+ },
281
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_30_SEC: {
282
+ displayName: "Active View: % of Audible (Unmuted) for 30 sec Impressions",
283
+ reportBuilderName: "Active View: % of Audible (Unmuted) for 30 sec Impressions",
284
+ category: "Viewability",
285
+ description: "Percent audible for 30 seconds",
286
+ dataType: "percentage",
287
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
288
+ },
289
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_AND_BACKGROUND: {
290
+ displayName: "Active View: % of Audible and Background Impressions",
291
+ reportBuilderName: "Active View: % of Audible and Background Impressions",
292
+ category: "Viewability",
293
+ description: "Percent audible including background",
294
+ dataType: "percentage",
295
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
296
+ },
297
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_IMPRESSIONS: {
298
+ displayName: "Active View: % Audible Impressions",
299
+ reportBuilderName: "Active View: % Audible Impressions",
300
+ category: "Viewability",
301
+ description: "Percent of audible impressions",
302
+ dataType: "percentage",
303
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
304
+ },
305
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_AT_START: {
306
+ displayName: "Active View: % Audible and Visible at Start",
307
+ reportBuilderName: "Active View: % Audible and Visible at Start",
308
+ category: "Viewability",
309
+ description: "Percent audible and visible at start",
310
+ dataType: "percentage",
311
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
312
+ },
313
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_FIRST_QUAR: {
314
+ displayName: "Active View: % Audible and Visible at First Quartile",
315
+ reportBuilderName: "Active View: % Audible and Visible at First Quartile",
316
+ category: "Viewability",
317
+ description: "Percent audible and visible at first quartile",
318
+ dataType: "percentage",
319
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
320
+ },
321
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_ON_COMPLETE: {
322
+ displayName: "Active View: % Audible and Visible at Completion",
323
+ reportBuilderName: "Active View: % Audible and Visible at Completion",
324
+ category: "Viewability",
325
+ description: "Percent audible and visible at completion",
326
+ dataType: "percentage",
327
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
328
+ },
329
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_SECOND_QUAR: {
330
+ displayName: "Active View: % Audible and Visible at Midpoint",
331
+ reportBuilderName: "Active View: % Audible and Visible at Midpoint",
332
+ category: "Viewability",
333
+ description: "Percent audible and visible at midpoint",
334
+ dataType: "percentage",
335
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
336
+ },
337
+ METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_THIRD_QUAR: {
338
+ displayName: "Active View: % Audible and Visible at Third Quartile",
339
+ reportBuilderName: "Active View: % Audible and Visible at Third Quartile",
340
+ category: "Viewability",
341
+ description: "Percent audible and visible at third quartile",
342
+ dataType: "percentage",
343
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
344
+ },
345
+ METRIC_ACTIVE_VIEW_UNMEASURABLE_IMPRESSIONS: {
346
+ displayName: "Active View: Not Measurable Impressions",
347
+ reportBuilderName: "Active View: Not Measurable Impressions",
348
+ category: "Viewability",
349
+ description: "Impressions not measurable for viewability",
350
+ dataType: "integer",
351
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
352
+ },
353
+ METRIC_ACTIVE_VIEW_UNVIEWABLE_IMPRESSIONS: {
354
+ displayName: "Active View: Not Viewable Impressions",
355
+ reportBuilderName: "Active View: Not Viewable Impressions",
356
+ category: "Viewability",
357
+ description: "Impressions that were not viewable",
358
+ dataType: "integer",
359
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
360
+ },
361
+ METRIC_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS: {
362
+ displayName: "Active View: Viewable Impressions",
363
+ reportBuilderName: "Active View: Viewable Impressions",
364
+ category: "Viewability",
365
+ description: "Impressions that were viewable (50% visible for 1 second)",
366
+ dataType: "integer",
367
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
368
+ },
369
+ METRIC_BILLABLE_COST_ADVERTISER: {
370
+ displayName: "Billable Cost (Advertiser Currency)",
371
+ reportBuilderName: "Billable Cost (Advertiser Currency)",
372
+ category: "Cost",
373
+ description: "Billable cost in advertiser currency",
374
+ dataType: "currency",
375
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
376
+ },
377
+ METRIC_BILLABLE_COST_PARTNER: {
378
+ displayName: "Billable Cost (Partner Currency)",
379
+ reportBuilderName: "Billable Cost (Partner Currency)",
380
+ category: "Cost",
381
+ description: "Billable cost in partner currency",
382
+ dataType: "currency",
383
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
384
+ },
385
+ METRIC_BILLABLE_COST_USD: {
386
+ displayName: "Billable Cost (USD)",
387
+ reportBuilderName: "Billable Cost (USD)",
388
+ category: "Cost",
389
+ description: "Billable cost in USD",
390
+ dataType: "currency",
391
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
392
+ },
393
+ METRIC_BILLABLE_IMPRESSIONS: {
394
+ displayName: "Billable Impressions",
395
+ reportBuilderName: "Billable Impressions",
396
+ category: "Delivery",
397
+ description: "Number of billable impressions",
398
+ dataType: "integer",
399
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
400
+ },
401
+ METRIC_CLICKS: {
402
+ displayName: "Clicks",
403
+ reportBuilderName: "Clicks",
404
+ category: "Delivery",
405
+ description: "Total number of clicks",
406
+ dataType: "integer",
407
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
408
+ },
409
+ METRIC_CM360_POST_CLICK_REVENUE: {
410
+ displayName: "CM360 Post-Click Revenue",
411
+ reportBuilderName: "CM360 Post-Click Revenue",
412
+ category: "Conversion",
413
+ description: "Revenue from post-click conversions (CM360)",
414
+ dataType: "currency",
415
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
416
+ },
417
+ METRIC_CM360_POST_VIEW_REVENUE: {
418
+ displayName: "CM360 Post-View Revenue",
419
+ reportBuilderName: "CM360 Post-View Revenue",
420
+ category: "Conversion",
421
+ description: "Revenue from post-view conversions (CM360)",
422
+ dataType: "currency",
423
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
424
+ },
425
+ METRIC_CTR: {
426
+ displayName: "Click Rate (CTR)",
427
+ reportBuilderName: "Click Rate (CTR)",
428
+ category: "Delivery",
429
+ description: "Click-through rate (clicks / impressions * 100)",
430
+ dataType: "percentage",
431
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
432
+ },
433
+ METRIC_ENGAGEMENTS: {
434
+ displayName: "Engagements",
435
+ reportBuilderName: "Engagements",
436
+ category: "Engagement",
437
+ description: "Total number of engagements",
438
+ dataType: "integer",
439
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
440
+ },
441
+ METRIC_ENGAGEMENT_RATE: {
442
+ displayName: "Engagement Rate",
443
+ reportBuilderName: "Engagement Rate",
444
+ category: "Engagement",
445
+ description: "Rate of engagements",
446
+ dataType: "percentage",
447
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
448
+ },
449
+ METRIC_FLOODLIGHT_IMPRESSIONS: {
450
+ displayName: "Floodlight Impressions",
451
+ reportBuilderName: "Floodlight Impressions",
452
+ category: "Conversion",
453
+ description: "Impressions with Floodlight tracking",
454
+ dataType: "integer",
455
+ reportTypes: ["STANDARD", "FLOODLIGHT"],
456
+ },
457
+ METRIC_IMPRESSIONS: {
458
+ displayName: "Impressions",
459
+ reportBuilderName: "Impressions",
460
+ category: "Delivery",
461
+ description: "Total number of impressions served",
462
+ dataType: "integer",
463
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
464
+ },
465
+ METRIC_LAST_CLICKS: {
466
+ displayName: "Post-Click Conversions",
467
+ reportBuilderName: "Post-Click Conversions",
468
+ category: "Conversion",
469
+ description: "Conversions attributed to last click",
470
+ dataType: "integer",
471
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
472
+ },
473
+ METRIC_LAST_IMPRESSIONS: {
474
+ displayName: "Post-View Conversions",
475
+ reportBuilderName: "Post-View Conversions",
476
+ category: "Conversion",
477
+ description: "Conversions attributed to last impression",
478
+ dataType: "integer",
479
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
480
+ },
481
+ METRIC_MEDIA_COST_ADVERTISER: {
482
+ displayName: "Media Cost (Advertiser Currency)",
483
+ reportBuilderName: "Media Cost (Advertiser Currency)",
484
+ category: "Cost",
485
+ description: "Media cost in advertiser currency",
486
+ dataType: "currency",
487
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
488
+ },
489
+ METRIC_MEDIA_COST_ECPA_ADVERTISER: {
490
+ displayName: "Media Cost eCPA (Advertiser Currency)",
491
+ reportBuilderName: "Media Cost eCPA (Advertiser Currency)",
492
+ category: "Cost",
493
+ description: "Effective CPA for media cost",
494
+ dataType: "currency",
495
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
496
+ },
497
+ METRIC_MEDIA_COST_ECPC_ADVERTISER: {
498
+ displayName: "Media Cost eCPC (Advertiser Currency)",
499
+ reportBuilderName: "Media Cost eCPC (Advertiser Currency)",
500
+ category: "Cost",
501
+ description: "Effective CPC for media cost",
502
+ dataType: "currency",
503
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
504
+ },
505
+ METRIC_MEDIA_COST_ECPM_ADVERTISER: {
506
+ displayName: "Media Cost eCPM (Advertiser Currency)",
507
+ reportBuilderName: "Media Cost eCPM (Advertiser Currency)",
508
+ category: "Cost",
509
+ description: "Effective CPM for media cost",
510
+ dataType: "currency",
511
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
512
+ },
513
+ METRIC_MEDIA_COST_ECPM_PARTNER: {
514
+ displayName: "Media Cost eCPM (Partner Currency)",
515
+ reportBuilderName: "Media Cost eCPM (Partner Currency)",
516
+ category: "Cost",
517
+ description: "Effective CPM in partner currency",
518
+ dataType: "currency",
519
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
520
+ },
521
+ METRIC_MEDIA_COST_ECPM_USD: {
522
+ displayName: "Media Cost eCPM (USD)",
523
+ reportBuilderName: "Media Cost eCPM (USD)",
524
+ category: "Cost",
525
+ description: "Effective CPM in USD",
526
+ dataType: "currency",
527
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
528
+ },
529
+ METRIC_MEDIA_COST_PARTNER: {
530
+ displayName: "Media Cost (Partner Currency)",
531
+ reportBuilderName: "Media Cost (Partner Currency)",
532
+ category: "Cost",
533
+ description: "Media cost in partner currency",
534
+ dataType: "currency",
535
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
536
+ },
537
+ METRIC_MEDIA_COST_USD: {
538
+ displayName: "Media Cost (USD)",
539
+ reportBuilderName: "Media Cost (USD)",
540
+ category: "Cost",
541
+ description: "Media cost in USD",
542
+ dataType: "currency",
543
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
544
+ },
545
+ METRIC_REVENUE_ADVERTISER: {
546
+ displayName: "Revenue (Advertiser Currency)",
547
+ reportBuilderName: "Revenue (Advertiser Currency)",
548
+ category: "Revenue",
549
+ description: "Total revenue in advertiser currency",
550
+ dataType: "currency",
551
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
552
+ },
553
+ METRIC_REVENUE_ECPA_ADVERTISER: {
554
+ displayName: "Revenue eCPA (Advertiser Currency)",
555
+ reportBuilderName: "Revenue eCPA (Advertiser Currency)",
556
+ category: "Revenue",
557
+ description: "Effective CPA for revenue",
558
+ dataType: "currency",
559
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
560
+ },
561
+ METRIC_REVENUE_ECPC_ADVERTISER: {
562
+ displayName: "Revenue eCPC (Advertiser Currency)",
563
+ reportBuilderName: "Revenue eCPC (Advertiser Currency)",
564
+ category: "Revenue",
565
+ description: "Effective CPC for revenue",
566
+ dataType: "currency",
567
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
568
+ },
569
+ METRIC_REVENUE_ECPM_ADVERTISER: {
570
+ displayName: "Revenue eCPM (Advertiser Currency)",
571
+ reportBuilderName: "Revenue eCPM (Advertiser Currency)",
572
+ category: "Revenue",
573
+ description: "Effective CPM for revenue",
574
+ dataType: "currency",
575
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
576
+ },
577
+ METRIC_REVENUE_PARTNER: {
578
+ displayName: "Revenue (Partner Currency)",
579
+ reportBuilderName: "Revenue (Partner Currency)",
580
+ category: "Revenue",
581
+ description: "Total revenue in partner currency",
582
+ dataType: "currency",
583
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
584
+ },
585
+ METRIC_REVENUE_USD: {
586
+ displayName: "Revenue (USD)",
587
+ reportBuilderName: "Revenue (USD)",
588
+ category: "Revenue",
589
+ description: "Total revenue in USD",
590
+ dataType: "currency",
591
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
592
+ },
593
+ METRIC_RICH_MEDIA_VIDEO_COMPLETIONS: {
594
+ displayName: "Complete Views (Video)",
595
+ reportBuilderName: "Complete Views (Video)",
596
+ category: "Video",
597
+ description: "Videos watched to completion (rich media)",
598
+ dataType: "integer",
599
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
600
+ },
601
+ METRIC_RICH_MEDIA_VIDEO_FIRST_QUARTILE_COMPLETES: {
602
+ displayName: "First-Quartile Views (Video)",
603
+ reportBuilderName: "First-Quartile Views (Video)",
604
+ category: "Video",
605
+ description: "Videos watched to 25% (rich media)",
606
+ dataType: "integer",
607
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
608
+ },
609
+ METRIC_RICH_MEDIA_VIDEO_FULL_SCREENS: {
610
+ displayName: "Fullscreens (Video)",
611
+ reportBuilderName: "Fullscreens (Video)",
612
+ category: "Video",
613
+ description: "Video fullscreen events (rich media)",
614
+ dataType: "integer",
615
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
616
+ },
617
+ METRIC_RICH_MEDIA_VIDEO_MIDPOINTS: {
618
+ displayName: "Midpoint Views (Video)",
619
+ reportBuilderName: "Midpoint Views (Video)",
620
+ category: "Video",
621
+ description: "Videos watched to 50% (rich media)",
622
+ dataType: "integer",
623
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
624
+ },
625
+ METRIC_RICH_MEDIA_VIDEO_MUTES: {
626
+ displayName: "Audio Mutes (Video)",
627
+ reportBuilderName: "Audio Mutes (Video)",
628
+ category: "Video",
629
+ description: "Video mute events (rich media)",
630
+ dataType: "integer",
631
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
632
+ },
633
+ METRIC_RICH_MEDIA_VIDEO_PAUSES: {
634
+ displayName: "Pauses (Video)",
635
+ reportBuilderName: "Pauses (Video)",
636
+ category: "Video",
637
+ description: "Video pause events (rich media)",
638
+ dataType: "integer",
639
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
640
+ },
641
+ METRIC_RICH_MEDIA_VIDEO_PLAYS: {
642
+ displayName: "Starts (Video)",
643
+ reportBuilderName: "Starts (Video)",
644
+ category: "Video",
645
+ description: "Video play starts (rich media)",
646
+ dataType: "integer",
647
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
648
+ },
649
+ METRIC_RICH_MEDIA_VIDEO_SKIPS: {
650
+ displayName: "Skips (Video)",
651
+ reportBuilderName: "Skips (Video)",
652
+ category: "Video",
653
+ description: "Video skips (rich media)",
654
+ dataType: "integer",
655
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
656
+ },
657
+ METRIC_RICH_MEDIA_VIDEO_THIRD_QUARTILE_COMPLETES: {
658
+ displayName: "Third-Quartile Views (Video)",
659
+ reportBuilderName: "Third-Quartile Views (Video)",
660
+ category: "Video",
661
+ description: "Videos watched to 75% (rich media)",
662
+ dataType: "integer",
663
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
664
+ },
665
+ METRIC_TOTAL_CONVERSIONS: {
666
+ displayName: "Total Conversions",
667
+ reportBuilderName: "Total Conversions",
668
+ category: "Conversion",
669
+ description: "Total conversions (post-click + post-view)",
670
+ dataType: "integer",
671
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
672
+ },
673
+ METRIC_TOTAL_MEDIA_COST_ADVERTISER: {
674
+ displayName: "Total Media Cost (Advertiser Currency)",
675
+ reportBuilderName: "Total Media Cost (Advertiser Currency)",
676
+ category: "Cost",
677
+ description: "Total media cost in advertiser currency",
678
+ dataType: "currency",
679
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
680
+ },
681
+ METRIC_TOTAL_MEDIA_COST_ECPA_ADVERTISER: {
682
+ displayName: "Total Media Cost eCPA (Advertiser Currency)",
683
+ reportBuilderName: "Total Media Cost eCPA (Advertiser Currency)",
684
+ category: "Cost",
685
+ description: "Total media cost per acquisition",
686
+ dataType: "currency",
687
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
688
+ },
689
+ METRIC_TOTAL_MEDIA_COST_ECPC_ADVERTISER: {
690
+ displayName: "Total Media Cost eCPC (Advertiser Currency)",
691
+ reportBuilderName: "Total Media Cost eCPC (Advertiser Currency)",
692
+ category: "Cost",
693
+ description: "Total media cost per click",
694
+ dataType: "currency",
695
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
696
+ },
697
+ METRIC_TOTAL_MEDIA_COST_ECPM_ADVERTISER: {
698
+ displayName: "Total Media Cost eCPM (Advertiser Currency)",
699
+ reportBuilderName: "Total Media Cost eCPM (Advertiser Currency)",
700
+ category: "Cost",
701
+ description: "Total media cost per thousand impressions",
702
+ dataType: "currency",
703
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
704
+ },
705
+ METRIC_TOTAL_MEDIA_COST_PARTNER: {
706
+ displayName: "Total Media Cost (Partner Currency)",
707
+ reportBuilderName: "Total Media Cost (Partner Currency)",
708
+ category: "Cost",
709
+ description: "Total media cost in partner currency",
710
+ dataType: "currency",
711
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
712
+ },
713
+ METRIC_TOTAL_MEDIA_COST_USD: {
714
+ displayName: "Total Media Cost (USD)",
715
+ reportBuilderName: "Total Media Cost (USD)",
716
+ category: "Cost",
717
+ description: "Total media cost in USD",
718
+ dataType: "currency",
719
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
720
+ },
721
+ METRIC_TRUEVIEW_CONVERSION_MANY_PER_VIEW: {
722
+ displayName: "Conversions (TrueView)",
723
+ reportBuilderName: "Conversions",
724
+ category: "TrueView",
725
+ description: "TrueView conversions (many per view)",
726
+ dataType: "integer",
727
+ reportTypes: ["YOUTUBE"],
728
+ },
729
+ METRIC_TRUEVIEW_CPV_ADVERTISER: {
730
+ displayName: "Revenue eCPV (Advertiser Currency)",
731
+ reportBuilderName: "Revenue eCPV (Advertiser Currency)",
732
+ category: "TrueView",
733
+ description: "Cost per view in advertiser currency",
734
+ dataType: "currency",
735
+ reportTypes: ["YOUTUBE"],
736
+ },
737
+ METRIC_TRUEVIEW_CPV_PARTNER: {
738
+ displayName: "Revenue eCPV (Partner Currency)",
739
+ reportBuilderName: "Revenue eCPV (Partner Currency)",
740
+ category: "TrueView",
741
+ description: "Cost per view in partner currency",
742
+ dataType: "currency",
743
+ reportTypes: ["YOUTUBE"],
744
+ },
745
+ METRIC_TRUEVIEW_CPV_USD: {
746
+ displayName: "Revenue eCPV (USD)",
747
+ reportBuilderName: "Revenue eCPV (USD)",
748
+ category: "TrueView",
749
+ description: "Cost per view in USD",
750
+ dataType: "currency",
751
+ reportTypes: ["YOUTUBE"],
752
+ },
753
+ METRIC_TRUEVIEW_EARNED_LIKES: {
754
+ displayName: "Earned Likes",
755
+ reportBuilderName: "Earned Likes",
756
+ category: "TrueView",
757
+ description: "Organic likes from TrueView campaigns",
758
+ dataType: "integer",
759
+ reportTypes: ["YOUTUBE"],
760
+ },
761
+ METRIC_TRUEVIEW_EARNED_PLAYLIST_ADDITIONS: {
762
+ displayName: "Earned Playlist Additions",
763
+ reportBuilderName: "Earned Playlist Additions",
764
+ category: "TrueView",
765
+ description: "Playlist additions from TrueView campaigns",
766
+ dataType: "integer",
767
+ reportTypes: ["YOUTUBE"],
768
+ },
769
+ METRIC_TRUEVIEW_EARNED_SHARES: {
770
+ displayName: "Earned Shares",
771
+ reportBuilderName: "Earned Shares",
772
+ category: "TrueView",
773
+ description: "Shares from TrueView campaigns",
774
+ dataType: "integer",
775
+ reportTypes: ["YOUTUBE"],
776
+ },
777
+ METRIC_TRUEVIEW_EARNED_SUBSCRIBERS: {
778
+ displayName: "Earned Subscribers",
779
+ reportBuilderName: "Earned Subscribers",
780
+ category: "TrueView",
781
+ description: "Subscribers gained from TrueView campaigns",
782
+ dataType: "integer",
783
+ reportTypes: ["YOUTUBE"],
784
+ },
785
+ METRIC_TRUEVIEW_EARNED_VIEWS: {
786
+ displayName: "Earned Views",
787
+ reportBuilderName: "Earned Views",
788
+ category: "TrueView",
789
+ description: "Organic views from TrueView campaigns",
790
+ dataType: "integer",
791
+ reportTypes: ["YOUTUBE"],
792
+ },
793
+ METRIC_TRUEVIEW_ENGAGEMENTS: {
794
+ displayName: "Engagements (YouTube)",
795
+ reportBuilderName: "Engagements (YouTube)",
796
+ category: "TrueView",
797
+ description: "YouTube/TrueView engagements",
798
+ dataType: "integer",
799
+ reportTypes: ["YOUTUBE"],
800
+ },
801
+ METRIC_TRUEVIEW_ENGAGEMENT_RATE: {
802
+ displayName: "Engagement Rate (YouTube)",
803
+ reportBuilderName: "Engagement Rate (YouTube)",
804
+ category: "TrueView",
805
+ description: "YouTube/TrueView engagement rate",
806
+ dataType: "percentage",
807
+ reportTypes: ["YOUTUBE"],
808
+ },
809
+ METRIC_TRUEVIEW_IMPRESSION_SHARE: {
810
+ displayName: "Impression Share",
811
+ reportBuilderName: "Impression Share",
812
+ category: "TrueView",
813
+ description: "Share of available impressions",
814
+ dataType: "percentage",
815
+ reportTypes: ["YOUTUBE"],
816
+ },
817
+ METRIC_TRUEVIEW_LOST_IS_BUDGET: {
818
+ displayName: "Lost Impression Share (Budget)",
819
+ reportBuilderName: "Lost Impression Share (Budget)",
820
+ category: "TrueView",
821
+ description: "Impression share lost due to budget",
822
+ dataType: "percentage",
823
+ reportTypes: ["YOUTUBE"],
824
+ },
825
+ METRIC_TRUEVIEW_LOST_IS_RANK: {
826
+ displayName: "Lost Impression Share (Rank)",
827
+ reportBuilderName: "Lost Impression Share (Rank)",
828
+ category: "TrueView",
829
+ description: "Impression share lost due to rank",
830
+ dataType: "percentage",
831
+ reportTypes: ["YOUTUBE"],
832
+ },
833
+ METRIC_TRUEVIEW_UNIQUE_VIEWERS: {
834
+ displayName: "Unique Viewers",
835
+ reportBuilderName: "Unique Viewers",
836
+ category: "TrueView",
837
+ description: "Unique viewers of TrueView ads",
838
+ dataType: "integer",
839
+ reportTypes: ["YOUTUBE"],
840
+ },
841
+ METRIC_TRUEVIEW_VIEWS: {
842
+ displayName: "TrueView: Views",
843
+ reportBuilderName: "TrueView: Views",
844
+ category: "TrueView",
845
+ description: "TrueView video views (watched 30s or to completion)",
846
+ dataType: "integer",
847
+ reportTypes: ["YOUTUBE"],
848
+ },
849
+ METRIC_TRUEVIEW_VIEW_RATE: {
850
+ displayName: "TrueView: View Rate",
851
+ reportBuilderName: "TrueView: View Rate",
852
+ category: "TrueView",
853
+ description: "TrueView view rate (views / impressions)",
854
+ dataType: "percentage",
855
+ reportTypes: ["YOUTUBE"],
856
+ },
857
+ METRIC_TRUEVIEW_VIEW_THROUGH_CONVERSION: {
858
+ displayName: "View through Conversion",
859
+ reportBuilderName: "View through Conversion",
860
+ category: "TrueView",
861
+ description: "TrueView view-through conversions",
862
+ dataType: "integer",
863
+ reportTypes: ["YOUTUBE"],
864
+ },
865
+ METRIC_UNIQUE_REACH_AVERAGE_IMPRESSION_FREQUENCY: {
866
+ displayName: "Unique Reach: Average Impression Frequency",
867
+ reportBuilderName: "Unique Reach: Average Impression Frequency",
868
+ category: "Reach",
869
+ description: "Average impressions per unique user",
870
+ dataType: "decimal",
871
+ reportTypes: ["REACH", "UNIQUE_REACH_AUDIENCE"],
872
+ },
873
+ METRIC_UNIQUE_REACH_CLICK_REACH: {
874
+ displayName: "Unique Reach: Click Reach",
875
+ reportBuilderName: "Unique Reach: Click Reach",
876
+ category: "Reach",
877
+ description: "Unique users who clicked",
878
+ dataType: "integer",
879
+ reportTypes: ["REACH", "UNIQUE_REACH_AUDIENCE"],
880
+ },
881
+ METRIC_UNIQUE_REACH_IMPRESSION_REACH: {
882
+ displayName: "Unique Reach: Impression Reach",
883
+ reportBuilderName: "Unique Reach: Impression Reach",
884
+ category: "Reach",
885
+ description: "Unique users reached via impressions",
886
+ dataType: "integer",
887
+ reportTypes: ["REACH", "UNIQUE_REACH_AUDIENCE"],
888
+ },
889
+ METRIC_UNIQUE_REACH_TOTAL_REACH: {
890
+ displayName: "Unique Reach: Total Reach",
891
+ reportBuilderName: "Unique Reach: Total Reach",
892
+ category: "Reach",
893
+ description: "Total unique users reached",
894
+ dataType: "integer",
895
+ reportTypes: ["REACH", "UNIQUE_REACH_AUDIENCE"],
896
+ },
897
+ METRIC_VIDEO_COMPLETION_RATE: {
898
+ displayName: "Completion Rate (Video)",
899
+ reportBuilderName: "Completion Rate (Video)",
900
+ category: "Video",
901
+ description: "Percentage of videos watched to completion",
902
+ dataType: "percentage",
903
+ reportTypes: ["STANDARD", "FLOODLIGHT", "AUDIENCE_COMPOSITION"],
904
+ },
905
+ };
906
+ export const METRIC_CATEGORIES = [
907
+ "Delivery",
908
+ "Cost",
909
+ "Revenue",
910
+ "Viewability",
911
+ "Video",
912
+ "Reach",
913
+ "TrueView",
914
+ "Conversion",
915
+ "Engagement",
916
+ ];
917
+ export function getMetricsByCategory(category) {
918
+ return Object.entries(METRIC_METADATA)
919
+ .filter(([_, meta]) => meta.category === category)
920
+ .map(([name]) => name);
921
+ }
922
+ export function isValidMetricType(value) {
923
+ return MetricTypeSchema.safeParse(value).success;
924
+ }
925
+ export const COMMON_METRIC_SETS = {
926
+ delivery: ["METRIC_IMPRESSIONS", "METRIC_CLICKS", "METRIC_CTR"],
927
+ performance: [
928
+ "METRIC_IMPRESSIONS",
929
+ "METRIC_CLICKS",
930
+ "METRIC_CTR",
931
+ "METRIC_TOTAL_CONVERSIONS",
932
+ "METRIC_TOTAL_MEDIA_COST_ADVERTISER",
933
+ ],
934
+ video: [
935
+ "METRIC_RICH_MEDIA_VIDEO_PLAYS",
936
+ "METRIC_RICH_MEDIA_VIDEO_COMPLETIONS",
937
+ "METRIC_VIDEO_COMPLETION_RATE",
938
+ "METRIC_RICH_MEDIA_VIDEO_FIRST_QUARTILE_COMPLETES",
939
+ "METRIC_RICH_MEDIA_VIDEO_MIDPOINTS",
940
+ "METRIC_RICH_MEDIA_VIDEO_THIRD_QUARTILE_COMPLETES",
941
+ ],
942
+ viewability: [
943
+ "METRIC_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS",
944
+ "METRIC_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS",
945
+ "METRIC_ACTIVE_VIEW_PCT_VIEWABLE_IMPRESSIONS",
946
+ "METRIC_ACTIVE_VIEW_PCT_MEASURABLE_IMPRESSIONS",
947
+ ],
948
+ reach: [
949
+ "METRIC_UNIQUE_REACH_IMPRESSION_REACH",
950
+ "METRIC_UNIQUE_REACH_CLICK_REACH",
951
+ "METRIC_UNIQUE_REACH_TOTAL_REACH",
952
+ "METRIC_UNIQUE_REACH_AVERAGE_IMPRESSION_FREQUENCY",
953
+ ],
954
+ trueview: [
955
+ "METRIC_TRUEVIEW_VIEWS",
956
+ "METRIC_TRUEVIEW_VIEW_RATE",
957
+ "METRIC_TRUEVIEW_EARNED_VIEWS",
958
+ "METRIC_TRUEVIEW_EARNED_SUBSCRIBERS",
959
+ ],
960
+ };
961
+ //# sourceMappingURL=metrics.js.map