excutia 0.2.0__py3-none-any.whl

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 (414) hide show
  1. excutia/__init__.py +3 -0
  2. excutia/__main__.py +3 -0
  3. excutia/cli.py +66 -0
  4. excutia/credentials.py +73 -0
  5. excutia/demo/__init__.py +78 -0
  6. excutia/demo/replay/ga4/53d0165c1ed9abec746e0ac06c5202270254fd60e6cf1338ab6f7e5532ec1014.json +1 -0
  7. excutia/demo/replay/ga4/8290b79b4d9cff80b07262b691d4ded96f28e3aa87a9c65570d52f24a0442f92.json +1 -0
  8. excutia/demo/replay/ga4/cc2a5b5aff347fa8f58a3b88c3228d80b6d2c59f17a4966d579e0d6b274b26da.json +1 -0
  9. excutia/demo/replay/ga4/ff5c15c69b5a7aedab22c280a31a90af5c179ce0f357354bead9d3b995aeeab4.json +1 -0
  10. excutia/demo/replay/google/0389d638bf2c2c805ecd0c55604df7d6b75f7ec0a5205db927807d72a62e064b.json +1 -0
  11. excutia/demo/replay/google/044ed8e6ff171cab636e87d7935ad255a9b7e427b489b9f0bee5f62df3203a56.json +1 -0
  12. excutia/demo/replay/google/0507079300a86ec9fa9170349d596c72fe1fab4b47379172b521882f3d4b01dd.json +1 -0
  13. excutia/demo/replay/google/069e1f7deacf6d05199677fb40c6748ae18f9a26ee515e2339bf4fbfaec64cce.json +1 -0
  14. excutia/demo/replay/google/07dac2b4f36ec443f3175ee3f5cef94d412b3037e22cc1dc28c20ada2c016931.json +1 -0
  15. excutia/demo/replay/google/0b283261ca0924b077da052fd31c2d7fd7e756eaa948b933a4613d4c484a3803.json +1 -0
  16. excutia/demo/replay/google/0cc2b3e736b96269b316203825a04ab49082048fe213bd0ef89789dc822f8cde.json +1 -0
  17. excutia/demo/replay/google/0ef11e02ec918611832efe80006aab61beb2c40cebe454510508b5b3e7654739.json +1 -0
  18. excutia/demo/replay/google/1395875e2133f0ba54111cfbf0cc1d77d7758c5d24dcc64104cf46d7ba35e221.json +1 -0
  19. excutia/demo/replay/google/159105ffba82112f9f93f42405617c8842c77a9050a3452a9bce11f6a4f5f10b.json +1 -0
  20. excutia/demo/replay/google/1ce72f4dbf451436b3769265ceaeb1b2570de24a6f6455a2761171d5aa3ca330.json +1 -0
  21. excutia/demo/replay/google/1ee89ca0a04a1fc71f9935c059b40c64d10594f7985a444e8fe93fe7eca8c021.json +1 -0
  22. excutia/demo/replay/google/281e46699d8ef267f36a5e62fe0a1e6bad4c50f47b4004fa328403f369cf7433.json +1 -0
  23. excutia/demo/replay/google/28dcb0c55b0a2909b4a0ffdaecd4d20898a27f377150abbddd66c4fda70b9dc0.json +1 -0
  24. excutia/demo/replay/google/2dafab9b00c4e1aded485f7cc01baa391607165a6ccf8ca2698246da28c293a9.json +1 -0
  25. excutia/demo/replay/google/3452a23660505b80740cfd345dea47cd142730d009f5815dd1720e719f8545fe.json +1 -0
  26. excutia/demo/replay/google/35b08a1f4c52d256ba1e4d004826c6efc5d1c45e5c332dd1bbec80d5e6a47126.json +1 -0
  27. excutia/demo/replay/google/36517eb50830f5b602ebb7114ad957995683e8b8ee4fa47b6a96f22082717b8c.json +1 -0
  28. excutia/demo/replay/google/3966fa8f954159c84a19a1e2bec3576e2bada1ace278163234ab932858268b2b.json +1 -0
  29. excutia/demo/replay/google/463f6130127e8ad50bcf57db9f8570912e5b07595f4362655f0da1cfd90bf7bc.json +1 -0
  30. excutia/demo/replay/google/47c6f5f99d7a96ce6a4430d4d39e86bde6a703552785a2b2f9abdc213078c293.json +1 -0
  31. excutia/demo/replay/google/47e529fe440fd2bc62cf3600a40d32c3921143540638ba3f02b924f85e86d76c.json +1 -0
  32. excutia/demo/replay/google/4cc3763a1eae6e46838ee7643cba8bae14a15dee033c4e921f3b96d8d3966db4.json +1 -0
  33. excutia/demo/replay/google/53079479e0fb17f1e2ffd51d17442e20a7635273f51ed40a12d4e055cc362ab3.json +1 -0
  34. excutia/demo/replay/google/536c6da69ac4cd39b12c9a2d8bc8a0d51c324268d5ca2b682a8fcc55b9647dfa.json +1 -0
  35. excutia/demo/replay/google/54553046344ef20bee50d22c5dc4edade20286e3ca2ef44fa84e98b05fcb39cc.json +1 -0
  36. excutia/demo/replay/google/5c3c0f02cd5c82e77a0c8a38642b294163e55c5b9336b092f33ba9f47594dfd6.json +1 -0
  37. excutia/demo/replay/google/5f15811c32710855841dd4ed55ea45acbe423602f2ab7244f446ef10c0d2d216.json +1 -0
  38. excutia/demo/replay/google/5fa833270ac8b1373a38bedcdc9ff38bb14e583690a31dc34682ba47236fec8b.json +1 -0
  39. excutia/demo/replay/google/6218a7a1495e182f2448a18bda614457e1d0dfc0eb1298d50ae35cd93f4fb4d2.json +1 -0
  40. excutia/demo/replay/google/68cb44bdc0dbd73d5d8e1372370f2af30362eef7a39580b275185151a2508c07.json +1 -0
  41. excutia/demo/replay/google/727be7a6e259124bba048be6ade77e687b89a05c04b35b42fa3242f5cbe2f6ed.json +1 -0
  42. excutia/demo/replay/google/74ce7a83a0460c1b767fe9163db5ba1d2605129acc15b49c0fecd191e4c7a413.json +1 -0
  43. excutia/demo/replay/google/7799d1252517e5762ffcec15140fe4a771c25003938c858559a28031a3959a7a.json +1 -0
  44. excutia/demo/replay/google/78ae34db0be7eebb7aa7f774043e124d20e061d084b17582f2a74a15970bc79f.json +1 -0
  45. excutia/demo/replay/google/7a2dd274397637b01948b4b0fe93f712b80cafc856feb8ab72ed903647de6c11.json +1 -0
  46. excutia/demo/replay/google/7bf095d9ebf76add277603b03a7f6aeace372b036892d73f3c23a4b87d0ba24c.json +1 -0
  47. excutia/demo/replay/google/85a621bb0001b064038d945ddeea16ecafedcb80ff84d31ef698acb6af05778d.json +1 -0
  48. excutia/demo/replay/google/874afcb6bc9c792733ea4d1ebb89a286d99ae4990c7a300fa36deb26e7d7402b.json +1 -0
  49. excutia/demo/replay/google/877e86f56fdba30f4baa7776525db40f4a9821d01f2d2a047bfb08ec2db53554.json +1 -0
  50. excutia/demo/replay/google/8841e9ddedaa3187c9962eebeaea4cbad74ff9e03ee7361f3fe10d74ba30e4a0.json +1 -0
  51. excutia/demo/replay/google/896373ac7045a0a91649e7bc8701420bab4f22d9ef3f914dce519e6001d4bb3b.json +1 -0
  52. excutia/demo/replay/google/8af4219d5b73bc7b6f3f0fafc28a62d54ba270a14ce30a331826fd50801d4ece.json +1 -0
  53. excutia/demo/replay/google/8cfcc8a6cdf07d3fc1a7eb48b1e9a2fab4f500756a9f28b5e00b36dcb42389ff.json +1 -0
  54. excutia/demo/replay/google/90b9549744cf87f47d448b9c10af40c0679b8d2a45507d593379709d47561fcd.json +1 -0
  55. excutia/demo/replay/google/939b61e8aa96d90e92b1e226c35ee4f85fc7c580af903fc59bac57e934080905.json +1 -0
  56. excutia/demo/replay/google/95abe8053656ce4710912773d2d32c1974d7d104f3fa60e0be3116aef9774274.json +1 -0
  57. excutia/demo/replay/google/98b2f14d478a1718b284cbcd88576129a07850e2fca8365cb2bd575deacabcd9.json +1 -0
  58. excutia/demo/replay/google/9b6e4fe4068124bf23c909dff6ebef04bede16ddc53c360cb56da7b05f4b8f4f.json +1 -0
  59. excutia/demo/replay/google/a14b8253e10250e89781f95c693cf0bba2dbcbde5b75c10ba19f49b1d0b9cbc5.json +1 -0
  60. excutia/demo/replay/google/a19b1b0a6467f8f086cb8fb27ce3d8ba18555a58b1e4c50424e69f08d8ef5e33.json +1 -0
  61. excutia/demo/replay/google/a63e4d076830cc0a3fda63f3de7085b94fcf873be1d3ee6348c425c9f545d077.json +1 -0
  62. excutia/demo/replay/google/abfb020d0d3e3468bb24080e89c7b408baec0bb31ff4c3ea93023d9edfbc2f03.json +1 -0
  63. excutia/demo/replay/google/ad051bea2317b5ae9a9dd799e0fb810da39e8a933f0143ceb372b095c5ac87b8.json +1 -0
  64. excutia/demo/replay/google/b06e77636fd2c39e5dab51b76f4e307b6d2e09839dddb14a3e4521099b82003b.json +1 -0
  65. excutia/demo/replay/google/b1c70903a039c00c50e5e408b1553eb01e9f2061f987f8cd9c0019d00817d6d1.json +1 -0
  66. excutia/demo/replay/google/b878ec22aef6809e031824f3fbacd122a31412e95139324928480e351174ec9f.json +1 -0
  67. excutia/demo/replay/google/bbfcf252020b7c94595ab2fe2f6a9bd3bbfce1cc40c31798e6c98482d744ae65.json +1 -0
  68. excutia/demo/replay/google/c2ed734fe2884c571a5d4f8f35e7dc6bdf2aa093a60c309dc44842dab5a5b944.json +1 -0
  69. excutia/demo/replay/google/c6a63f3b0cca4bd370fd39632a0823842b5a3b76d12f8744d1333c37e5395d65.json +1 -0
  70. excutia/demo/replay/google/cc3c091fa9340c6f7a696a68c1453a0ff53409132ee6dd23b1c490c4e70419b4.json +1 -0
  71. excutia/demo/replay/google/cc5117da6917a24355ce3e81585fa424cdb9d7a9d0b06f77d1f1fbb162c7eea8.json +1 -0
  72. excutia/demo/replay/google/cda751d26ff2de5838dd354e487e6132f0f0227eed8297c1fd78dab635f97443.json +1 -0
  73. excutia/demo/replay/google/cdb49a07613ed18bb2fad5de6b6906567822636c515e4298af3593fce8d4a1fd.json +1 -0
  74. excutia/demo/replay/google/dc813ff395d54411d4897b922887c09db35c8e9db69df9f6085684eae5df6cda.json +1 -0
  75. excutia/demo/replay/google/e06096a1d21b73918e27d66b5661d2112ac069fe8885e3725b92713d6f940dc2.json +1 -0
  76. excutia/demo/replay/google/e29be17808b795e8f3d26dd1558c61cd10c2d9855c9313f81c7df5c42a9911a8.json +1 -0
  77. excutia/demo/replay/google/e5850c4bad961dcd128b8f1213879ab90ec7e6524352b17b8e5f87af06c954be.json +1 -0
  78. excutia/demo/replay/google/e64fa4653a25c46b2b7048a01533154450ea65386437415ec04422a0390070f7.json +1 -0
  79. excutia/demo/replay/google/e83a0c2fb15ed8bd09148109a40d56d25a3fd829b56440dc698f7463abfb835c.json +1 -0
  80. excutia/demo/replay/google/e8cf7d8357c7a8d33c55e7814b2b0871cd73eb71399de2c8253013352a4d9b68.json +1 -0
  81. excutia/demo/replay/google/eb29d626aef8361a915ff1c5aa1c1a5d593d12a75923de0a7a0cfc8cdb60047d.json +1 -0
  82. excutia/demo/replay/google/f28e258671e4c87884358d888249623fa92520b367a83c246f78c541d7d5e8fa.json +1 -0
  83. excutia/demo/replay/google/f60f5cc8df030beec1f0d3f3494448d10aadcbac977f8c93ab9d6d5ea72dfc67.json +1 -0
  84. excutia/demo/replay/google/f9c08fd9411c3421d96b25e305986f272fd8e4f27e1daaff33d8316063b78866.json +1 -0
  85. excutia/demo/replay/google/ff7db6bd30b16936bd7a85bfcba4e15419d71baed6970f3eafa903beec749cb2.json +1 -0
  86. excutia/demo/replay/meta/00dd2ff38c49e84eb05f5ffdf6ad2f74bf656b2f23b83f68ea51b812bd8bcf6a.json +1 -0
  87. excutia/demo/replay/meta/0a5bfeefaa11ba1ac6ac9a655aa2bea8fcfd0c5cbaed502d74a059c19be4a4af.json +1 -0
  88. excutia/demo/replay/meta/246e830eebd8abfc63ac27cffd5adb93633bf9a173151ddcb85cd655e8a1ad6b.json +1 -0
  89. excutia/demo/replay/meta/272f6f456f6592b5aff077815eaed3d1b98ba2f59dc79f8caaa35162823db9e3.json +1 -0
  90. excutia/demo/replay/meta/42ef8bc73fe3f1915a9740e15408e328ce97958a00ebd1cd1db3c7a9915c7318.json +1 -0
  91. excutia/demo/replay/meta/4b9d73945fd234148a3f883392a9eed634a69981b7a126304fe058ac7eef9afb.json +1 -0
  92. excutia/demo/replay/meta/5de025d803b28e6383a746f371ba77e43364b54b7ed306e7cb438eceed2b7abe.json +1 -0
  93. excutia/demo/replay/meta/5ee35e4635e6e0cf2256974afa069a071ba634ee4fa573ea9584e4b54d87e237.json +1 -0
  94. excutia/demo/replay/meta/68ff80bd2c015232fa0a7f5c56d4e5d367099a767d33010b44e134f6885edeb8.json +1 -0
  95. excutia/demo/replay/meta/6999e614d6a4aa162686d7c44ec92288d4a0c5db8409a4d38f78fbc7c86e7acb.json +1 -0
  96. excutia/demo/replay/meta/6ab07da5380f9d5b87d20c8d9685b6a3f4a8ef170ff796c293cd41b8414a9537.json +1 -0
  97. excutia/demo/replay/meta/6e488538237416184b17af50f13b0ceee8a4b78681bc8e76ee2599efbdd87c47.json +1 -0
  98. excutia/demo/replay/meta/6fad95d34e4a7353cd6bea202e8444f4d7411f14451870b46402d61b59b43a99.json +1 -0
  99. excutia/demo/replay/meta/7270ce5a870afbc7365bac91e112c09470d3698ad47ccee4ac303b1b2f8c3b37.json +1 -0
  100. excutia/demo/replay/meta/7c84b2dc12b263b6a1427cb7165e23b30185fb9863c37c39a3b4baf725f0c9b1.json +1 -0
  101. excutia/demo/replay/meta/8d5cbd61c6afa7e8c56fbe45f6077e945ab730be74e18605d22176139ab5f186.json +1 -0
  102. excutia/demo/replay/meta/9a033d7c0b88b6d4f61da9fd0fada2d7e1ad53107bd707a33d5ef7ae6831b143.json +1 -0
  103. excutia/demo/replay/meta/a140aebce940c5eb873fc46b102b93ddfe5cf691cea7437c68d61fd44df6422f.json +1 -0
  104. excutia/demo/replay/meta/aa4d2677f7b01d18cd50ad68af13dcda825c17e80570e1ef7200d547596ff607.json +1 -0
  105. excutia/demo/replay/meta/ab1bedd93f5f30eb0bef63f0ae4cdf374256b7f70645061b2d1cf37df3bdb537.json +1 -0
  106. excutia/demo/replay/meta/ab8bea2be53ea814c6431b4a39d110ee2f91884e13c2dbc961a2ebe8368d991d.json +1 -0
  107. excutia/demo/replay/meta/b6d29e8be2abaf3af59ac08e03e3aa18cce5403d48388039369826d3c834e07c.json +1 -0
  108. excutia/demo/replay/meta/b9fdbe64e9d03bfa7796f3018552d4ca041f6d592b4078b5bbd16df2d3bc8148.json +1 -0
  109. excutia/demo/replay/meta/bc395012f7b29d5e9a250a3a12d16a984610dbf9559c802f58c8b08b25e00cfb.json +1 -0
  110. excutia/demo/replay/meta/ca221733bf66023707102cdc8062dfe05b560945ee07f49b2ee9e078b18a705e.json +1 -0
  111. excutia/demo/replay/meta/e1488ef5c25ff25229bee8a1cd81f23e56abe082536bbfbdf6964a4c48d09e7c.json +1 -0
  112. excutia/demo/replay/meta/e1fed5d8b12c1c34a0ef71512cd1a9a0e1021676b9cd989fe80c8552cc4e1938.json +1 -0
  113. excutia/demo/replay/meta/ee49dc8e51a07b1c92c193ecedc2549445f76880aae5f9b7c329259213fe10e2.json +1 -0
  114. excutia/demo/replay/meta/f1f8d8922b7d8855b9eeb6d81764bac9f56cb607d8c8fd841df96be15d0acf11.json +1 -0
  115. excutia/demo/replay/meta/f4bb8a7069244766a287a8121a2ac067b7a02ee0531276848c58356c2e8605a6.json +1 -0
  116. excutia/experiments/__init__.py +1 -0
  117. excutia/experiments/adapters.py +237 -0
  118. excutia/experiments/contracts.py +444 -0
  119. excutia/experiments/discovery.py +86 -0
  120. excutia/experiments/fixtures.py +43 -0
  121. excutia/experiments/harness_contracts.py +954 -0
  122. excutia/experiments/harness_design.py +718 -0
  123. excutia/experiments/harness_learning.py +425 -0
  124. excutia/experiments/harness_readiness.py +591 -0
  125. excutia/experiments/learning_v2.py +690 -0
  126. excutia/experiments/numeric_claims.py +417 -0
  127. excutia/experiments/readout.py +142 -0
  128. excutia/experiments/readouts_v2.py +734 -0
  129. excutia/experiments/recipe_contracts.py +687 -0
  130. excutia/experiments/recipes/__init__.py +22 -0
  131. excutia/experiments/recipes/native.py +738 -0
  132. excutia/experiments/recipes/pilot.py +675 -0
  133. excutia/findings.py +84 -0
  134. excutia/ga4/__init__.py +1 -0
  135. excutia/ga4/capability.py +1143 -0
  136. excutia/ga4/client.py +1283 -0
  137. excutia/ga4/configuration.py +102 -0
  138. excutia/ga4/contracts.py +282 -0
  139. excutia/ga4/evidence.py +862 -0
  140. excutia/ga4/fields.py +23 -0
  141. excutia/ga4/reports.py +487 -0
  142. excutia/google/__init__.py +1 -0
  143. excutia/google/client.py +364 -0
  144. excutia/google/gaql.py +131 -0
  145. excutia/google/geo_names.py +168 -0
  146. excutia/google/history.py +243 -0
  147. excutia/google/pmax_queries.py +380 -0
  148. excutia/google/pmax_tools.py +1093 -0
  149. excutia/google/queries.py +588 -0
  150. excutia/google/quota.py +51 -0
  151. excutia/google/results.py +1539 -0
  152. excutia/google/supplements.py +93 -0
  153. excutia/google/tools.py +1518 -0
  154. excutia/local/__init__.py +1 -0
  155. excutia/local/redaction.py +99 -0
  156. excutia/mcp/__init__.py +5 -0
  157. excutia/mcp/common.py +83 -0
  158. excutia/mcp/config.py +244 -0
  159. excutia/mcp/contracts/__init__.py +1 -0
  160. excutia/mcp/contracts/access.py +166 -0
  161. excutia/mcp/contracts/account_ref.py +114 -0
  162. excutia/mcp/contracts/entity_ref.py +75 -0
  163. excutia/mcp/contracts/errors.py +48 -0
  164. excutia/mcp/contracts/jobs.py +143 -0
  165. excutia/mcp/contracts/money.py +124 -0
  166. excutia/mcp/contracts/paging.py +62 -0
  167. excutia/mcp/contracts/platform_fields.py +37 -0
  168. excutia/mcp/contracts/status.py +30 -0
  169. excutia/mcp/contracts/windows.py +136 -0
  170. excutia/mcp/creatives/__init__.py +1 -0
  171. excutia/mcp/creatives/google.py +156 -0
  172. excutia/mcp/creatives/media.py +224 -0
  173. excutia/mcp/creatives/meta.py +178 -0
  174. excutia/mcp/creatives/service.py +170 -0
  175. excutia/mcp/diagnostics/__init__.py +1 -0
  176. excutia/mcp/diagnostics/common.py +137 -0
  177. excutia/mcp/diagnostics/delivery.py +298 -0
  178. excutia/mcp/diagnostics/recommendations.py +125 -0
  179. excutia/mcp/diagnostics/tracking.py +334 -0
  180. excutia/mcp/envelope.py +128 -0
  181. excutia/mcp/evidence.py +72 -0
  182. excutia/mcp/experiments/__init__.py +1 -0
  183. excutia/mcp/experiments/calling.py +230 -0
  184. excutia/mcp/experiments/edits.py +75 -0
  185. excutia/mcp/experiments/google.py +134 -0
  186. excutia/mcp/experiments/health.py +146 -0
  187. excutia/mcp/experiments/learning.py +317 -0
  188. excutia/mcp/experiments/meta.py +474 -0
  189. excutia/mcp/experiments/records.py +108 -0
  190. excutia/mcp/history/__init__.py +0 -0
  191. excutia/mcp/history/coverage.py +75 -0
  192. excutia/mcp/history/google.py +186 -0
  193. excutia/mcp/history/meta.py +178 -0
  194. excutia/mcp/history/model.py +185 -0
  195. excutia/mcp/history/receipts.py +42 -0
  196. excutia/mcp/history/service.py +124 -0
  197. excutia/mcp/keywords/__init__.py +38 -0
  198. excutia/mcp/keywords/planner.py +111 -0
  199. excutia/mcp/keywords/research.py +85 -0
  200. excutia/mcp/keywords/search_terms.py +208 -0
  201. excutia/mcp/memory/__init__.py +6 -0
  202. excutia/mcp/memory/aliases.py +167 -0
  203. excutia/mcp/memory/hooks.py +423 -0
  204. excutia/mcp/memory/model.py +762 -0
  205. excutia/mcp/memory/service.py +574 -0
  206. excutia/mcp/memory/signals.py +51 -0
  207. excutia/mcp/output_schema.py +12 -0
  208. excutia/mcp/performance/__init__.py +1 -0
  209. excutia/mcp/performance/compare.py +101 -0
  210. excutia/mcp/performance/engine.py +262 -0
  211. excutia/mcp/performance/fields.py +221 -0
  212. excutia/mcp/performance/google.py +131 -0
  213. excutia/mcp/performance/meta.py +137 -0
  214. excutia/mcp/performance/meta_actions.py +182 -0
  215. excutia/mcp/performance/meta_async.py +108 -0
  216. excutia/mcp/performance/request.py +188 -0
  217. excutia/mcp/replay.py +89 -0
  218. excutia/mcp/resources/__init__.py +64 -0
  219. excutia/mcp/resources/audiences.py +130 -0
  220. excutia/mcp/resources/negative_lists.py +105 -0
  221. excutia/mcp/review/__init__.py +6 -0
  222. excutia/mcp/review/builders.py +57 -0
  223. excutia/mcp/review/builders_changes.py +254 -0
  224. excutia/mcp/review/builders_workflow.py +42 -0
  225. excutia/mcp/review/catalogue.py +106 -0
  226. excutia/mcp/review/decisions.py +84 -0
  227. excutia/mcp/review/models.py +225 -0
  228. excutia/mcp/review/render.py +133 -0
  229. excutia/mcp/review/render_changes.py +165 -0
  230. excutia/mcp/review/server.py +514 -0
  231. excutia/mcp/review/static/Figtree-OFL.txt +93 -0
  232. excutia/mcp/review/static/excutia-horizontal.svg +1 -0
  233. excutia/mcp/review/static/favicon.svg +1 -0
  234. excutia/mcp/review/static/figtree-latin-wght-normal.woff2 +0 -0
  235. excutia/mcp/review/static/review.css +142 -0
  236. excutia/mcp/review/static/review.js +164 -0
  237. excutia/mcp/review/templates/changes.html +3 -0
  238. excutia/mcp/review/templates/icons.svg +15 -0
  239. excutia/mcp/review/templates/page.html +7 -0
  240. excutia/mcp/review/validation.py +218 -0
  241. excutia/mcp/runtime.py +166 -0
  242. excutia/mcp/server.py +159 -0
  243. excutia/mcp/sources/__init__.py +1 -0
  244. excutia/mcp/sources/arguments.py +26 -0
  245. excutia/mcp/sources/catalog.py +89 -0
  246. excutia/mcp/sources/ga4.py +190 -0
  247. excutia/mcp/sources/google.py +248 -0
  248. excutia/mcp/sources/meta.py +154 -0
  249. excutia/mcp/sources/scope.py +38 -0
  250. excutia/mcp/sources/shared.py +119 -0
  251. excutia/mcp/store.py +438 -0
  252. excutia/mcp/structure/__init__.py +5 -0
  253. excutia/mcp/structure/google.py +238 -0
  254. excutia/mcp/structure/levels.py +86 -0
  255. excutia/mcp/structure/meta.py +126 -0
  256. excutia/mcp/structure/rows.py +269 -0
  257. excutia/mcp/structure/service.py +253 -0
  258. excutia/mcp/sweep/__init__.py +1 -0
  259. excutia/mcp/sweep/__main__.py +87 -0
  260. excutia/mcp/sweep/brief.py +226 -0
  261. excutia/mcp/sweep/jobs.py +57 -0
  262. excutia/mcp/sweep/lifecycle.py +112 -0
  263. excutia/mcp/sweep/remedies.py +25 -0
  264. excutia/mcp/sweep/run.py +299 -0
  265. excutia/mcp/tools/__init__.py +1 -0
  266. excutia/mcp/tools/_bridge.py +7 -0
  267. excutia/mcp/tools/accounts.py +88 -0
  268. excutia/mcp/tools/calculate.py +132 -0
  269. excutia/mcp/tools/changes.py +36 -0
  270. excutia/mcp/tools/connect.py +42 -0
  271. excutia/mcp/tools/context.py +61 -0
  272. excutia/mcp/tools/creatives.py +34 -0
  273. excutia/mcp/tools/diagnostics.py +46 -0
  274. excutia/mcp/tools/evidence.py +33 -0
  275. excutia/mcp/tools/history.py +25 -0
  276. excutia/mcp/tools/jobs.py +20 -0
  277. excutia/mcp/tools/keywords.py +33 -0
  278. excutia/mcp/tools/memory.py +67 -0
  279. excutia/mcp/tools/meta_tests.py +17 -0
  280. excutia/mcp/tools/monitor.py +18 -0
  281. excutia/mcp/tools/performance.py +36 -0
  282. excutia/mcp/tools/reports.py +44 -0
  283. excutia/mcp/tools/resources.py +21 -0
  284. excutia/mcp/tools/review.py +43 -0
  285. excutia/mcp/tools/structure.py +26 -0
  286. excutia/mcp/tools/sweep.py +19 -0
  287. excutia/mcp/tools/tests.py +77 -0
  288. excutia/mcp/tools/variants.py +33 -0
  289. excutia/mcp/tools/workflow.py +62 -0
  290. excutia/mcp/toolsets.py +80 -0
  291. excutia/mcp/variants/__init__.py +198 -0
  292. excutia/mcp/variants/images.py +36 -0
  293. excutia/mcp/variants/review_builder.py +17 -0
  294. excutia/mcp/workflow/__init__.py +1 -0
  295. excutia/mcp/workflow/annotations.py +5 -0
  296. excutia/mcp/workflow/common.py +67 -0
  297. excutia/mcp/workflow/decisions.py +117 -0
  298. excutia/mcp/workflow/design.py +126 -0
  299. excutia/mcp/workflow/diagnosis.py +401 -0
  300. excutia/mcp/workflow/diagnosis_job.py +189 -0
  301. excutia/mcp/workflow/hypotheses.py +268 -0
  302. excutia/mcp/workflow/ranking.py +41 -0
  303. excutia/mcp/workflow/sizing.py +158 -0
  304. excutia/mcp/writes/__init__.py +1 -0
  305. excutia/mcp/writes/applier.py +388 -0
  306. excutia/mcp/writes/approval.py +125 -0
  307. excutia/mcp/writes/errors.py +35 -0
  308. excutia/mcp/writes/facts.py +186 -0
  309. excutia/mcp/writes/google/__init__.py +1 -0
  310. excutia/mcp/writes/google/base.py +71 -0
  311. excutia/mcp/writes/google/client.py +103 -0
  312. excutia/mcp/writes/google/errors.py +96 -0
  313. excutia/mcp/writes/google/executor.py +189 -0
  314. excutia/mcp/writes/google/limits.py +3 -0
  315. excutia/mcp/writes/google/operations.py +67 -0
  316. excutia/mcp/writes/google/reads.py +281 -0
  317. excutia/mcp/writes/google/refs.py +53 -0
  318. excutia/mcp/writes/kinds/__init__.py +0 -0
  319. excutia/mcp/writes/kinds/google/__init__.py +1 -0
  320. excutia/mcp/writes/kinds/google/ad_group.py +132 -0
  321. excutia/mcp/writes/kinds/google/asset_status.py +184 -0
  322. excutia/mcp/writes/kinds/google/audience_targeting.py +350 -0
  323. excutia/mcp/writes/kinds/google/bid.py +166 -0
  324. excutia/mcp/writes/kinds/google/budget.py +142 -0
  325. excutia/mcp/writes/kinds/google/create_experiment.py +337 -0
  326. excutia/mcp/writes/kinds/google/create_experiment_arms.py +231 -0
  327. excutia/mcp/writes/kinds/google/end_experiment.py +86 -0
  328. excutia/mcp/writes/kinds/google/executor.py +6 -0
  329. excutia/mcp/writes/kinds/google/keywords.py +334 -0
  330. excutia/mcp/writes/kinds/google/negatives.py +267 -0
  331. excutia/mcp/writes/kinds/google/rename.py +74 -0
  332. excutia/mcp/writes/kinds/google/schedule_experiment.py +423 -0
  333. excutia/mcp/writes/kinds/google/status.py +82 -0
  334. excutia/mcp/writes/kinds/meta/__init__.py +1 -0
  335. excutia/mcp/writes/kinds/meta/cancel_study.py +161 -0
  336. excutia/mcp/writes/kinds/meta/create_ad.py +150 -0
  337. excutia/mcp/writes/kinds/meta/create_creative.py +171 -0
  338. excutia/mcp/writes/kinds/meta/create_split_test.py +435 -0
  339. excutia/mcp/writes/kinds/meta/rename.py +58 -0
  340. excutia/mcp/writes/kinds/meta/set_bid.py +163 -0
  341. excutia/mcp/writes/kinds/meta/set_budget.py +262 -0
  342. excutia/mcp/writes/kinds/meta/set_status.py +60 -0
  343. excutia/mcp/writes/kinds/meta/update_ad_copy.py +310 -0
  344. excutia/mcp/writes/kinds/meta/upload_image.py +264 -0
  345. excutia/mcp/writes/limits.py +17 -0
  346. excutia/mcp/writes/meta/__init__.py +1 -0
  347. excutia/mcp/writes/meta/base.py +78 -0
  348. excutia/mcp/writes/meta/capabilities.py +12 -0
  349. excutia/mcp/writes/meta/client.py +145 -0
  350. excutia/mcp/writes/meta/errors.py +68 -0
  351. excutia/mcp/writes/meta/issues.py +37 -0
  352. excutia/mcp/writes/meta/money.py +48 -0
  353. excutia/mcp/writes/meta/reads.py +41 -0
  354. excutia/mcp/writes/meta/refs.py +10 -0
  355. excutia/mcp/writes/model.py +244 -0
  356. excutia/mcp/writes/pacing.py +135 -0
  357. excutia/mcp/writes/planner.py +373 -0
  358. excutia/mcp/writes/protocol.py +229 -0
  359. excutia/mcp/writes/reconcile.py +229 -0
  360. excutia/mcp/writes/refs.py +46 -0
  361. excutia/mcp/writes/registry.py +64 -0
  362. excutia/memory/__init__.py +1 -0
  363. excutia/memory/contracts.py +338 -0
  364. excutia/memory/policy.py +431 -0
  365. excutia/meta/__init__.py +0 -0
  366. excutia/meta/client.py +298 -0
  367. excutia/meta/contracts.py +40 -0
  368. excutia/meta/conversions.py +36 -0
  369. excutia/meta/errors.py +57 -0
  370. excutia/meta/insights.py +266 -0
  371. excutia/meta/results.py +147 -0
  372. excutia/meta/structure.py +150 -0
  373. excutia/meta/tools.py +246 -0
  374. excutia/onboarding/__init__.py +5 -0
  375. excutia/onboarding/checks.py +215 -0
  376. excutia/onboarding/doctor.py +211 -0
  377. excutia/onboarding/oauth.py +123 -0
  378. excutia/onboarding/setup.py +280 -0
  379. excutia/pmax/__init__.py +1 -0
  380. excutia/pmax/capability.py +841 -0
  381. excutia/pmax/contracts.py +164 -0
  382. excutia/pmax/signals.py +279 -0
  383. excutia/r0/__init__.py +1 -0
  384. excutia/r0/contracts.py +184 -0
  385. excutia/r0/identifiers.py +12 -0
  386. excutia/reporting/__init__.py +1 -0
  387. excutia/reporting/coverage.py +109 -0
  388. excutia/reporting/dimension_summary.py +535 -0
  389. excutia/reporting/metrics.py +96 -0
  390. excutia/reporting/money.py +42 -0
  391. excutia/reporting/projection.py +58 -0
  392. excutia/reporting/search_term_population.py +197 -0
  393. excutia/search/__init__.py +1 -0
  394. excutia/search/capability.py +855 -0
  395. excutia/search/contracts.py +179 -0
  396. excutia/search/signals.py +660 -0
  397. excutia/search_terms/__init__.py +1 -0
  398. excutia/search_terms/operator/__init__.py +1 -0
  399. excutia/search_terms/operator/normalization.py +49 -0
  400. excutia/search_terms/queries.py +627 -0
  401. excutia/sweep/__init__.py +1 -0
  402. excutia/sweep/fetch.py +320 -0
  403. excutia/sweep/mapping.py +321 -0
  404. excutia/trust/__init__.py +1 -0
  405. excutia/trust/artifacts.py +61 -0
  406. excutia/trust/catalog.py +382 -0
  407. excutia/trust/contracts.py +430 -0
  408. excutia/trust/notes.py +230 -0
  409. excutia/trust/validation.py +349 -0
  410. excutia-0.2.0.dist-info/METADATA +122 -0
  411. excutia-0.2.0.dist-info/RECORD +414 -0
  412. excutia-0.2.0.dist-info/WHEEL +4 -0
  413. excutia-0.2.0.dist-info/entry_points.txt +2 -0
  414. excutia-0.2.0.dist-info/licenses/LICENSE +202 -0
