@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 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/generated/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ export declare const ReportTypeSchema: z.ZodEnum<["AUDIENCE_COMPOSITION", "FLOODLIGHT", "GRP", "REACH", "STANDARD", "UNIQUE_REACH_AUDIENCE", "YOUTUBE", "YOUTUBE_PROGRAMMATIC_GUARANTEED"]>;
3
+ export type ReportType = z.infer<typeof ReportTypeSchema>;
4
+ export interface ReportTypeMetadata {
5
+ displayName: string;
6
+ description: string;
7
+ }
8
+ export declare const REPORT_TYPE_METADATA: Record<ReportType, ReportTypeMetadata>;
9
+ export declare const DataRangeSchema: z.ZodEnum<["RANGE_UNSPECIFIED", "CUSTOM_DATES", "CURRENT_DAY", "PREVIOUS_DAY", "WEEK_TO_DATE", "MONTH_TO_DATE", "QUARTER_TO_DATE", "YEAR_TO_DATE", "PREVIOUS_WEEK", "PREVIOUS_MONTH", "PREVIOUS_QUARTER", "PREVIOUS_YEAR", "LAST_7_DAYS", "LAST_14_DAYS", "LAST_30_DAYS", "LAST_60_DAYS", "LAST_90_DAYS", "LAST_365_DAYS", "ALL_TIME"]>;
10
+ export type DataRange = z.infer<typeof DataRangeSchema>;
11
+ export declare const DATA_RANGE_DESCRIPTIONS: Record<DataRange, string>;
12
+ export declare function isValidReportType(value: string): value is ReportType;
13
+ export declare function isValidDataRange(value: string): value is DataRange;
14
+ //# sourceMappingURL=report-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-types.d.ts","sourceRoot":"","sources":["../../src/generated/report-types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,gBAAgB,sJAS3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAK1D,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAiCvE,CAAC;AAKF,eAAO,MAAM,eAAe,yUAoB1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAKxD,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAoB7D,CAAC;AAKF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAEpE;AAKD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,SAAS,CAElE"}
@@ -0,0 +1,94 @@
1
+ import { z } from "zod";
2
+ export const ReportTypeSchema = z.enum([
3
+ "AUDIENCE_COMPOSITION",
4
+ "FLOODLIGHT",
5
+ "GRP",
6
+ "REACH",
7
+ "STANDARD",
8
+ "UNIQUE_REACH_AUDIENCE",
9
+ "YOUTUBE",
10
+ "YOUTUBE_PROGRAMMATIC_GUARANTEED",
11
+ ]);
12
+ export const REPORT_TYPE_METADATA = {
13
+ STANDARD: {
14
+ displayName: "Standard",
15
+ description: "Standard delivery metrics - most common report type",
16
+ },
17
+ AUDIENCE_COMPOSITION: {
18
+ displayName: "Audience Composition",
19
+ description: "Audience demographic breakdowns (deprecated but functional)",
20
+ },
21
+ FLOODLIGHT: {
22
+ displayName: "Floodlight",
23
+ description: "Conversion tracking reports",
24
+ },
25
+ YOUTUBE: {
26
+ displayName: "YouTube",
27
+ description: "YouTube-specific metrics",
28
+ },
29
+ GRP: {
30
+ displayName: "GRP",
31
+ description: "Gross Rating Point reports",
32
+ },
33
+ YOUTUBE_PROGRAMMATIC_GUARANTEED: {
34
+ displayName: "YouTube Programmatic Guaranteed",
35
+ description: "YouTube Programmatic Guaranteed reports",
36
+ },
37
+ REACH: {
38
+ displayName: "Reach",
39
+ description: "Reach and frequency reports",
40
+ },
41
+ UNIQUE_REACH_AUDIENCE: {
42
+ displayName: "Unique Reach Audience",
43
+ description: "Unique reach by audience",
44
+ },
45
+ };
46
+ export const DataRangeSchema = z.enum([
47
+ "RANGE_UNSPECIFIED",
48
+ "CUSTOM_DATES",
49
+ "CURRENT_DAY",
50
+ "PREVIOUS_DAY",
51
+ "WEEK_TO_DATE",
52
+ "MONTH_TO_DATE",
53
+ "QUARTER_TO_DATE",
54
+ "YEAR_TO_DATE",
55
+ "PREVIOUS_WEEK",
56
+ "PREVIOUS_MONTH",
57
+ "PREVIOUS_QUARTER",
58
+ "PREVIOUS_YEAR",
59
+ "LAST_7_DAYS",
60
+ "LAST_14_DAYS",
61
+ "LAST_30_DAYS",
62
+ "LAST_60_DAYS",
63
+ "LAST_90_DAYS",
64
+ "LAST_365_DAYS",
65
+ "ALL_TIME",
66
+ ]);
67
+ export const DATA_RANGE_DESCRIPTIONS = {
68
+ RANGE_UNSPECIFIED: "Default/unspecified range",
69
+ CUSTOM_DATES: "Use custom start and end dates",
70
+ CURRENT_DAY: "Today only",
71
+ PREVIOUS_DAY: "Yesterday only",
72
+ WEEK_TO_DATE: "From start of current week to today",
73
+ MONTH_TO_DATE: "From start of current month to today",
74
+ QUARTER_TO_DATE: "From start of current quarter to today",
75
+ YEAR_TO_DATE: "From start of current year to today",
76
+ PREVIOUS_WEEK: "Last complete week",
77
+ PREVIOUS_MONTH: "Last complete month",
78
+ PREVIOUS_QUARTER: "Last complete quarter",
79
+ PREVIOUS_YEAR: "Last complete year",
80
+ LAST_7_DAYS: "Last 7 days",
81
+ LAST_14_DAYS: "Last 14 days",
82
+ LAST_30_DAYS: "Last 30 days",
83
+ LAST_60_DAYS: "Last 60 days",
84
+ LAST_90_DAYS: "Last 90 days",
85
+ LAST_365_DAYS: "Last 365 days",
86
+ ALL_TIME: "All available data",
87
+ };
88
+ export function isValidReportType(value) {
89
+ return ReportTypeSchema.safeParse(value).success;
90
+ }
91
+ export function isValidDataRange(value) {
92
+ return DataRangeSchema.safeParse(value).success;
93
+ }
94
+ //# sourceMappingURL=report-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-types.js","sourceRoot":"","sources":["../../src/generated/report-types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,sBAAsB;IACtB,YAAY;IACZ,KAAK;IACL,OAAO;IACP,UAAU;IACV,uBAAuB;IACvB,SAAS;IACT,iCAAiC;CAClC,CAAC,CAAC;AAeH,MAAM,CAAC,MAAM,oBAAoB,GAA2C;IAC1E,QAAQ,EAAE;QACR,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,qDAAqD;KACnE;IACD,oBAAoB,EAAE;QACpB,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE,6DAA6D;KAC3E;IACD,UAAU,EAAE;QACV,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,6BAA6B;KAC3C;IACD,OAAO,EAAE;QACP,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,0BAA0B;KACxC;IACD,GAAG,EAAE;QACH,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,4BAA4B;KAC1C;IACD,+BAA+B,EAAE;QAC/B,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE,yCAAyC;KACvD;IACD,KAAK,EAAE;QACL,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,6BAA6B;KAC3C;IACD,qBAAqB,EAAE;QACrB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,0BAA0B;KACxC;CACF,CAAC;AAKF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,mBAAmB;IACnB,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,eAAe;IACf,UAAU;CACX,CAAC,CAAC;AAOH,MAAM,CAAC,MAAM,uBAAuB,GAA8B;IAChE,iBAAiB,EAAE,2BAA2B;IAC9C,YAAY,EAAE,gCAAgC;IAC9C,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,qCAAqC;IACnD,aAAa,EAAE,sCAAsC;IACrD,eAAe,EAAE,wCAAwC;IACzD,YAAY,EAAE,qCAAqC;IACnD,aAAa,EAAE,oBAAoB;IACnC,cAAc,EAAE,qBAAqB;IACrC,gBAAgB,EAAE,uBAAuB;IACzC,aAAa,EAAE,oBAAoB;IACnC,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,oBAAoB;CAC/B,CAAC;AAKF,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC;AAKD,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAClD,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync } from "fs";
3
+ import { mcpConfig } from "./config/index.js";
4
+ import { createMcpServer, runStdioServer } from "./mcp-server/server.js";
5
+ import { startHttpServer } from "./mcp-server/transports/streamable-http-transport.js";
6
+ import { initializeOpenTelemetry, otelLogMixin } from "@cesteral/shared";
7
+ import { createGoogleAuthAdapter, detectTransportMode, createServerLogger, bootstrapMcpServer, } from "@cesteral/shared";
8
+ import { createSessionServices, sessionServiceStore } from "./services/session-services.js";
9
+ import { rateLimiter } from "./utils/platform.js";
10
+ const transportMode = detectTransportMode();
11
+ const logger = createServerLogger("dbm-mcp", transportMode, otelLogMixin());
12
+ async function setupStdioCredentials(sessionId) {
13
+ let credentialsJson;
14
+ if (mcpConfig.serviceAccountFile) {
15
+ logger.info({ file: mcpConfig.serviceAccountFile }, "Loading service account from file (stdio mode)");
16
+ credentialsJson = readFileSync(mcpConfig.serviceAccountFile, "utf-8");
17
+ }
18
+ else if (mcpConfig.serviceAccountJson) {
19
+ credentialsJson = Buffer.from(mcpConfig.serviceAccountJson, "base64").toString();
20
+ }
21
+ if (!credentialsJson) {
22
+ logger.warn("No service account credentials found in env vars. " +
23
+ "Set SERVICE_ACCOUNT_JSON or SERVICE_ACCOUNT_FILE for stdio mode.");
24
+ return false;
25
+ }
26
+ const credentials = JSON.parse(credentialsJson);
27
+ const authAdapter = createGoogleAuthAdapter(credentials, [
28
+ "https://www.googleapis.com/auth/doubleclickbidmanager",
29
+ ]);
30
+ await authAdapter.validate();
31
+ const services = createSessionServices(authAdapter, mcpConfig, logger, rateLimiter);
32
+ sessionServiceStore.set(sessionId, services);
33
+ logger.info("Stdio session services created successfully");
34
+ return true;
35
+ }
36
+ bootstrapMcpServer({
37
+ serviceName: "dbm-mcp",
38
+ config: mcpConfig,
39
+ logger,
40
+ transportMode,
41
+ initOtel: initializeOpenTelemetry,
42
+ setupStdioSession: setupStdioCredentials,
43
+ createMcpServer,
44
+ runStdio: runStdioServer,
45
+ startHttp: startHttpServer,
46
+ onShutdown: () => rateLimiter.destroy(),
47
+ }).catch((err) => {
48
+ logger.fatal({ err }, "Failed to start dbm-mcp");
49
+ process.exit(1);
50
+ });
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,uBAAuB,EAEvB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;AAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;AAM5E,KAAK,UAAU,qBAAqB,CAAC,SAAiB;IACpD,IAAI,eAAmC,CAAC;IAExC,IAAI,SAAS,CAAC,kBAAkB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,SAAS,CAAC,kBAAkB,EAAE,EACtC,gDAAgD,CACjD,CAAC;QACF,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,CAAC;QACxC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnF,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CACT,oDAAoD;YAClD,kEAAkE,CACrE,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAA8B,CAAC;IAC7E,MAAM,WAAW,GAAG,uBAAuB,CAAC,WAAW,EAAE;QACvD,uDAAuD;KACxD,CAAC,CAAC;IAGH,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;IAE7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACpF,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kBAAkB,CAAC;IACjB,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,SAAS;IACjB,MAAM;IACN,aAAa;IACb,QAAQ,EAAE,uBAAuB;IACjC,iBAAiB,EAAE,qBAAqB;IACxC,eAAe;IACf,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,eAAe;IAC1B,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE;CACxC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "./types.js";
2
+ export declare const crossPlatformCampaignSetupPrompt: Prompt;
3
+ export declare function getCrossPlatformCampaignSetupMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=cross-platform-campaign-setup.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-platform-campaign-setup.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAQzC,eAAO,MAAM,gCAAgC,EAAE,MAiB9C,CAAC;AAEF,wBAAgB,oCAAoC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA0R1F"}
@@ -0,0 +1,299 @@
1
+ export const crossPlatformCampaignSetupPrompt = {
2
+ name: "cross_platform_campaign_setup",
3
+ description: "Guide for setting up a coordinated multi-platform campaign across DV360 (dv360-mcp), The Trade Desk (ttd-mcp), Google Ads (gads-mcp), Meta Ads (meta-mcp), LinkedIn (linkedin-mcp), TikTok (tiktok-mcp), Pinterest (pinterest-mcp), Snapchat (snapchat-mcp), and Amazon DSP (amazon-dsp-mcp). Covers platform selection, budget allocation, naming conventions, and phased launch.",
4
+ arguments: [
5
+ {
6
+ name: "totalBudget",
7
+ description: "Total campaign budget across all platforms (e.g., '50000' for $50,000)",
8
+ required: false,
9
+ },
10
+ {
11
+ name: "objective",
12
+ description: "Campaign objective: 'awareness', 'consideration', or 'conversion' (default: conversion)",
13
+ required: false,
14
+ },
15
+ ],
16
+ };
17
+ export function getCrossPlatformCampaignSetupMessage(args) {
18
+ const totalBudget = args?.totalBudget || "{totalBudget}";
19
+ const objective = args?.objective || "conversion";
20
+ return `# Cross-Platform Coordinated Campaign Setup
21
+
22
+ Total Budget: \$${totalBudget}
23
+ Objective: \`${objective}\`
24
+
25
+ This workflow guides you through setting up campaigns across multiple ad platforms in a coordinated manner. You must be connected to the relevant MCP servers.
26
+
27
+ ---
28
+
29
+ ## Step 1: Platform Selection
30
+
31
+ Choose platforms based on your objective and audience:
32
+
33
+ | Objective | Recommended Platforms | Rationale |
34
+ |-----------|----------------------|-----------|
35
+ | **Awareness** | DV360 + Meta + TikTok + Pinterest | DV360 for programmatic display/video reach, Meta/TikTok for social reach, Pinterest for visual discovery |
36
+ | **Consideration** | DV360 + TTD + Meta + LinkedIn | Broad programmatic reach with social engagement and B2B professional targeting |
37
+ | **Conversion** | Google Ads + Meta + TTD + Amazon DSP | Search intent (Google) + social retargeting (Meta) + programmatic (TTD) + retail intent (Amazon) |
38
+ | **B2B** | LinkedIn + Google Ads + Meta | Professional audience targeting on LinkedIn, search intent, social retargeting |
39
+ | **Gen Z / Video** | TikTok + Snapchat + Meta | Short-form video engagement across Gen Z/Millennial audiences |
40
+ | **Shopping / E-commerce** | Pinterest + Meta + Google Ads + Amazon DSP | Visual discovery + social + search + retail intent |
41
+ | **Full-Funnel** | All 9 platforms | Maximum reach across all touchpoints |
42
+
43
+ ---
44
+
45
+ ## Step 2: Budget Allocation
46
+
47
+ Split the total budget across platforms. Common allocation strategies:
48
+
49
+ ### Performance-Based (Recommended for existing campaigns)
50
+ Allocate based on historical CPA/ROAS data. Use the \`cross_platform_performance_comparison\` prompt to gather data first.
51
+
52
+ ### Equal Split (New campaigns with no history)
53
+
54
+ | Platform | Allocation | Budget |
55
+ |----------|-----------|--------|
56
+ | DV360 | 15% | \$${totalBudget} × 0.15 |
57
+ | TTD | 15% | \$${totalBudget} × 0.15 |
58
+ | Google Ads | 15% | \$${totalBudget} × 0.15 |
59
+ | Meta | 15% | \$${totalBudget} × 0.15 |
60
+ | LinkedIn | 10% | \$${totalBudget} × 0.10 |
61
+ | TikTok | 10% | \$${totalBudget} × 0.10 |
62
+ | Pinterest | 10% | \$${totalBudget} × 0.10 |
63
+ | Snapchat | 5% | \$${totalBudget} × 0.05 |
64
+ | Amazon DSP | 5% | \$${totalBudget} × 0.05 |
65
+
66
+ ### Objective-Weighted
67
+
68
+ | Platform | Awareness | Consideration | Conversion | B2B | Shopping |
69
+ |----------|-----------|---------------|------------|-----|----------|
70
+ | DV360 | 25% | 20% | 10% | 5% | 5% |
71
+ | TTD | 15% | 15% | 15% | 5% | 10% |
72
+ | Google Ads | 5% | 15% | 30% | 20% | 20% |
73
+ | Meta | 20% | 20% | 15% | 15% | 20% |
74
+ | LinkedIn | 5% | 10% | 5% | 35% | 2% |
75
+ | TikTok | 15% | 10% | 10% | 5% | 8% |
76
+ | Pinterest | 10% | 5% | 5% | 0% | 20% |
77
+ | Snapchat | 5% | 5% | 5% | 0% | 5% |
78
+ | Amazon DSP | 0% | 0% | 5% | 15% | 10% |
79
+
80
+ ---
81
+
82
+ ## Step 3: Naming Convention
83
+
84
+ Use consistent naming across all platforms for easy cross-platform tracking:
85
+
86
+ **Pattern:** \`{Brand}_{Objective}_{Platform}_{Geo}_{Audience}_{YYYYMM}\`
87
+
88
+ **Examples:**
89
+ - \`Acme_Conv_DV360_US_Retargeting_202603\`
90
+ - \`Acme_Conv_TTD_US_Retargeting_202603\`
91
+ - \`Acme_Conv_GADS_US_Search_202603\`
92
+ - \`Acme_Conv_META_US_Lookalike_202603\`
93
+ - \`Acme_B2B_LI_US_Professionals_202603\`
94
+ - \`Acme_Aware_TT_US_GenZ_202603\`
95
+ - \`Acme_Shop_PIN_US_ShoppingIntent_202603\`
96
+ - \`Acme_Aware_SNAP_US_GenZ_202603\`
97
+ - \`Acme_Conv_AMZN_US_Retargeting_202603\`
98
+
99
+ ---
100
+
101
+ ## Step 4: Create Campaigns on Each Platform
102
+
103
+ ### DV360 (via dv360-mcp)
104
+
105
+ Use the \`full_campaign_setup_workflow\` prompt for detailed guidance.
106
+
107
+ Key steps:
108
+ 1. Create Campaign (PAUSED status)
109
+ 2. Create Insertion Order (DRAFT status)
110
+ 3. Create Line Items (DRAFT status)
111
+ 4. Assign targeting
112
+ 5. Activate via \`entity_activation_workflow\`
113
+
114
+ ⚠️ **DV360 budget values are in micros** (1,000,000 = $1.00)
115
+
116
+ ### The Trade Desk (via ttd-mcp)
117
+
118
+ Use the \`ttd_campaign_setup_workflow\` prompt for detailed guidance.
119
+
120
+ Key steps:
121
+ 1. Create Campaign
122
+ 2. Create Ad Groups with RTBAttributes
123
+ 3. Create Ads and link Creatives
124
+ 4. Set availability to "Available"
125
+
126
+ ⚠️ **TTD budget values are in dollars** ($100.00 = 100.00)
127
+
128
+ ### Google Ads (via gads-mcp)
129
+
130
+ Use the \`gads_campaign_setup_workflow\` prompt for detailed guidance.
131
+
132
+ Key steps:
133
+ 1. Create Campaign Budget
134
+ 2. Create Campaign (PAUSED)
135
+ 3. Create Ad Groups
136
+ 4. Create Keywords (for Search)
137
+ 5. Create Responsive Search Ads
138
+ 6. Enable campaign
139
+
140
+ ⚠️ **Google Ads budget values are in micros** (1,000,000 = $1.00)
141
+
142
+ ### Meta Ads (via meta-mcp)
143
+
144
+ Use the \`meta_campaign_setup_workflow\` prompt for detailed guidance.
145
+
146
+ Key steps:
147
+ 1. Create Campaign (PAUSED)
148
+ 2. Create Ad Creative
149
+ 3. Create Ad Sets with targeting
150
+ 4. Create Ads
151
+ 5. Activate
152
+
153
+ ⚠️ **Meta budget values are in cents** (5000 = $50.00)
154
+
155
+ ### LinkedIn Ads (via linkedin-mcp)
156
+
157
+ Use the \`linkedin_campaign_setup_workflow\` prompt for detailed guidance.
158
+
159
+ Key steps:
160
+ 1. Create Campaign Group (ACTIVE or PAUSED)
161
+ 2. Create Campaign with targeting criteria and CPM bid
162
+ 3. Create Creative linked to the campaign
163
+ 4. Activate via \`linkedin_bulk_update_status\`
164
+
165
+ ⚠️ **LinkedIn budget values are in dollars** ($100.00 = 100.00)
166
+
167
+ Best for: B2B, professional audiences, job title/company/skill targeting
168
+
169
+ ### TikTok Ads (via tiktok-mcp)
170
+
171
+ Use the \`tiktok_campaign_setup_workflow\` prompt for detailed guidance.
172
+
173
+ Key steps:
174
+ 1. Create Campaign with objective and budget
175
+ 2. Create Ad Group with targeting and schedule
176
+ 3. Upload creatives via \`tiktok_upload_video\` or \`tiktok_upload_image\`
177
+ 4. Create Ads referencing the creative
178
+ 5. Enable via \`tiktok_bulk_update_status\`
179
+
180
+ ⚠️ **TikTok budget values are in dollars** ($100.00 = 100.00)
181
+
182
+ Best for: Short-form video, Gen Z/Millennial audiences, entertainment and lifestyle brands
183
+
184
+ ### Pinterest (via pinterest-mcp)
185
+
186
+ Use the \`pinterest_campaign_setup_workflow\` prompt for detailed guidance.
187
+
188
+ Key steps:
189
+ 1. Create Campaign (ACTIVE or PAUSED)
190
+ 2. Create Ad Groups with targeting_spec
191
+ 3. Upload/identify Pinterest Pin to promote
192
+ 4. Create Ads referencing the Pin by pin_id
193
+ 5. Activate via \`pinterest_bulk_update_status\`
194
+
195
+ ⚠️ **Pinterest budget values are in micro-currency** (50000000 = $50.00)
196
+
197
+ Best for: E-commerce, lifestyle, food/beauty brands — high visual discovery and shopping intent
198
+
199
+ ### Snapchat (via snapchat-mcp)
200
+
201
+ Use the \`snapchat_campaign_setup_workflow\` prompt for detailed guidance.
202
+
203
+ Key steps:
204
+ 1. Create Campaign with objective and budget
205
+ 2. Create Ad Squad (Ad Group) with targeting and placement
206
+ 3. Upload creative via \`snapchat_upload_media\`
207
+ 4. Create Ads referencing the creative
208
+ 5. Activate via \`snapchat_bulk_update_status\`
209
+
210
+ ⚠️ **Snapchat budget values are in micro-currency** (1 = $0.000001, so $100.00 = 100000000)
211
+
212
+ Best for: Gen Z audiences, AR lenses, video/story formats
213
+
214
+ ### Amazon DSP (via amazon-dsp-mcp)
215
+
216
+ Use the \`amazon_dsp_campaign_setup_workflow\` prompt for detailed guidance.
217
+
218
+ Key steps:
219
+ 1. Create Order (equivalent to Campaign) with flight dates and budget
220
+ 2. Create Line Item with targeting and bid
221
+ 3. Create Creative and attach to Line Item
222
+ 4. Activate Order
223
+
224
+ ⚠️ **Amazon DSP budget values are in dollars** ($100.00 = 100.00)
225
+
226
+ Best for: Retail/commerce intent, first-party Amazon audience data, programmatic display
227
+
228
+ ---
229
+
230
+ ## Step 5: Budget Value Reference
231
+
232
+ Critical — each platform uses different units:
233
+
234
+ | Platform | Unit | $100.00 Budget | $5.00 Bid | Best For |
235
+ |----------|------|---------------|-----------|----------|
236
+ | **DV360** | Micros | 100000000 | 5000000 | Programmatic display/video |
237
+ | **TTD** | Dollars | 100.00 | 5.00 | Programmatic DSP |
238
+ | **Google Ads** | Micros | 100000000 | 5000000 | Search intent |
239
+ | **Meta** | Cents | 10000 | 500 | Social retargeting |
240
+ | **LinkedIn** | Dollars | 100.00 | 5.00 | B2B professional audiences |
241
+ | **TikTok** | Dollars | 100.00 | 5.00 | Short-form video, Gen Z |
242
+ | **Pinterest** | Micro-currency | 100000000 | 5000000 | Visual discovery, shopping |
243
+ | **Snapchat** | Micro-currency | 100000000 | 5000000 | Gen Z, AR/video |
244
+ | **Amazon DSP** | Dollars | 100.00 | 5.00 | Retail/commerce intent |
245
+
246
+ ---
247
+
248
+ ## Step 6: Phased Launch
249
+
250
+ Don't activate all platforms simultaneously. Launch in phases to monitor:
251
+
252
+ ### Phase 1: Pilot (Week 1)
253
+ - Launch on **one platform** (e.g., Google Ads for conversion, Meta for awareness)
254
+ - Allocate 25% of total budget
255
+ - Establish baseline CPA/ROAS
256
+
257
+ ### Phase 2: Expand (Week 2)
258
+ - Add **second platform** (e.g., Meta or TTD)
259
+ - Compare performance with Phase 1 baseline
260
+ - Adjust bids based on early results
261
+
262
+ ### Phase 3: Full Launch (Week 3+)
263
+ - Activate remaining platforms
264
+ - Use \`cross_platform_performance_comparison\` prompt to monitor
265
+ - Reallocate budget based on performance data
266
+
267
+ ---
268
+
269
+ ## Step 7: Cross-Platform Tracking
270
+
271
+ Set up consistent conversion tracking across platforms:
272
+
273
+ 1. **UTM parameters**: Use consistent UTM source/medium/campaign across all platforms
274
+ 2. **Conversion pixels**: Ensure all platforms track the same conversion events
275
+ 3. **Attribution window**: Note that each platform uses different attribution models — cross-platform CPA comparisons are directional
276
+
277
+ ---
278
+
279
+ ## Post-Launch Monitoring
280
+
281
+ After all platforms are live:
282
+
283
+ 1. **Daily**: Check pacing on each platform
284
+ 2. **Weekly**: Run \`cross_platform_performance_comparison\` to compare metrics
285
+ 3. **Bi-weekly**: Reallocate budget from underperformers to top performers
286
+ 4. **Monthly**: Review overall campaign ROAS and adjust strategy
287
+
288
+ ---
289
+
290
+ ## Gotchas
291
+
292
+ - **Create campaigns PAUSED/DRAFT on all platforms first**, then activate in a controlled sequence
293
+ - **Budget units differ per platform** — double-check the conversion table above
294
+ - **Targeting alignment**: Try to match audiences across platforms as closely as possible for valid comparisons
295
+ - **Creative formats differ**: Each platform has different ad format requirements — plan creative assets accordingly
296
+ - **Time zones**: Campaigns on different platforms may use different timezone settings — align flight dates carefully
297
+ `;
298
+ }
299
+ //# sourceMappingURL=cross-platform-campaign-setup.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-platform-campaign-setup.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/cross-platform-campaign-setup.prompt.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,gCAAgC,GAAW;IACtD,IAAI,EAAE,+BAA+B;IACrC,WAAW,EACT,oXAAoX;IACtX,SAAS,EAAE;QACT;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,wEAAwE;YACrF,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,yFAAyF;YAC3F,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,oCAAoC,CAAC,IAA6B;IAChF,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,eAAe,CAAC;IACzD,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,YAAY,CAAC;IAElD,OAAO;;kBAES,WAAW;eACd,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAiCJ,WAAW;kBACb,WAAW;yBACJ,WAAW;mBACjB,WAAW;uBACP,WAAW;qBACb,WAAW;wBACR,WAAW;sBACb,WAAW;wBACT,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyOlC,CAAC;AACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Prompt } from "./types.js";
2
+ export declare const crossPlatformPerformancePrompt: Prompt;
3
+ export declare function getCrossPlatformPerformanceMessage(args?: Record<string, string>): string;
4
+ //# sourceMappingURL=cross-platform-performance.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-platform-performance.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/cross-platform-performance.prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAQzC,eAAO,MAAM,8BAA8B,EAAE,MAY5C,CAAC;AAEF,wBAAgB,kCAAkC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA8JxF"}