Introduction
Agoraform is an open-source Go CLI for Marketing as Code. You declare marketing-platform configuration in YAML, review a non-mutating plan, and apply creates and updates through provider APIs.
This documentation describes Agoraform v0.6.0. It is generated from the public repository at tag v0.6.0, not from main.
What v0.6.0 includes
Section titled “What v0.6.0 includes”| Area | v0.6.0 |
|---|---|
| Commands | validate, plan, apply, import, destroy |
| Providers | Matomo, Google Ads (googleads), Meta Ads (meta) |
| Matomo resources | matomo.goal, matomo.container, Data Layer and Matomo Configuration matomo.variable, matomo.trigger, Matomo Analytics and Google Ads conversion matomo.tag |
| Google Ads conversion | googleads.conversion_action, googleads.customer_conversion_goal |
| Google Ads Search | Budgets, campaigns, campaign goals, targeting, ad groups, keywords, and Responsive Search Ads |
| Meta resources | meta.pixel, meta.custom_conversion, meta.campaign, meta.ad_set, meta.ad_creative, meta.ad |
| References | Address-only $ref plus optional named { $ref, output } selectors |
| Import | Supported Matomo, Google Ads, and Meta resources; unique bound-output reconstruction; no mutation |
| Destroy | Explicit teardown; reverse dependency order; no automatic prune of resources removed from the manifest |
| Matomo publication | Declarative through provider configuration, visible in plan, executed during apply and destroy |
| State | Local agoraform.state.json |
| Mutations | Create, update, and explicit destroy/remove |
v0.6.0 adds the Meta Ads provider with website conversion measurement and a complete paused website conversion campaign graph. v0.5.0 closed remaining Matomo bootstrap and teardown gaps, completed Google Ads destroy/remove semantics, and proved cross-provider conversion tracking. v0.4.0 added the complete paused Google Ads Search campaign graph.
Workflow
Section titled “Workflow”New resources:validate -> plan -> apply -> plan
Existing resources:import -> add/review generated config -> plan
Managed resources:destroyThe last plan after apply reports no changes when desired configuration, local state, and remote state are unchanged. import is an alternate adoption path for existing remote objects; it does not mutate them. destroy is explicit: it acts only on resources present in the manifest and bound in state. Removing a resource from the manifest does not prune it.
What v0.6.0 does not include
Section titled “What v0.6.0 does not include”- There is no drift command and no deletion reconciliation for resources removed from configuration.
applystill does not delete remote resources. - Meta support does not install browser Pixel code, send Conversions API events, upload media bytes, or manage Page or Instagram account provisioning.
- Google Ads campaign support is Search-only. Performance Max, Display, Video, Shopping, App, Dynamic Search Ads, creative generation, asset uploads, optimization, and automatic spend enablement are not implemented.
- Offline, call, app, and conversion-event upload workflows are not implemented; conversion actions remain limited to supported website (
WEBPAGE) actions. - Customer and campaign conversion goals are created by Google Ads. Destroy reports them as provider-owned, leaves them in state, and returns non-zero after supported teardown.
- Google Ads authentication uses a developer token plus a single-user OAuth refresh token. Service-account, multi-user, and interactive OAuth flows are not implemented.
- One Matomo Tag Manager container is selected at a time, either by a
matomo.containerresource or byMATOMO_CONTAINER_ID. Mixing those modes is rejected. - Agoraform does not emit application events or manage Google Tag (
gtag.js) in the Matomo container. Containers selected only byMATOMO_CONTAINER_IDare never deleted. - Matomo website/site provisioning, Google Ads billing/customer-account lifecycle, remote state, workspaces, locking, encryption, rollback, scheduled publication, and approval workflows are not implemented.
Pre-1.0 releases may introduce documented breaking changes.
Next steps
Section titled “Next steps”- Install Agoraform v0.6.0
- Follow the quick start
- Read Marketing as Code