excutia/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """Excutia: a local MCP server for Google Ads, Meta Ads and GA4."""
2
+
3
+ __version__ = "0.2.0"
excutia/__main__.py ADDED
@@ -0,0 +1,3 @@
1
+ from .cli import main
2
+
3
+ raise SystemExit(main())
excutia/cli.py ADDED
@@ -0,0 +1,66 @@
1
+ """The `excutia` command: the MCP server over stdio, plus setup and doctor."""
2
+
3
+ import argparse
4
+ import sys
5
+
6
+ from . import __version__
7
+
8
+
9
+ def _serve(args):
10
+ # Importing the server builds the tool registry; keep it out of --help.
11
+ from .mcp.server import main
12
+ main()
13
+ return 0
14
+
15
+
16
+ def _sweep(argv):
17
+ from .mcp.sweep.__main__ import main
18
+ return main(argv)
19
+
20
+
21
+ def _hook(argv):
22
+ # Memory hooks import only the light memory modules, not the server.
23
+ from .mcp.memory.hooks import main
24
+ return main(argv)
25
+
26
+
27
+ def _setup(argv):
28
+ from .onboarding.setup import main
29
+ return main(argv)
30
+
31
+
32
+ def _doctor(argv):
33
+ from .onboarding.doctor import main
34
+ return main(argv)
35
+
36
+
37
+ # These own their arguments, so they are forwarded before argparse sees them.
38
+ PASSTHROUGH = {"setup": _setup, "doctor": _doctor, "sweep": _sweep, "hook": _hook}
39
+
40
+
41
+ def parser():
42
+ root = argparse.ArgumentParser(
43
+ prog="excutia",
44
+ description="Local MCP server for Google Ads, Meta Ads and GA4. "
45
+ "With no command, it serves MCP over stdio.")
46
+ root.add_argument("--version", action="version", version=f"excutia {__version__}")
47
+ commands = root.add_subparsers(dest="command", metavar="command")
48
+ commands.add_parser("serve", help="serve MCP over stdio (the default)").set_defaults(run=_serve)
49
+ commands.add_parser("setup", help="connect Google Ads, Meta Ads and GA4 (--demo for invented data)", add_help=False)
50
+ commands.add_parser("doctor", help="check credentials and access, and print the fix", add_help=False)
51
+ commands.add_parser("sweep", help="run the deterministic sweep or print a local schedule", add_help=False)
52
+ commands.add_parser("hook", help="memory hook entry point used by the plugins", add_help=False)
53
+ root.set_defaults(run=_serve)
54
+ return root
55
+
56
+
57
+ def main(argv=None):
58
+ argv = sys.argv[1:] if argv is None else list(argv)
59
+ if argv and argv[0] in PASSTHROUGH:
60
+ return PASSTHROUGH[argv[0]](argv[1:])
61
+ args = parser().parse_args(argv)
62
+ return args.run(args)
63
+
64
+
65
+ if __name__ == "__main__":
66
+ raise SystemExit(main())
excutia/credentials.py ADDED
@@ -0,0 +1,73 @@
1
+ """Workspace credentials in the OS keychain.
2
+
3
+ The server takes each credential from the first place that has it: the process
4
+ environment (a host config or a Claude Code plugin option), the workspace's
5
+ env_file, then the keychain entry `excutia setup` saved. Values never appear
6
+ in workspace.toml, URLs or logs.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import re
12
+
13
+ SERVICE = "excutia"
14
+ # A host that did not substitute an empty plugin option passes its template.
15
+ _PLACEHOLDER = re.compile(r"^\$\{[^}]*\}$")
16
+
17
+
18
+ class KeychainUnavailable(RuntimeError):
19
+ """No usable OS keychain backend on this machine."""
20
+
21
+
22
+ def unset(value: str | None) -> bool:
23
+ """True for a missing, blank or unsubstituted host value."""
24
+ return value is None or not value.strip() or bool(_PLACEHOLDER.match(value.strip()))
25
+
26
+
27
+ def _entry(workspace: str, field: str) -> str:
28
+ return f"{workspace}/{field}"
29
+
30
+
31
+ def _keyring():
32
+ try:
33
+ import keyring
34
+ from keyring.backends.fail import Keyring as FailKeyring
35
+ except ImportError as exc: # pragma: no cover - keyring is a dependency
36
+ raise KeychainUnavailable("the keyring package is not installed") from exc
37
+ backend = keyring.get_keyring()
38
+ if isinstance(backend, FailKeyring) or type(backend).__name__ == "ChainerBackend" and not backend.backends:
39
+ raise KeychainUnavailable("no OS keychain backend is available")
40
+ return keyring
41
+
42
+
43
+ def save(workspace: str, values: dict[str, str]) -> None:
44
+ keyring = _keyring()
45
+ for field, value in values.items():
46
+ keyring.set_password(SERVICE, _entry(workspace, field), value)
47
+
48
+
49
+ def read(workspace: str, fields) -> dict[str, str]:
50
+ """The keychain values present for these fields; absent fields are omitted."""
51
+ try:
52
+ keyring = _keyring()
53
+ except KeychainUnavailable:
54
+ return {}
55
+ found = {}
56
+ for field in fields:
57
+ try:
58
+ value = keyring.get_password(SERVICE, _entry(workspace, field))
59
+ except Exception: # a locked or refusing keychain reads as absent
60
+ value = None
61
+ if not unset(value):
62
+ found[field] = value
63
+ return found
64
+
65
+
66
+ def delete(workspace: str, fields) -> None:
67
+ keyring = _keyring()
68
+ from keyring.errors import PasswordDeleteError
69
+ for field in fields:
70
+ try:
71
+ keyring.delete_password(SERVICE, _entry(workspace, field))
72
+ except PasswordDeleteError:
73
+ pass
@@ -0,0 +1,78 @@
1
+ """The credential-free demo workspace, served from synthetic replay recordings.
2
+
3
+ Every figure in it is invented. The clock is pinned to the day the recordings
4
+ were made, so their date windows stay answerable; nothing reaches an ad
5
+ platform, and change plans refuse to apply in replay mode.
6
+ """
7
+
8
+ from importlib.resources import as_file, files
9
+ from pathlib import Path
10
+ import shutil
11
+
12
+ from excutia import __version__
13
+
14
+ NAME = "demo"
15
+ RECORDED_AT = "2026-10-12T01:00:00+00:00"
16
+ # A native Google experiment present in the recordings, for import_live_test.
17
+ NATIVE_TEST_ID = "10000000042"
18
+
19
+ WORKSPACE_TOML = f'''# Excutia demo workspace. All accounts, figures and tests are invented.
20
+ name = "Demo workspace (synthetic data)"
21
+
22
+ [google_ads]
23
+ customer_id = "1234567890"
24
+ login_customer_id = "9876543210"
25
+ currency = "AUD"
26
+ timezone = "Australia/Brisbane"
27
+
28
+ [meta]
29
+ ad_account_id = "act_123456789"
30
+ currency = "USD"
31
+ timezone = "America/Los_Angeles"
32
+ api_version = "v26.0"
33
+
34
+ [meta.conversion]
35
+ action_type = "offsite_conversion.fb_pixel_purchase"
36
+ label = "Invented purchases"
37
+ click_window_days = 7
38
+ view_window_days = 1
39
+ kind = "purchase"
40
+
41
+ [ga4]
42
+ property_id = "123456789"
43
+ timezone = "Australia/Brisbane"
44
+
45
+ [targets.google_ads]
46
+ cpa = "40"
47
+ roas = "2.5"
48
+ currency = "AUD"
49
+
50
+ [targets.meta]
51
+ cpa = "30"
52
+ currency = "USD"
53
+
54
+ [replay]
55
+ dir = "replay"
56
+ now = "{RECORDED_AT}"
57
+ '''
58
+
59
+
60
+ def provision(home: Path) -> Path:
61
+ """Create (or repair) the demo workspace under home; never touches others."""
62
+ path = Path(home).expanduser() / NAME
63
+ path.mkdir(parents=True, exist_ok=True)
64
+ config = path / "workspace.toml"
65
+ if not config.is_file():
66
+ config.write_text(WORKSPACE_TOML)
67
+ target = path / "replay"
68
+ marker = target / ".version"
69
+ if marker.is_file() and marker.read_text() == __version__:
70
+ return path
71
+ # Copy the packaged recordings, so the workspace outlives a uvx cache
72
+ # refresh; the package owns this directory and replaces it on upgrade.
73
+ if target.exists():
74
+ shutil.rmtree(target)
75
+ with as_file(files(__package__) / "replay") as source:
76
+ shutil.copytree(source, target)
77
+ marker.write_text(__version__)
78
+ return path
@@ -0,0 +1 @@
1
+ {"request":{"body":{"_adopsMaxPages":10,"_adopsMaxRows":10000,"dateRanges":[{"endDate":"2026-10-07","startDate":"2026-10-01"}],"dimensions":[{"name":"sessionGoogleAdsCustomerId"},{"name":"date"}],"keepEmptyRows":false,"limit":"1000","metrics":[{"name":"sessions"},{"name":"keyEvents"}],"orderBys":[{"desc":true,"metric":{"metricName":"sessions"}}],"returnPropertyQuota":true},"operation":"runReport","property_id":"123456789"},"response":{"dimensionHeaders":[{"name":"sessionGoogleAdsCustomerId"},{"name":"date"}],"metadata":{"currencyCode":"AUD","timeZone":"Australia/Brisbane"},"metricHeaders":[{"name":"sessions"},{"name":"keyEvents"}],"rowCount":7,"rows":[{"dimensionValues":[{"value":"1234567890"},{"value":"20261001"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261002"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261003"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261004"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261005"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261006"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261007"}],"metricValues":[{"value":"20"},{"value":"1"}]}]}}
@@ -0,0 +1 @@
1
+ {"request":{"body":{"_adopsMaxPages":10,"_adopsMaxRows":10000,"dateRanges":[{"endDate":"2026-10-07","startDate":"2026-10-01"}],"dimensions":[{"name":"sessionGoogleAdsCustomerId"},{"name":"date"}],"keepEmptyRows":false,"limit":"1000","metrics":[{"name":"sessions"}],"orderBys":[{"desc":true,"metric":{"metricName":"sessions"}}],"returnPropertyQuota":true},"operation":"runReport","property_id":"123456789"},"response":{"dimensionHeaders":[{"name":"sessionGoogleAdsCustomerId"},{"name":"date"}],"metadata":{"currencyCode":"AUD","timeZone":"Australia/Brisbane"},"metricHeaders":[{"name":"sessions"}],"rowCount":7,"rows":[{"dimensionValues":[{"value":"1234567890"},{"value":"20261001"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261002"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261003"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261004"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261005"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261006"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261007"}],"metricValues":[{"value":"20"}]}]}}
@@ -0,0 +1 @@
1
+ {"request":{"body":{"_adopsMaxPages":10,"_adopsMaxRows":10000,"dateRanges":[{"endDate":"2026-10-07","startDate":"2026-10-01"}],"dimensions":[{"name":"sessionGoogleAdsCustomerId"},{"name":"date"}],"keepEmptyRows":false,"limit":"1000","metricAggregations":["TOTAL"],"metrics":[{"name":"sessions"}],"orderBys":[{"desc":true,"metric":{"metricName":"sessions"}}],"returnPropertyQuota":true},"operation":"runReport","property_id":"123456789"},"response":{"dimensionHeaders":[{"name":"sessionGoogleAdsCustomerId"},{"name":"date"}],"metadata":{"currencyCode":"AUD","timeZone":"Australia/Brisbane"},"metricHeaders":[{"name":"sessions"}],"rowCount":7,"rows":[{"dimensionValues":[{"value":"1234567890"},{"value":"20261001"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261002"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261003"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261004"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261005"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261006"}],"metricValues":[{"value":"20"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261007"}],"metricValues":[{"value":"20"}]}],"totals":[{"dimensionValues":[{"value":"RESERVED_TOTAL"},{"value":"RESERVED_TOTAL"}],"metricValues":[{"value":"150"}]}]}}
@@ -0,0 +1 @@
1
+ {"request":{"body":{"_adopsMaxPages":10,"_adopsMaxRows":10000,"dateRanges":[{"endDate":"2026-10-07","startDate":"2026-10-01"}],"dimensions":[{"name":"sessionGoogleAdsCustomerId"},{"name":"date"}],"keepEmptyRows":false,"limit":"1000","metricAggregations":["TOTAL"],"metrics":[{"name":"sessions"},{"name":"keyEvents"}],"orderBys":[{"desc":true,"metric":{"metricName":"sessions"}}],"returnPropertyQuota":true},"operation":"runReport","property_id":"123456789"},"response":{"dimensionHeaders":[{"name":"sessionGoogleAdsCustomerId"},{"name":"date"}],"metadata":{"currencyCode":"AUD","timeZone":"Australia/Brisbane"},"metricHeaders":[{"name":"sessions"},{"name":"keyEvents"}],"rowCount":7,"rows":[{"dimensionValues":[{"value":"1234567890"},{"value":"20261001"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261002"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261003"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261004"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261005"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261006"}],"metricValues":[{"value":"20"},{"value":"1"}]},{"dimensionValues":[{"value":"1234567890"},{"value":"20261007"}],"metricValues":[{"value":"20"},{"value":"1"}]}],"totals":[{"dimensionValues":[{"value":"RESERVED_TOTAL"},{"value":"RESERVED_TOTAL"}],"metricValues":[{"value":"150"},{"value":"7"}]}]}}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-09-28' AND '2026-10-04' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"63.58","all_conversions_value":"3941.96","clicks":"1156","conversions":"63.58","conversions_value":"3941.96","cost_micros":"2138600000","impressions":"21060"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"33.56","all_conversions_value":"2080.72","clicks":"746","conversions":"33.56","conversions_value":"2080.72","cost_micros":"1380100000","impressions":"12492"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"33.83","all_conversions_value":"2097.46","clicks":"615","conversions":"33.83","conversions_value":"2097.46","cost_micros":"1137750000","impressions":"12348"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-09-28' AND '2026-10-04'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"140.03","all_conversions_value":"8681.86","clicks":"2546","conversions":"140.03","conversions_value":"8681.86","cost_micros":"4710100000","impressions":"46332"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT experiment.experiment_id, metrics.clicks, metrics.impressions, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.control_clicks, metrics.control_impressions, metrics.control_cost_micros, metrics.control_conversions, metrics.control_conversion_value, metrics.conversion_value_per_cost_p_value, metrics.conversion_value_per_cost_change_point_estimate, metrics.conversion_value_per_cost_margin_of_error FROM experiment WHERE experiment.experiment_id = 10000000042 AND segments.date BETWEEN '2026-10-01' AND '2026-10-03' LIMIT 2"},"response":[{"experiment":{"experiment_id":"10000000042"},"metrics":{"clicks":3000,"control_clicks":3000,"control_conversion_value":3000,"control_conversions":300,"control_cost_micros":30000000,"control_impressions":30000,"conversions":600,"conversions_value":6000,"cost_micros":30000000,"impressions":30000}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, ad_group.id, ad_group.name, ad_group_criterion.criterion_id, ad_group_criterion.status, ad_group_criterion.negative, ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type, ad_group_criterion.primary_status, ad_group_criterion.primary_status_reasons, ad_group_criterion.quality_info.quality_score, ad_group_criterion.quality_info.creative_quality_score, ad_group_criterion.quality_info.post_click_quality_score, ad_group_criterion.quality_info.search_predicted_ctr, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM keyword_view WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'SEARCH' AND ad_group_criterion.status != 'REMOVED' AND ad_group_criterion.negative = FALSE ORDER BY metrics.cost_micros DESC"},"response":[{"ad_group":{"id":"301"},"ad_group_criterion":{"keyword":{"match_type":"EXACT","text":"typing lessons"}},"campaign":{"id":"101","name":"Invented Search"},"metrics":{"clicks":"560","conversions":"0","cost_micros":"900000000","impressions":"28000"}},{"ad_group":{"id":"301"},"ad_group_criterion":{"keyword":{"match_type":"EXACT","text":"keyboard course"}},"campaign":{"id":"101","name":"Invented Search"},"metrics":{"clicks":"560","conversions":"0","cost_micros":"600000000","impressions":"28000"}},{"ad_group":{"id":"301"},"ad_group_criterion":{"keyword":{"match_type":"EXACT","text":"practice typing"}},"campaign":{"id":"101","name":"Invented Search"},"metrics":{"clicks":"560","conversions":"0","cost_micros":"300000000","impressions":"28000"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-08-13' AND '2026-09-11' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"271.92","all_conversions_value":"16859.04","clicks":"4944","conversions":"271.92","conversions_value":"16859.04","cost_micros":"9146400000","impressions":"90120"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"145.07","all_conversions_value":"8994.34","clicks":"3224","conversions":"145.07","conversions_value":"8994.34","cost_micros":"5964400000","impressions":"53964"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"147.51","all_conversions_value":"9145.62","clicks":"2682","conversions":"147.51","conversions_value":"9145.62","cost_micros":"4961700000","impressions":"53856"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.advertising_channel_type, metrics.cost_micros, metrics.clicks, metrics.impressions, metrics.conversions, metrics.conversions_value, metrics.all_conversions FROM campaign WHERE segments.date BETWEEN '2026-10-01' AND '2026-10-07' AND metrics.impressions > 0"},"response":[{"campaign":{"advertising_channel_type":"SEARCH"},"metrics":{"all_conversions":"7","clicks":"140","conversions":"7","conversions_value":"210","cost_micros":"70000000","impressions":"1400"}},{"campaign":{"advertising_channel_type":"PERFORMANCE_MAX"},"metrics":{"all_conversions":"3","clicks":"70","conversions":"3","conversions_value":"105","cost_micros":"35000000","impressions":"700"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-09-12' AND '2026-10-11' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"271.26","all_conversions_value":"16818.12","clicks":"4932","conversions":"271.26","conversions_value":"16818.12","cost_micros":"9124200000","impressions":"89940"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"144.80","all_conversions_value":"8977.60","clicks":"3218","conversions":"144.80","conversions_value":"8977.60","cost_micros":"5953300000","impressions":"53856"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"148.27","all_conversions_value":"9192.74","clicks":"2696","conversions":"148.27","conversions_value":"9192.74","cost_micros":"4987600000","impressions":"54144"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, customer.descriptive_name, customer.currency_code, customer.time_zone, campaign.id, campaign.name, campaign.status, campaign.advertising_channel_type, campaign.bidding_strategy_type, campaign.start_date_time, campaign.end_date_time, campaign_budget.amount_micros, campaign_budget.delivery_method, campaign.network_settings.target_google_search, campaign.network_settings.target_search_network, campaign.network_settings.target_content_network, campaign.network_settings.target_partner_search_network FROM campaign WHERE campaign.status != 'REMOVED' ORDER BY campaign.id"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","time_zone":"Australia/Brisbane"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT metrics.cost_micros, metrics.clicks, metrics.impressions, metrics.conversions, metrics.conversions_value, metrics.all_conversions FROM customer WHERE segments.date BETWEEN '2026-10-01' AND '2026-10-07'"},"response":[{"metrics":{"all_conversions":"10","clicks":"210","conversions":"10","conversions_value":"315","cost_micros":"105000000","impressions":"2100"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-09-14' AND '2026-09-27' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"125.95","all_conversions_value":"7808.90","clicks":"2290","conversions":"125.95","conversions_value":"7808.90","cost_micros":"4236500000","impressions":"41760"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"67.68","all_conversions_value":"4196.16","clicks":"1504","conversions":"67.68","conversions_value":"4196.16","cost_micros":"2782400000","impressions":"25164"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"69.18","all_conversions_value":"4289.16","clicks":"1258","conversions":"69.18","conversions_value":"4289.16","cost_micros":"2327300000","impressions":"25272"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT experiment.experiment_id, metrics.clicks, metrics.impressions, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.control_clicks, metrics.control_impressions, metrics.control_cost_micros, metrics.control_conversions, metrics.control_conversion_value, metrics.clicks_p_value, metrics.clicks_point_estimate, metrics.clicks_margin_of_error FROM experiment WHERE experiment.experiment_id = 10000000042 AND segments.date BETWEEN '2026-10-01' AND '2026-10-03' LIMIT 2"},"response":[{"experiment":{"experiment_id":"10000000042"},"metrics":{"clicks":3000,"control_clicks":3000,"control_conversion_value":3000,"control_conversions":300,"control_cost_micros":30000000,"control_impressions":30000,"conversions":600,"conversions_value":6000,"cost_micros":30000000,"impressions":30000}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, ad_group.id, ad_group.name, ad_group.status, ad_group.primary_status, ad_group.primary_status_reasons FROM ad_group WHERE campaign.status = 'ENABLED' AND ad_group.status = 'ENABLED' ORDER BY ad_group.id LIMIT 5001"},"response":[{"ad_group":{"id":"301","primary_status":"ELIGIBLE","status":"ENABLED"},"campaign":{"id":"101"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-10-05' AND '2026-10-11'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"140.74","all_conversions_value":"8725.88","clicks":"2559","conversions":"140.74","conversions_value":"8725.88","cost_micros":"4734150000","impressions":"46596"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.status, campaign.advertising_channel_type, segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.all_conversions FROM campaign WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'SEARCH' ORDER BY segments.date DESC, metrics.cost_micros DESC"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"1680","conversions":"80","cost_micros":"1800000000","impressions":"84000"},"segments":{"date":"2026-10-11"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT conversion_action.id, conversion_action.name, conversion_action.status, conversion_action.type, conversion_action.category, conversion_action.primary_for_goal, conversion_action.counting_type, conversion_action.include_in_conversions_metric, conversion_action.value_settings.default_value, conversion_action.value_settings.always_use_default_value, conversion_action.origin, conversion_action.click_through_lookback_window_days, conversion_action.view_through_lookback_window_days, conversion_action.attribution_model_settings.attribution_model, conversion_action.attribution_model_settings.data_driven_model_status FROM conversion_action WHERE conversion_action.status != 'REMOVED' ORDER BY conversion_action.id LIMIT 501"},"response":[{"conversion_action.category":"SIGNUP","conversion_action.counting_type":"ONE_PER_CLICK","conversion_action.id":"7001","conversion_action.name":"Invented signup","conversion_action.origin":"WEBSITE","conversion_action.primary_for_goal":true,"conversion_action.status":"ENABLED","conversion_action.type":"WEBPAGE"}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign_criterion.criterion_id, campaign_criterion.status, campaign_criterion.negative, campaign_criterion.location.geo_target_constant, segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.all_conversions, metrics.view_through_conversions FROM location_view WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'PERFORMANCE_MAX' ORDER BY metrics.cost_micros DESC, campaign.id, campaign_criterion.criterion_id"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, ad_group.id, ad_group_criterion.criterion_id, ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type, ad_group_criterion.status, ad_group_criterion.primary_status, ad_group_criterion.primary_status_reasons, ad_group_criterion.approval_status, ad_group_criterion.disapproval_reasons, ad_group_criterion.system_serving_status FROM ad_group_criterion WHERE campaign.status = 'ENABLED' AND ad_group.status = 'ENABLED' AND ad_group_criterion.status = 'ENABLED' AND ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.negative = FALSE ORDER BY ad_group_criterion.criterion_id LIMIT 10001"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign_conversion_goal.category, campaign_conversion_goal.origin, campaign_conversion_goal.biddable FROM campaign_conversion_goal WHERE campaign.status = 'ENABLED' LIMIT 5001"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, asset_group.id, asset.id, asset.type, asset_group_asset.field_type, asset_group_asset.status, asset_group_asset.primary_status, asset_group_asset.primary_status_reasons, asset_group_asset.policy_summary.approval_status, asset_group_asset.policy_summary.review_status, asset_group_asset.policy_summary.policy_topic_entries FROM asset_group_asset WHERE campaign.status = 'ENABLED' AND asset_group.status = 'ENABLED' AND asset_group_asset.status = 'ENABLED' ORDER BY asset.id LIMIT 10001"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-10-01' AND '2026-10-11'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"219.33","all_conversions_value":"13598.46","clicks":"3988","conversions":"219.33","conversions_value":"13598.46","cost_micros":"7377800000","impressions":"72600"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id FROM customer LIMIT 1"},"response":[{"customer":{"id":"1234567890"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer_conversion_goal.category, customer_conversion_goal.origin, customer_conversion_goal.biddable FROM customer_conversion_goal"},"response":[{"customer_conversion_goal.biddable":true,"customer_conversion_goal.category":"SIGNUP","customer_conversion_goal.origin":"WEBSITE"}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, segments.ad_network_type, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM campaign WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'SEARCH' AND segments.ad_network_type IN ('SEARCH', 'SEARCH_PARTNERS') ORDER BY campaign.id, segments.ad_network_type"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"1680","conversions":"80","cost_micros":"1800000000","impressions":"84000"},"segments":{"date":"2026-10-11"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, segments.device, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM campaign WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'SEARCH' ORDER BY metrics.cost_micros DESC"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"1680","conversions":"80","cost_micros":"1800000000","impressions":"84000"},"segments":{"date":"2026-10-11"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, ad_group.id, ad_group.name, search_term_view.search_term, search_term_view.status, segments.keyword.ad_group_criterion, segments.keyword.info.text, segments.keyword.info.match_type, segments.search_term_match_type, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM search_term_view WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'SEARCH' ORDER BY metrics.cost_micros DESC LIMIT 201"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions FROM campaign WHERE campaign.id IN (111,222) AND segments.date BETWEEN '2026-10-01' AND '2026-10-03' LIMIT 1000"},"response":[{"campaign":{"id":"111"},"metrics":{"clicks":3000,"conversions":300,"conversions_value":3000,"cost_micros":30000000,"impressions":30000}},{"campaign":{"id":"222"},"metrics":{"clicks":3000,"conversions":600,"conversions_value":6000,"cost_micros":30000000,"impressions":30000}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-10-10' AND '2026-10-10' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"9.96","all_conversions_value":"617.52","clicks":"181","conversions":"9.96","conversions_value":"617.52","cost_micros":"334850000","impressions":"3300"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"4.37","all_conversions_value":"270.94","clicks":"97","conversions":"4.37","conversions_value":"270.94","cost_micros":"179450000","impressions":"1620"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"4.51","all_conversions_value":"279.62","clicks":"82","conversions":"4.51","conversions_value":"279.62","cost_micros":"151700000","impressions":"1656"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-09-14' AND '2026-09-27'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"277.51","all_conversions_value":"17205.62","clicks":"5046","conversions":"277.51","conversions_value":"17205.62","cost_micros":"9335100000","impressions":"91872"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-09-20' AND '2026-09-30'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"219.33","all_conversions_value":"13598.46","clicks":"3988","conversions":"219.33","conversions_value":"13598.46","cost_micros":"7377800000","impressions":"72600"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-09-01' AND '2026-09-30' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"271.26","all_conversions_value":"16818.12","clicks":"4932","conversions":"271.26","conversions_value":"16818.12","cost_micros":"9124200000","impressions":"89940"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"144.80","all_conversions_value":"8977.60","clicks":"3218","conversions":"144.80","conversions_value":"8977.60","cost_micros":"5953300000","impressions":"53856"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"148.27","all_conversions_value":"9192.74","clicks":"2696","conversions":"148.27","conversions_value":"9192.74","cost_micros":"4987600000","impressions":"54144"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT change_event.resource_name, change_event.change_date_time, change_event.change_resource_name, change_event.change_resource_type, change_event.client_type, change_event.user_email, change_event.campaign, change_event.resource_change_operation, change_event.changed_fields, change_event.old_resource, change_event.new_resource FROM change_event WHERE change_event.change_date_time >= '2026-09-14 00:00:00' AND change_event.change_date_time <= '2026-10-11 23:59:59' ORDER BY change_event.change_date_time DESC LIMIT 10000"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-09-28' AND '2026-10-11' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"127.44","all_conversions_value":"7901.28","clicks":"2317","conversions":"127.44","conversions_value":"7901.28","cost_micros":"4286450000","impressions":"42240"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"67.36","all_conversions_value":"4176.32","clicks":"1497","conversions":"67.36","conversions_value":"4176.32","cost_micros":"2769450000","impressions":"25056"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"68.91","all_conversions_value":"4272.42","clicks":"1253","conversions":"68.91","conversions_value":"4272.42","cost_micros":"2318050000","impressions":"25164"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, customer.currency_code, customer.time_zone, customer.auto_tagging_enabled, customer.conversion_tracking_setting.conversion_tracking_status, customer.conversion_tracking_setting.enhanced_conversions_for_leads_enabled, customer.conversion_tracking_setting.accepted_customer_data_terms FROM customer LIMIT 1"},"response":[{"customer.auto_tagging_enabled":true,"customer.conversion_tracking_setting.conversion_tracking_status":"CONVERSION_TRACKING_MANAGED_BY_THIS_CUSTOMER","customer.currency_code":"AUD","customer.id":"1234567890","customer.time_zone":"Australia/Brisbane"}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-10-01' AND '2026-10-11' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"99.55","all_conversions_value":"6172.10","clicks":"1810","conversions":"99.55","conversions_value":"6172.10","cost_micros":"3348500000","impressions":"33000"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"53.23","all_conversions_value":"3300.26","clicks":"1183","conversions":"53.23","conversions_value":"3300.26","cost_micros":"2188550000","impressions":"19800"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"54.23","all_conversions_value":"3362.26","clicks":"986","conversions":"54.23","conversions_value":"3362.26","cost_micros":"1824100000","impressions":"19800"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, segments.date, metrics.clicks, metrics.impressions, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM campaign WHERE campaign.id IN (111,222) AND segments.date BETWEEN '2026-10-01' AND '2026-10-03' ORDER BY segments.date, campaign.id LIMIT 181"},"response":[{"campaign":{"id":"111"},"metrics":{"clicks":"1000","conversions":"100","conversions_value":"1000","cost_micros":"10000000","impressions":"10000"},"segments":{"date":"2026-10-01"}},{"campaign":{"id":"222"},"metrics":{"clicks":"1000","conversions":"200","conversions_value":"2000","cost_micros":"10000000","impressions":"10000"},"segments":{"date":"2026-10-01"}},{"campaign":{"id":"111"},"metrics":{"clicks":"1000","conversions":"100","conversions_value":"1000","cost_micros":"10000000","impressions":"10000"},"segments":{"date":"2026-10-02"}},{"campaign":{"id":"222"},"metrics":{"clicks":"1000","conversions":"200","conversions_value":"2000","cost_micros":"10000000","impressions":"10000"},"segments":{"date":"2026-10-02"}},{"campaign":{"id":"111"},"metrics":{"clicks":"1000","conversions":"100","conversions_value":"1000","cost_micros":"10000000","impressions":"10000"},"segments":{"date":"2026-10-03"}},{"campaign":{"id":"222"},"metrics":{"clicks":"1000","conversions":"200","conversions_value":"2000","cost_micros":"10000000","impressions":"10000"},"segments":{"date":"2026-10-03"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-10-11' AND '2026-10-11' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"9.24","all_conversions_value":"572.88","clicks":"168","conversions":"9.24","conversions_value":"572.88","cost_micros":"310800000","impressions":"3060"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"5.04","all_conversions_value":"312.48","clicks":"112","conversions":"5.04","conversions_value":"312.48","cost_micros":"207200000","impressions":"1872"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"5.22","all_conversions_value":"323.64","clicks":"95","conversions":"5.22","conversions_value":"323.64","cost_micros":"175750000","impressions":"1908"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT experiment.experiment_id, metrics.clicks, metrics.impressions, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.control_clicks, metrics.control_impressions, metrics.control_cost_micros, metrics.control_conversions, metrics.control_conversion_value, metrics.cost_per_conversion_p_value, metrics.cost_per_conversion_change_point_estimate, metrics.cost_per_conversion_margin_of_error FROM experiment WHERE experiment.experiment_id = 10000000042 AND segments.date BETWEEN '2026-10-01' AND '2026-10-03' LIMIT 2"},"response":[{"experiment":{"experiment_id":"10000000042"},"metrics":{"clicks":3000,"control_clicks":3000,"control_conversion_value":3000,"control_conversions":300,"control_cost_micros":30000000,"control_impressions":30000,"conversions":600,"conversions_value":6000,"cost_micros":30000000,"impressions":30000}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, segments.ad_network_type, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM campaign WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'SEARCH' ORDER BY metrics.cost_micros DESC"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"1680","conversions":"80","cost_micros":"1800000000","impressions":"84000"},"segments":{"date":"2026-10-11"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, asset_group.id, asset_group.name, asset.id, asset.name, asset.type, asset_group_asset.field_type, asset_group_asset.status, asset_group_asset.primary_status, asset_group_asset.primary_status_reasons, asset_group_asset.source, asset_group_asset.policy_summary.approval_status, asset_group_asset.policy_summary.review_status, segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.all_conversions, metrics.view_through_conversions FROM asset_group_asset WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'PERFORMANCE_MAX' AND asset_group.status != 'REMOVED' AND asset_group_asset.status != 'REMOVED' ORDER BY metrics.cost_micros DESC, campaign.id, asset_group.id, asset.id"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, segments.ad_network_type, segments.ad_using_product_data, segments.ad_using_video, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM campaign WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'PERFORMANCE_MAX' ORDER BY metrics.cost_micros DESC, campaign.id, segments.ad_network_type"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-10-11' AND '2026-10-11'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"20.35","all_conversions_value":"1261.70","clicks":"370","conversions":"20.35","conversions_value":"1261.70","cost_micros":"684500000","impressions":"6732"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions FROM campaign WHERE campaign.id IN (111,222) AND segments.date BETWEEN '2026-10-09' AND '2026-10-11' ORDER BY segments.date, campaign.id LIMIT 1000"},"response":[{"campaign":{"id":"111"},"metrics":{"clicks":100,"conversions":10,"cost_micros":1000000,"impressions":1000},"segments":{"date":"2026-10-09"}},{"campaign":{"id":"222"},"metrics":{"clicks":100,"conversions":10,"cost_micros":1000000,"impressions":1000},"segments":{"date":"2026-10-09"}},{"campaign":{"id":"111"},"metrics":{"clicks":100,"conversions":10,"cost_micros":1000000,"impressions":1000},"segments":{"date":"2026-10-10"}},{"campaign":{"id":"222"},"metrics":{"clicks":100,"conversions":10,"cost_micros":1000000,"impressions":1000},"segments":{"date":"2026-10-10"}},{"campaign":{"id":"111"},"metrics":{"clicks":100,"conversions":10,"cost_micros":1000000,"impressions":1000},"segments":{"date":"2026-10-11"}},{"campaign":{"id":"222"},"metrics":{"clicks":100,"conversions":10,"cost_micros":1000000,"impressions":1000},"segments":{"date":"2026-10-11"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"253.39","all_conversions_value":"15710.18","clicks":"4607","conversions":"253.39","conversions_value":"15710.18","cost_micros":"8522950000","impressions":"84000"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"135.04","all_conversions_value":"8372.48","clicks":"3001","conversions":"135.04","conversions_value":"8372.48","cost_micros":"5551850000","impressions":"50220"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"138.09","all_conversions_value":"8561.58","clicks":"2511","conversions":"138.09","conversions_value":"8561.58","cost_micros":"4645350000","impressions":"50436"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, asset_group.id, asset_group.name, asset_group.status, asset_group_signal.resource_name, asset_group_signal.approval_status, asset_group_signal.disapproval_reasons, asset_group_signal.audience.audience, asset_group_signal.search_theme.text FROM asset_group_signal WHERE campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'PERFORMANCE_MAX' AND asset_group.status != 'REMOVED' ORDER BY campaign.id, asset_group.id"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.resource_name, campaign.name, campaign.status, campaign.advertising_channel_type, campaign.experiment_type, campaign.bidding_strategy_type, campaign.campaign_budget, campaign.maximize_conversions.target_cpa_micros, campaign.target_cpa.target_cpa_micros, campaign.maximize_conversion_value.target_roas, campaign.target_roas.target_roas, campaign_budget.amount_micros, campaign_budget.reference_count FROM campaign WHERE campaign.id IN (111,222) LIMIT 3"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","bidding_strategy_type":"MAXIMIZE_CONVERSIONS","campaign_budget":"customers/1234567890/campaignBudgets/333","id":"111","name":"Invented 111","status":"ENABLED"},"campaign_budget":{"amount_micros":20000000,"reference_count":2}},{"campaign":{"advertising_channel_type":"SEARCH","bidding_strategy_type":"MAXIMIZE_CONVERSIONS","campaign_budget":"customers/1234567890/campaignBudgets/333","id":"222","name":"Invented 222","status":"ENABLED"},"campaign_budget":{"amount_micros":20000000,"reference_count":2}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, asset_group.id, asset_group.name, asset_group.status, asset_group.primary_status, asset_group.primary_status_reasons, asset_group.ad_strength, segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.all_conversions, metrics.view_through_conversions FROM asset_group WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'PERFORMANCE_MAX' AND asset_group.status != 'REMOVED' ORDER BY metrics.cost_micros DESC, campaign.id, asset_group.id, segments.date DESC"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, customer.currency_code, customer.time_zone FROM customer LIMIT 1"},"response":[{"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-09-28' AND '2026-10-11'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"280.77","all_conversions_value":"17407.74","clicks":"5105","conversions":"280.77","conversions_value":"17407.74","cost_micros":"9444250000","impressions":"92928"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-09-01' AND '2026-09-30'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"597.72","all_conversions_value":"37058.64","clicks":"10868","conversions":"597.72","conversions_value":"37058.64","cost_micros":"20105800000","impressions":"197868"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.status, campaign.advertising_channel_type, segments.date, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value, metrics.all_conversions FROM campaign WHERE segments.date BETWEEN '2026-10-01' AND '2026-10-07' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'SEARCH' ORDER BY segments.date DESC, metrics.cost_micros DESC"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"20","conversions":"1","conversions_value":"30","cost_micros":"10000000","impressions":"200"},"segments":{"date":"2026-10-01"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"20","conversions":"1","conversions_value":"30","cost_micros":"10000000","impressions":"200"},"segments":{"date":"2026-10-02"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"20","conversions":"1","conversions_value":"30","cost_micros":"10000000","impressions":"200"},"segments":{"date":"2026-10-03"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"20","conversions":"1","conversions_value":"30","cost_micros":"10000000","impressions":"200"},"segments":{"date":"2026-10-04"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"20","conversions":"1","conversions_value":"30","cost_micros":"10000000","impressions":"200"},"segments":{"date":"2026-10-05"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"20","conversions":"1","conversions_value":"30","cost_micros":"10000000","impressions":"200"},"segments":{"date":"2026-10-06"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"metrics":{"clicks":"20","conversions":"1","conversions_value":"30","cost_micros":"10000000","impressions":"200"},"segments":{"date":"2026-10-07"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT change_event.resource_name, change_event.change_date_time, change_event.change_resource_name, change_event.change_resource_type, change_event.client_type, change_event.user_email, change_event.campaign, change_event.resource_change_operation, change_event.changed_fields, change_event.old_resource, change_event.new_resource FROM change_event WHERE change_event.change_date_time >= '2026-10-01 00:00:00' AND change_event.change_date_time <= '2026-10-04 00:00:00' ORDER BY change_event.change_date_time DESC LIMIT 5000"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.status, campaign.advertising_channel_type, performance_max_placement_view.display_name, performance_max_placement_view.placement, performance_max_placement_view.placement_type, performance_max_placement_view.target_url, segments.ad_network_type, metrics.impressions FROM performance_max_placement_view WHERE segments.date BETWEEN '2026-09-14' AND '2026-10-11' AND campaign.status != 'REMOVED' AND campaign.advertising_channel_type = 'PERFORMANCE_MAX' ORDER BY metrics.impressions DESC, campaign.id"},"response":[]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.advertising_channel_type, campaign.status, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM campaign WHERE segments.date BETWEEN '2026-08-02' AND '2026-08-31' ORDER BY metrics.cost_micros DESC LIMIT 5001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"271.92","all_conversions_value":"16859.04","clicks":"4944","conversions":"271.92","conversions_value":"16859.04","cost_micros":"9146400000","impressions":"90120"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"111","name":"Invented 111","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"145.07","all_conversions_value":"8994.34","clicks":"3224","conversions":"145.07","conversions_value":"8994.34","cost_micros":"5964400000","impressions":"53964"}},{"campaign":{"advertising_channel_type":"SEARCH","id":"222","name":"Invented 222","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"147.51","all_conversions_value":"9145.62","clicks":"2682","conversions":"147.51","conversions_value":"9145.62","cost_micros":"4961700000","impressions":"53856"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT campaign.id, campaign.name, campaign.status, campaign.primary_status, campaign.primary_status_reasons, campaign.advertising_channel_type FROM campaign WHERE campaign.status = 'ENABLED' ORDER BY campaign.id LIMIT 2001"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","primary_status":"LIMITED","primary_status_reasons":["BUDGET_CONSTRAINED"],"status":"ENABLED"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-08-17' AND '2026-09-13'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"558.72","all_conversions_value":"34640.64","clicks":"10159","conversions":"558.72","conversions_value":"34640.64","cost_micros":"18794150000","impressions":"184932"}}]}
@@ -0,0 +1 @@
1
+ {"request":{"query":"SELECT customer.id, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions, metrics.conversions_value, customer.currency_code, customer.time_zone FROM customer WHERE segments.date BETWEEN '2026-10-10' AND '2026-10-10'"},"response":[{"campaign":{"advertising_channel_type":"SEARCH","id":"101","name":"Invented Search","status":"ENABLED"},"customer":{"currency_code":"AUD","id":"1234567890","time_zone":"Australia/Brisbane"},"metrics":{"all_conversions":"21.95","all_conversions_value":"1360.90","clicks":"399","conversions":"21.95","conversions_value":"1360.90","cost_micros":"738150000","impressions":"7260"}}]}