A coordinated, time-boxed effort to move a specific growth metric (activation, referral, expansion, or reactivation) through a sequence of tested interventions.
A growth campaign is a coordinated, experimentExperimentValidationA test designed to validate a hypothesisView reference →-driven push by a growth team to move a specific metricMetricStrategyA unified metric that measures progress, health, or behaviour across the productView reference →: a bounded set of tests aimed at one part of the funnelFunnelGrowthA conversion funnel tracking user progressionView reference →, run on a hypothesisHypothesisValidationA testable belief about a solutionView reference → and judged on a result. It carries a structure that a brand campaign does not. Where a marketing campaign sells a message on a calendar, a growth campaign asks a question and accepts that the answer might be "no".
The growth campaign is the operational unit of growth hacking, a discipline Sean Ellis named around 2010 after building the early growth engines at Dropbox, LogMeIn, and Eventbrite (Lenny's Newsletter). Ellis reframed growth as a high-tempo loop of ideas, prioritisation, tests, and learningLearningValidationAn insight gained from an experimentView reference →, codified later in Hacking Growth (2017, with Morgan Brown). A campaign in this world is a batch of experiments run against a single objectiveObjectiveStrategyA strategic goal (OKR)View reference →, not a creative artefact shipped to an audience.
Prioritisation is what keeps the tempo honest. Ellis created the ICE model, scoring each idea on impact, confidence, and ease so a team can rank a backlog quickly with a "good enough" accuracy (airfocus). Intercom later extended it to RICE by adding reach, weighting impact by how many users an idea touches. A growth campaign is, in practice, the highest-scoring cluster of ICE or RICE bets bundled for one cycle.
The frame then widened from tactics to systems. Brian Balfour and Reforge argued that durable growth comes from growth loopsGrowth LoopGrowthA self-reinforcing growth cycleView reference →, reinvesting outputs to drive the next round of inputs, rather than a linear sequence of one-off pushes (Reforge). A modern growth campaign is read against the loop it feeds: a test of one mechanism inside a self-reinforcing system.
A consumer-app growth team wants to lift week-one retention. They open a campaign with a single objective, retained users at day seven, and a six-week window. From a backlog of fifteen ideas they ICE-score the top three: a personalised onboarding checklist (impact 8, confidence 6, ease 7), a day-two re-engagement push (7, 7, 8), and a streak mechanic (9, 4, 3).
The re-engagement push scores highest on ease and confidence, so it runs first as an A/B test against a held-back control, targeted only at the segment of users who installed but never returned on day two. After three weeks the treatment lifts day-seven retention from 22 to 26 percent on that segment, significant at the campaign's threshold. The streak mechanic, lower confidence, gets staged next rather than shipped on faith. The campaign closes with one validated lever and a clearer read on the next.
In the Unified Product Graph, a growth campaign is a container in the Business, GTM & Growth region. An acquisition channelAcquisition ChannelGrowthA channel through which users are acquiredView reference → reaches it via Acquisition ChannelrunsGrowth Campaignhierarchy, locating where the push happens. Its work hangs off three edges: acquisition_channel_runs_growth_campaignGrowth CampaigntestsVarianthierarchy for the A/B arms it runs, growth_campaign_tests_variantGrowth Campaigntests viaExperiment Planhierarchy for the formal design behind those arms, and growth_campaign_tests_via_experiment_planGrowth CampaigntargetsBehavioral Segmentcross-domain for the audience. Modelling the campaign as a container, with the plan and variants beneath it, keeps the experiment-driven structure visible: a growth campaign that connects to no variant and no plan is a marketing push wearing a growth label, and the graph shows the difference.growth_campaign_targets_behavioral_segment
Type-specific fields on BaseNode
campaign_typestringStrategic shape. Drives channel mix, budget pattern, and measurement style.
start_datestringISO start date
end_datestringISO end date
budget_amountnumberTotal allocated budget. Use with `budget_currency`.
budget_currencystringISO 4217 currency code (e.g. "USD", "EUR", "GBP")
channels_targetedstring[]Channels the campaign runs across. Free-form so partner channels and ad networks both fit (e.g. "google_ads", "linkedin", "podcast_sponsorship").
primary_kpistringPrimary KPI optimised for (e.g. "qualified_signups", "MQL_volume", "activated_teams")
kpi_targetnumberNumeric target for `primary_kpi` over the campaign window
utm_parametersstringUTM tracking parameters for this campaign
hypothesisstringHypothesis or rationale this campaign is testing (free-form, complements `experiment_plan` linkage)
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
5 phases — initial: drafted
6 edge types connected to this entity.
acquisition_channel_runs_growth_campaigngrowth_campaign_tests_via_experiment_plangrowth_campaign_tests_variantgrowth_campaign_targets_behavioral_segmentlaunch_amplified_by_growth_campaigncontent_piece_part_of_growth_campaign1 framework use this entity type.