@koda-sl/baker-cli 0.233.0-dev.bfa5a91e4 → 0.234.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -1
- package/dist/{chunk-CMPAHYLB.js → chunk-EKLAHWSF.js} +4 -4
- package/dist/chunk-EKLAHWSF.js.map +1 -0
- package/dist/cli.js +374 -20
- package/dist/cli.js.map +1 -1
- package/dist/engine/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-CMPAHYLB.js.map +0 -1
package/README.md
CHANGED
|
@@ -1155,7 +1155,7 @@ Each finding: `{id, area, check, status, severity, evidence, fix: {explanation,
|
|
|
1155
1155
|
|
|
1156
1156
|
GA4 commands for multi-channel audits **and** for configuring what the property measures. Playbook-aligned report presets, property health audits, free-form Data API queries, and staged Admin API writes.
|
|
1157
1157
|
|
|
1158
|
-
Reads (`properties`, `config`, `audit`, `query`) happen immediately. Writes (`key-event`, `custom-dimension`, `custom-metric`, `custom-event`, `data-retention`) are **staged** onto the chat, reviewed in the dashboard's Analytics tab, and applied when the chat completes — at which point they take effect on the property immediately. There is no simulated mode and no undo.
|
|
1158
|
+
Reads (`properties`, `config`, `audit`, `query`) happen immediately. Writes (`key-event`, `custom-dimension`, `custom-metric`, `custom-event`, `data-retention`, `audience`, `property`, `ads-link`, `enhanced-measurement`) are **staged** onto the chat, reviewed in the dashboard's Analytics tab, and applied when the chat completes — at which point they take effect on the property immediately. There is no simulated mode and no undo.
|
|
1159
1159
|
|
|
1160
1160
|
A Google Analytics connection made before writes shipped is read-only and every write command refuses with a message saying to reconnect. `baker ga4 config` reports `canWrite`.
|
|
1161
1161
|
|
|
@@ -1277,12 +1277,31 @@ baker ga4 custom-event delete 7
|
|
|
1277
1277
|
# How long data is kept (months: 2, 14, 26, 38, 50 — over 14 needs Analytics 360)
|
|
1278
1278
|
baker ga4 data-retention set --event-data 14 --user-data 14
|
|
1279
1279
|
|
|
1280
|
+
# An audience — a saved group of users, for retargeting and analysis
|
|
1281
|
+
baker ga4 audience create --json '{"displayName":"Started demo without finishing","description":"Triggered demo_started and never submitted the demo form","membershipDurationDays":90,"filterClauses":[{"clauseType":"INCLUDE","simpleFilter":{"scope":"AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS","filterExpression":{"eventFilter":{"eventName":"demo_started"}}}},{"clauseType":"EXCLUDE","simpleFilter":{"scope":"AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS","filterExpression":{"eventFilter":{"eventName":"demo_form_submitted"}}}}]}'
|
|
1282
|
+
baker ga4 audience update 8813 --json '{"displayName":"Started demo without finishing (90d)"}'
|
|
1283
|
+
baker ga4 audience archive 8813
|
|
1284
|
+
|
|
1285
|
+
# The property's own settings — the industry decides its benchmarking cohort
|
|
1286
|
+
baker ga4 property set --industry TECHNOLOGY
|
|
1287
|
+
|
|
1288
|
+
# The automatic web-stream events — no tag to add
|
|
1289
|
+
baker ga4 enhanced-measurement set --scrolls true --outbound-clicks true --file-downloads true
|
|
1290
|
+
baker ga4 enhanced-measurement set --site-search true --search-parameters "q,s,search,query,keyword"
|
|
1291
|
+
|
|
1292
|
+
# Link to Google Ads — what makes audiences targetable and key events importable
|
|
1293
|
+
baker ga4 ads-link create --customer-id 123-456-7890
|
|
1294
|
+
baker ga4 ads-link update L1234 --ads-personalization false
|
|
1295
|
+
baker ga4 ads-link delete L1234
|
|
1296
|
+
|
|
1280
1297
|
# Several definitions in one call — one read of the property instead of one per definition
|
|
1281
1298
|
baker ga4 custom-dimension create --json '[{"parameterName":"plan_tier","displayName":"Plan tier","scope":"EVENT"},{"parameterName":"lead_source","displayName":"Lead source","scope":"EVENT"}]'
|
|
1282
1299
|
```
|
|
1283
1300
|
|
|
1284
1301
|
Every `create` accepts a JSON array as well as a single object, and stages the whole list in one request (all-or-nothing). Prefer it for bulk work: each stage reads the property's full configuration first, so separate calls multiply that read.
|
|
1285
1302
|
|
|
1303
|
+
An **audience is permanent once created**: its conditions, membership window and exclusion mode are immutable, so `audience update` takes only a name and a description, and fixing a definition means archiving it and building a replacement that starts with no users. Staging also warns when the property has no Google Ads link, because an audience without one can never be retargeted. `enhanced-measurement` sets the events GA4 collects on a website stream by itself; `--site-search true` requires `--search-parameters`, and staging refuses without them rather than letting the publish fail. `ads-link` is the only GA4 command that reaches outside Analytics — it starts a flow of the client's data between their Analytics property and their Google Ads account, so staging warns and the agent is told to agree it with the user first. `property set` covers the display name and the industry category only — time zone and currency are excluded on purpose, since both re-bucket every future day without reprocessing history. Sequence-based audiences are not supported.
|
|
1304
|
+
|
|
1286
1305
|
Custom dimensions and metrics are **archived**, not deleted (the slot frees, past data stays); key events and custom events are **deleted**. Neither is reversible from Baker. Because `parameterName` and `scope` are immutable, changing one is an archive plus a create staged on the same chat — the removal applies first and frees the name. `--property-id` is required when more than one property is connected, and one chat stages changes for one property; `--data-stream` is required for a custom event when the property has more than one website stream.
|
|
1287
1306
|
|
|
1288
1307
|
---
|
|
@@ -16,9 +16,9 @@ import {
|
|
|
16
16
|
shouldEscalate
|
|
17
17
|
} from "./chunk-DZUVUGEP.js";
|
|
18
18
|
|
|
19
|
-
//
|
|
19
|
+
// ../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js
|
|
20
20
|
var require_safe_stable_stringify = __commonJS({
|
|
21
|
-
"
|
|
21
|
+
"../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js"(exports, module) {
|
|
22
22
|
"use strict";
|
|
23
23
|
var { hasOwnProperty } = Object.prototype;
|
|
24
24
|
var stringify = configure2();
|
|
@@ -1092,7 +1092,7 @@ function resolveAdaptFormats(params) {
|
|
|
1092
1092
|
return params.formats ?? [];
|
|
1093
1093
|
}
|
|
1094
1094
|
|
|
1095
|
-
//
|
|
1095
|
+
// ../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/esm/wrapper.js
|
|
1096
1096
|
var import__ = __toESM(require_safe_stable_stringify(), 1);
|
|
1097
1097
|
var configure = import__.default.configure;
|
|
1098
1098
|
var wrapper_default = import__.default;
|
|
@@ -9074,4 +9074,4 @@ export {
|
|
|
9074
9074
|
defaultRegistry,
|
|
9075
9075
|
createEngineFromEnv
|
|
9076
9076
|
};
|
|
9077
|
-
//# sourceMappingURL=chunk-
|
|
9077
|
+
//# sourceMappingURL=chunk-EKLAHWSF.js.map
|