Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions .changeset/spicy-otters-derive.md

This file was deleted.

14 changes: 0 additions & 14 deletions .changeset/wild-rivers-decide.md

This file was deleted.

27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# @stackmade/gtm-as-code

## 0.8.0

### Minor Changes

- 2d02443: Adds `ga4.measurementProtocolSecrets` as a stream-scoped create/update/delete resource (config key
is the secret's `displayName`; `secretValue` is server-generated and never in config). Creating one
requires the property's User Data Collection Acknowledgement to already be attested through the GA4
UI. `apply` surfaces GA4's `FAILED_PRECONDITION` with a remediation hint naming that requirement.

`google.ga4.measurementId` no longer has to be set by hand: `plan`/`apply`/`drift` now derive it from
`ga4.streamWebsiteUrl`'s resolved web stream when config leaves it unset.

iOS/Android GA4 data streams are confirmed **not implementable** through the Admin API (it refuses
creation outright, directing callers to the Firebase API instead) and are documented as a hard
blocker rather than left as an open roadmap item.

- 31be5a4: Adds `ga4.attributionSettings` (`reportingAttributionModel`,
`acquisitionConversionEventLookbackWindow`, `otherConversionEventLookbackWindow`) as a
property-level, settings-diffed field, following the same pattern as `dataRetention` and
`googleSignals`: `plan`/`drift` compare it against the property's live state and `apply` PATCHes
only the fields that changed.

Internal and developer traffic filters are confirmed **not implementable** through the GA4 Admin
API: no `dataFilters`-shaped collection exists under either `v1alpha` or `v1beta`. Documented as a
hard blocker in README and ROADMAP, the same way iOS/Android data streams and Search Console links
already are. This closes out 0.7's GA4 coverage milestone.

## 0.7.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackmade/gtm-as-code",
"version": "0.7.0",
"version": "0.8.0",
"description": "GTM & GA4 as code — define Google Tag Manager and Analytics 4 config in YAML, plan/apply like Terraform.",
"license": "MIT",
"type": "module",
Expand Down