Matomo
Goals plus Tag Manager Data Layer variables, Custom Event triggers, Matomo Analytics event tags, and declarative container publication.
Agoraform is an open-source Go CLI for declaring marketing-platform configuration in YAML, reviewing changes with a non-mutating plan, and reconciling those changes through provider APIs.
This site documents Agoraform v0.3.0, the current stable release. Older stable releases remain available from the version selector.
The provider-neutral workflow is:
validate -> plan -> apply -> planimport adopts supported existing remote objects without mutating them. Destructive destroy behavior is not implemented in v0.3.0.
v0.3.0 adds Google Ads conversion measurement while retaining Matomo analytics and Tag Manager support from v0.2. This example manages a website Trial Started conversion:
apiVersion: agoraform.io/v1alpha1providers: googleads: {}resources: - address: googleads.conversion_action.trial_started attributes: name: Trial Started category: SIGNUP value: 0 count: ONE primaryForGoal: true
- address: googleads.customer_conversion_goal.signup attributes: category: SIGNUP origin: WEBSITE biddable: true conversionAction: $ref: googleads.conversion_action.trial_startedCredentials stay outside the manifest. After apply, use the conversion ID and label from Google Ads when configuring website tags — Agoraform does not install those tags.
Matomo
Goals plus Tag Manager Data Layer variables, Custom Event triggers, Matomo Analytics event tags, and declarative container publication.
Google Ads
Website conversion actions and customer conversion-goal biddability. Search campaigns, budgets, ads, and conversion-event uploads are not implemented.
Meta Ads is not implemented in v0.3.0.
| Command | Purpose |
|---|---|
validate | Validate the manifest, provider configuration, dependencies, connectivity, and resource schemas |
plan | Read remote state and show resource and provider actions; never mutate |
apply | Execute reviewed resource changes and configured provider finalization |
import | Bind an existing remote identity and print configurable YAML; no remote mutation |