Skip to content

Agoraform

Marketing as Code

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.6.0, the current stable release. Older stable releases remain available from the version selector.

The provider-neutral workflow is:

New resources:
validate -> plan -> apply -> plan
Existing resources:
import -> add/review generated config -> plan
Managed resources:
destroy

import is an alternate adoption path for existing remote objects; it does not mutate them. destroy tears down managed resources that are present in the manifest and bound in state, in reverse dependency order. Removing a resource from the manifest does not destroy or prune it. State remains local.

v0.6.0 adds the Meta Ads provider with website conversion measurement and a complete paused campaign graph. This abbreviated example binds a Pixel, declares a Custom Conversion, and creates a paused ad set with website conversion optimization:

apiVersion: agoraform.io/v1alpha1
providers:
meta: {}
resources:
- address: meta.pixel.website
attributes:
name: Website
- address: meta.custom_conversion.trial_started
attributes:
name: Trial Started
eventType: START_TRIAL
pixel:
$ref: meta.pixel.website
rule:
and:
- event:
eq: StartTrial
- address: meta.campaign.website_acquisition
attributes:
name: Website Acquisition
objective: OUTCOME_SALES
status: PAUSED
specialAdCategories: []
- address: meta.ad_set.instagram_trial
attributes:
name: Instagram Trial Acquisition
status: PAUSED
campaign:
$ref: meta.campaign.website_acquisition
dailyBudget: 50
optimizationGoal: OFFSITE_CONVERSIONS
destinationType: WEBSITE
pixel:
$ref: meta.pixel.website
customConversion:
$ref: meta.custom_conversion.trial_started
targeting:
countries: [US]
publisherPlatforms: [INSTAGRAM]
instagramPositions: [FEED, STORIES, REELS]

Credentials stay outside the manifest. Agoraform does not install browser Pixel code or upload creative assets. See the complete Meta website conversion campaign example.

Matomo

Goals, Tag Manager containers, Configuration and Data Layer variables, Custom Event triggers, Matomo Analytics and Google Ads conversion tags, and declarative publication.

Google Ads

Website conversion measurement plus Search budgets, campaigns, campaign goals, targeting, ad groups, keywords, Responsive Search Ads, and explicit destroy/remove.

Meta Ads

Website conversion measurement plus Pixel binding, Custom Conversions, paused campaigns, ad sets, external-media creatives, and serving ads.

CommandPurpose
validateValidate the manifest, provider configuration, dependencies, connectivity, and resource schemas
planRead remote state and show resource and provider actions; never mutate
applyExecute reviewed resource changes and configured provider finalization
importBind an existing remote identity and print configurable YAML; no remote mutation
destroyTear down managed resources present in the manifest and bound in state