Media buyer
media-buyer v1Handles the paid side: builds the ad campaigns, sets targeting and bids, starts and stops the buy, watches pacing, and moves money toward what is working. This is the agent that spends, which is why its grants carry caps and every move it makes carries a reason.
What it is granted, and what it hands to a person
This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.
Sits in briefings, reports into roll-calls and collect-and-report on the spend, and works under an allocate-and-reconcile budget when the process runs one - its spend reports are that pattern's raw material.
What is in the package
30 skills and the systems they need, written to version 1.1.0 of the Agent Plugins standard. Nothing in these files names a product. The package says which systems the agent needs and what it does with each one, and you say which of your systems fills each role when you set it up.
# Where this abstract agent stops Does not change creative - it requests replacements from the producing agents. Does not set the budget it spends. Does not touch organic publishing. ## What always goes to a person - any move past its cap, before the money moves - pacing that the budget cannot survive - an ad rejected by a platform for policy - people decide whether to contest or rewrite
# The records this abstract agent must leave
This is the contract. An agent implementing `media-buyer` leaves the
following behind, on every run.
Every campaign configuration at a version, every budget move with the
number, the direction, and the reason, and the stop record when the buy
comes off.
An agent that leaves less than this does not implement `media-buyer`,
whatever else it does well.
# The systems this abstract agent needs
Three systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.
| Role | Access | What the access is for |
|---|---|---|
| ad platforms | write | Cap: an amount per day it may move without asking, set by the adopting organization. |
| analytics | read | |
| tracking and URL tooling | write | |
Whoever builds an agent from this plugin writes the `mcp.json` that
points these roles at their own systems. Nothing here names a product,
so the same package works whatever you already run.
{
"$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
"name": "media-buyer",
"version": "1.0.0",
"description": "The media-buyer abstract agent. Handles the paid side: builds the ad campaigns, sets targeting and bids, starts and stops the buy, watches pacing, and moves money toward what is working.",
"author": {
"name": "AgentCatalog",
"url": "https://agentcatalog.com"
},
"homepage": "https://agentcatalog.com/abstract-agents/media-buyer",
"repository": "https://github.com/jeffrschneider/agentcatalog",
"license": "CC-BY-4.0",
"keywords": [
"abstract-agent",
"reference",
"marketing",
"test-ad-creative",
"paid-search-campaign",
"traffic-ad-creative",
"abstract"
],
"extensions": {
"com.agentcatalog.agent": {
"agent": "media-buyer",
"agentVersion": 1,
"department": "marketing",
"abstract": true,
"works": "Sits in briefings, reports into roll-calls and collect-and-report on the spend, and works under an allocate-and-reconcile budget when the process runs one - its spend reports are that pattern's raw material.",
"servers": [
{
"name": "ad platforms",
"role": "ad-platforms",
"access": "write",
"needs": "Cap: an amount per day it may move without asking, set by the adopting organization."
},
{
"name": "analytics",
"role": "analytics",
"access": "read"
},
{
"name": "tracking and URL tooling",
"role": "tracking-and-url-tooling",
"access": "write"
}
],
"records": [
"Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off."
],
"escalates": [
"any move past its cap, before the money moves",
"pacing that the budget cannot survive",
"an ad rejected by a platform for policy - people decide whether to contest or rewrite"
],
"not": [
"Does not change creative - it requests replacements from the producing agents.",
"Does not set the budget it spends.",
"Does not touch organic publishing."
],
"processes": [
{
"process": "ref/mkt/account-based-play",
"activities": [
"Set up the Paid Buy",
"Start the Touches"
]
},
{
"process": "ref/mkt/annual-marketing-plan",
"activities": [
"Collect the Candidate Initiatives",
"Put Numbers on Each Initiative",
"Build the Calendar",
"Brief the Department"
]
},
{
"process": "ref/mkt/co-marketing-campaign",
"activities": [
"Plan the Joint Campaign",
"Set up Each Side's Distribution"
]
},
{
"process": "ref/mkt/develop-marketing-strategy",
"activities": [
"Hand the Strategy to the Work that Follows"
]
},
{
"process": "ref/mkt/display-retargeting",
"activities": [
"Set the Exposure Rules",
"Check the Buy Before Switch-On",
"Launch the Campaigns",
"Record What Is in Force"
]
},
{
"process": "ref/mkt/field-event",
"activities": [
"Promote the Event"
]
},
{
"process": "ref/mkt/ideal-customer-profile",
"activities": [
"Hand over the Profile"
]
},
{
"process": "ref/mkt/influencer-campaign",
"activities": [
"Set up the Tracking"
]
},
{
"process": "ref/mkt/landing-page",
"activities": [
"Hand It to the Campaign"
]
},
{
"process": "ref/mkt/long-form-content",
"activities": [
"Promote the Piece"
]
},
{
"process": "ref/mkt/marketing-performance-report",
"activities": [
"Account for the Paid Spend",
"Reconcile the Spend",
"Check the Account"
]
},
{
"process": "ref/mkt/media-plan",
"activities": [
"Gather the Channel Evidence",
"Draft the Candidate Mixes",
"Set the Channel Audience Targets",
"Hand the Plan to the Buying Agents"
]
},
{
"process": "ref/mkt/paid-search-campaign",
"activities": [
"Research the Search Demand",
"Build the Keyword Plan",
"Ready the Landing Pages",
"Wire up Conversion Tracking",
"Build the Campaigns and Launch",
"Watch Pacing and Results",
"Tune the Bids and Terms",
"Reconcile the Spend"
]
},
{
"process": "ref/mkt/plan-marketing-capacity",
"activities": [
"List the Committed Work"
]
},
{
"process": "ref/mkt/pricing-change",
"activities": [
"Restate the Price Everywhere It Is Published",
"Change the Public Price"
]
},
{
"process": "ref/mkt/prioritize-initiatives",
"activities": [
"Work out What Is Free",
"Put Numbers on Each Request",
"Hand over the Commitments"
]
},
{
"process": "ref/mkt/product-launch",
"activities": [
"Prep the Channels"
]
},
{
"process": "ref/mkt/quarterly-business-review",
"activities": [
"Ask Each Area What It Would Change",
"Put Numbers on the Proposed Changes",
"Brief the Department"
]
},
{
"process": "ref/mkt/reallocate-media-spend",
"activities": [
"Take in the Pacing Signal",
"Read the Current Position",
"Name the Candidate Moves",
"Check What a Move Would Cost",
"Move the Money in the Platforms",
"Correct the Pacing",
"Check the Change Took"
]
},
{
"process": "ref/mkt/reconcile-media-spend",
"activities": [
"Set What the Close Covers",
"Pull the Delivery Record",
"Pull the Order Record",
"Clear the Explained Differences",
"Track the Answers",
"Record What Was Learned"
]
},
{
"process": "ref/mkt/segment-the-market",
"activities": [
"Test Whether Each Segment Can Be Reached",
"Hand over the Segments"
]
},
{
"process": "ref/mkt/set-marketing-budget",
"activities": [
"Collect What Each Function Asks For",
"Price the Requests",
"Tell Every Function What It Has"
]
},
{
"process": "ref/mkt/social-campaign",
"activities": [
"Set up the Practical Side",
"Optimize"
]
},
{
"process": "ref/mkt/target-audience-segment",
"activities": [
"Name the Exclusions",
"Brief the Build",
"Hand the List to the Platforms",
"Confirm the Match"
]
},
{
"process": "ref/mkt/test-ad-creative",
"activities": [
"Read the Current Performance",
"Name the Change to Test",
"Design the Comparison",
"Set the Evidence Bar",
"Wire up the Measurement",
"Check the Test Before Switch-On",
"Launch the Test",
"Watch Delivery",
"Call the Winner",
"Roll out the Winner"
]
},
{
"process": "ref/mkt/traffic-ad-creative",
"activities": [
"Take in the Creative and the Plan",
"Read the Placement Specifications",
"Build the Tracking Parameters",
"Build the Ad Units",
"Set the Flights, Budgets and Rotation",
"Check the Buy Before Switch-On",
"Switch the Ads On",
"Record What Is Live"
]
},
{
"process": "ref/mkt/user-conference",
"activities": [
"Promote the Conference"
]
},
{
"process": "ref/mkt/verify-ad-placement",
"activities": [
"Take in the Concern",
"Set What the Audit Covers",
"Pull the Placement Record",
"Decide What Happens to Each",
"Apply the Exclusions",
"Claim Back the Wasted Spend",
"Record What Was Learned"
]
},
{
"process": "ref/mkt/webinar",
"activities": [
"Promote the Session"
]
},
{
"process": "ref/mkt/win-back-campaign",
"activities": [
"Set up the Sending",
"Watch the Response"
]
}
]
}
}
}
# media-buyer This is an abstract agent, published as an Agent Plugin. An abstract agent is a job description rather than an implementation. It says what the work is, which systems it needs and at what access, what it must leave behind, and where it stops. Any agent that leaves the records can implement it. The plugin carries 30 skills, no `mcp.json`, and everything the abstract agent owes under `com.agentcatalog.agent/`. ## Why there is no mcp.json A conformant server entry in `mcp.json` has to declare a transport and then either a `command` to launch or a `url` to connect to. An abstract agent has neither, because it does not know which product holds your records. Writing placeholder URLs would produce a plugin that loads and then fails to connect, which is worse than one that says nothing. Section 6.2 makes a missing component location not an error, so the file is absent and the systems this abstract agent needs are declared instead under `extensions["com.agentcatalog.agent"].servers`, as a role, an access level and what the access is for. Whoever builds an agent from this plugin writes the `mcp.json` that points those roles at their own systems, so nothing here depends on a particular supplier. ## Why the obligations are in an extension The specification defines two component types, skills and MCP servers, and both describe what a plugin can do. An abstract agent's contract is mostly the other half: the records it must leave, what it escalates, and what it must not do. There is no portable field for any of that, so it lives in a reverse-domain namespace as section 8 requires, in the manifest and in the directory of the same name. ## Where this abstract agent is used `ref/mkt/account-based-play`, `ref/mkt/annual-marketing-plan`, `ref/mkt/co-marketing-campaign`, `ref/mkt/develop-marketing-strategy`, `ref/mkt/display-retargeting`, `ref/mkt/field-event`, and 24 more. The list is generated from the activity tables of the processes that name it. https://agentcatalog.com/abstract-agents/media-buyer
--- name: account-for-what-was-spent description: Reports what the paid buy spent by campaign and channel and what came back from it, and confirms the figures that name the buy in another agent's report before that report goes out. Use it when running `ref/mkt/marketing-performance-report`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Account for what was spent ## What it does Reports what the paid buy spent by campaign and channel and what came back from it, and confirms the figures that name the buy in another agent's report before that report goes out. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Account for the Paid Spend** - `ref/mkt/marketing-performance-report`, activity 4 - [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md) - **Check the Account** - `ref/mkt/marketing-performance-report`, activity 12 - [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: adjust-a-live-buy description: Changes a buy that is already running. Use it when running `ref/mkt/paid-search-campaign` and 3 other reference processes. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Adjust a live buy ## What it does Changes a buy that is already running. It moves money between lines and systems, resets daily limits so each flight lands on its date, moves bids, swaps out creative that has gone stale, and turns wasted terms and unwanted inventory into exclusions. ## Where it happens The agent does this in five activities across four reference processes. Each one names the activity as that process words it. - **Apply the Exclusions** - `ref/mkt/verify-ad-placement`, activity 10 - [Verify Ad Placement Quality](../../../../processes/marketing/verify-ad-placement.md) - **Correct the Pacing** - `ref/mkt/reallocate-media-spend`, activity 11 - [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md) - **Move the Money in the Platforms** - `ref/mkt/reallocate-media-spend`, activity 10 - [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md) - **Optimize** - `ref/mkt/social-campaign`, activity 11 - [Run Social Media Campaign](../../../../processes/marketing/social-campaign.md) - **Tune the Bids and Terms** - `ref/mkt/paid-search-campaign`, activity 10 - [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: brief-the-agents-that-will-spend description: "Opens a run by telling every agent that will spend the same thing at once: what the plan is, what each of them owes against it, and by when. Use it when running `ref/mkt/annual-marketing-plan` and 3 other reference processes." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Brief the agents that will spend ## What it does Opens a run by telling every agent that will spend the same thing at once: what the plan is, what each of them owes against it, and by when. ## Where it happens The agent does this in three activities across four reference processes. Each one names the activity as that process words it. - **Brief the Build** - `ref/mkt/target-audience-segment`, activity 7 - [Build Target Audience Segment](../../../../processes/marketing/target-audience-segment.md) - **Brief the Department** - `ref/mkt/annual-marketing-plan`, activity 15 - [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md) - `ref/mkt/quarterly-business-review`, activity 15 - [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md) - **Hand the Plan to the Buying Agents** - `ref/mkt/media-plan`, activity 13 - [Develop Media Plan](../../../../processes/marketing/media-plan.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: build-the-campaigns-in-the-platforms description: "Builds the buy in the systems that will run it: campaigns, ad sets and ads named to the plan line they answer to, the audiences loaded, the schedule set, and each piece of creative sized to what its placement takes. Use it when running `ref/mkt/account-based-play` and 5 other reference processes." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Build the campaigns in the platforms ## What it does Builds the buy in the systems that will run it: campaigns, ad sets and ads named to the plan line they answer to, the audiences loaded, the schedule set, and each piece of creative sized to what its placement takes. ## Where it happens The agent does this in seven activities across six reference processes. Each one names the activity as that process words it. - **Build the Ad Units** - `ref/mkt/traffic-ad-creative`, activity 12 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) - **Prep the Channels** - `ref/mkt/product-launch`, activity 6 - [Launch Product](../../../../processes/marketing/product-launch.md) - **Read the Placement Specifications** - `ref/mkt/traffic-ad-creative`, activity 2 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) - **Set up Each Side's Distribution** - `ref/mkt/co-marketing-campaign`, activity 11 - [Run Co-Marketing Campaign](../../../../processes/marketing/co-marketing-campaign.md) - **Set up the Paid Buy** - `ref/mkt/account-based-play`, activity 11 - [Run Account-Based Play](../../../../processes/marketing/account-based-play.md) - **Set up the Practical Side** - `ref/mkt/social-campaign`, activity 7 - [Run Social Media Campaign](../../../../processes/marketing/social-campaign.md) - **Set up the Sending** - `ref/mkt/win-back-campaign`, activity 12 - [Run Win-Back Campaign](../../../../processes/marketing/win-back-campaign.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: call-a-test-and-roll-out-the-winner description: Reads a finished test against the bar that was set and says whether there is a winner, no difference, or more time needed, then puts the winning version in place of what was running and turns the rest off. Use it when running `ref/mkt/test-ad-creative`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Call a test and roll out the winner ## What it does Reads a finished test against the bar that was set and says whether there is a winner, no difference, or more time needed, then puts the winning version in place of what was running and turns the rest off. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Call the Winner** - `ref/mkt/test-ad-creative`, activity 16 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) - **Roll out the Winner** - `ref/mkt/test-ad-creative`, activity 17 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: change-a-published-price description: Finds every live page, ad and asset that names a price and changes it, puts the new pages up, and points the old addresses at them. Use it when running `ref/mkt/pricing-change`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Change a published price ## What it does Finds every live page, ad and asset that names a price and changes it, puts the new pages up, and points the old addresses at them. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Change the Public Price** - `ref/mkt/pricing-change`, activity 12 - [Launch Pricing Change](../../../../processes/marketing/pricing-change.md) - **Restate the Price Everywhere It Is Published** - `ref/mkt/pricing-change`, activity 7 - [Launch Pricing Change](../../../../processes/marketing/pricing-change.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: collect-what-each-area-asks-for description: Asks every area what it wants to run or change, in one format and against one due date, and puts the answers into a single list. Use it when running `ref/mkt/annual-marketing-plan`, `ref/mkt/quarterly-business-review` and `ref/mkt/set-marketing-budget`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Collect what each area asks for ## What it does Asks every area what it wants to run or change, in one format and against one due date, and puts the answers into a single list. ## Where it happens The agent does this in three activities across three reference processes. Each one names the activity as that process words it. - **Ask Each Area What It Would Change** - `ref/mkt/quarterly-business-review`, activity 8 - [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md) - **Collect What Each Function Asks For** - `ref/mkt/set-marketing-budget`, activity 4 - [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md) - **Collect the Candidate Initiatives** - `ref/mkt/annual-marketing-plan`, activity 6 - [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: decide-who-the-buy-goes-after description: "Decides what the buy targets: the audience each channel is bought against, the terms to bid on and how they are grouped, and who is kept out or must not overlap. Use it when running `ref/mkt/media-plan`, `ref/mkt/paid-search-campaign` and `ref/mkt/target-audience-segment`." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Decide who the buy goes after ## What it does Decides what the buy targets: the audience each channel is bought against, the terms to bid on and how they are grouped, and who is kept out or must not overlap. ## Where it happens The agent does this in three activities across three reference processes. Each one names the activity as that process words it. - **Build the Keyword Plan** - `ref/mkt/paid-search-campaign`, activity 3 - [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md) - **Name the Exclusions** - `ref/mkt/target-audience-segment`, activity 5 - [Build Target Audience Segment](../../../../processes/marketing/target-audience-segment.md) - **Set the Channel Audience Targets** - `ref/mkt/media-plan`, activity 10 - [Develop Media Plan](../../../../processes/marketing/media-plan.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: design-a-creative-test description: "Designs a test of one change: what is being changed and what it should improve, how many variants there are, how the traffic splits, where they run, and how much exposure has to build up before the result counts. Use it when running `ref/mkt/test-ad-creative`." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Design a creative test ## What it does Designs a test of one change: what is being changed and what it should improve, how many variants there are, how the traffic splits, where they run, and how much exposure has to build up before the result counts. ## Where it happens The agent does this in three activities across one reference process. Each one names the activity as that process words it. - **Design the Comparison** - `ref/mkt/test-ad-creative`, activity 4 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) - **Name the Change to Test** - `ref/mkt/test-ad-creative`, activity 3 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) - **Set the Evidence Bar** - `ref/mkt/test-ad-creative`, activity 5 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: draft-the-options-for-moving-the-money description: Puts up two or three ways the money could be split across channels or moved between lines, saying for each one which lines give money up and which lines take it. Use it when running `ref/mkt/media-plan` and `ref/mkt/reallocate-media-spend`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Draft the options for moving the money ## What it does Puts up two or three ways the money could be split across channels or moved between lines, saying for each one which lines give money up and which lines take it. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **Draft the Candidate Mixes** - `ref/mkt/media-plan`, activity 6 - [Develop Media Plan](../../../../processes/marketing/media-plan.md) - **Name the Candidate Moves** - `ref/mkt/reallocate-media-spend`, activity 4 - [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: hand-a-decision-to-the-agents-that-act description: Passes a settled decision to each agent that has to act on it, including the money it has been given and the rules that come with it, and takes back what each one says it will change. Use it when running `ref/mkt/develop-marketing-strategy` and 4 other reference processes. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Hand a decision to the agents that act ## What it does Passes a settled decision to each agent that has to act on it, including the money it has been given and the rules that come with it, and takes back what each one says it will change. ## Where it happens The agent does this in five activities across five reference processes. Each one names the activity as that process words it. - **Hand over the Commitments** - `ref/mkt/prioritize-initiatives`, activity 15 - [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md) - **Hand over the Profile** - `ref/mkt/ideal-customer-profile`, activity 15 - [Define Ideal Customer Profile](../../../../processes/marketing/ideal-customer-profile.md) - **Hand over the Segments** - `ref/mkt/segment-the-market`, activity 16 - [Segment the Market](../../../../processes/marketing/segment-the-market.md) - **Hand the Strategy to the Work that Follows** - `ref/mkt/develop-marketing-strategy`, activity 15 - [Develop Marketing Strategy](../../../../processes/marketing/develop-marketing-strategy.md) - **Tell Every Function What It Has** - `ref/mkt/set-marketing-budget`, activity 14 - [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: lay-out-what-runs-when description: "Lays the agreed work across the calendar: what runs on which dates and channels, at what weight, and who owes what when more than one party is paying. Use it when running `ref/mkt/annual-marketing-plan` and `ref/mkt/co-marketing-campaign`." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Lay out what runs when ## What it does Lays the agreed work across the calendar: what runs on which dates and channels, at what weight, and who owes what when more than one party is paying. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **Build the Calendar** - `ref/mkt/annual-marketing-plan`, activity 11 - [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md) - **Plan the Joint Campaign** - `ref/mkt/co-marketing-campaign`, activity 3 - [Run Co-Marketing Campaign](../../../../processes/marketing/co-marketing-campaign.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: line-up-the-page-the-ad-points-at description: Makes sure the page behind an ad answers what that ad was bought for, and gives the campaign the address and the tracking that go with it. Use it when running `ref/mkt/landing-page` and `ref/mkt/paid-search-campaign`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Line up the page the ad points at ## What it does Makes sure the page behind an ad answers what that ad was bought for, and gives the campaign the address and the tracking that go with it. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **Hand It to the Campaign** - `ref/mkt/landing-page`, activity 12 - [Publish Landing Page](../../../../processes/marketing/landing-page.md) - **Ready the Landing Pages** - `ref/mkt/paid-search-campaign`, activity 5 - [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: load-an-audience-list-into-the-platforms description: Formats an audience list for each system it is going to, delivers it, confirms it arrived, and reports how much of the list each one could actually match and reach. Use it when running `ref/mkt/segment-the-market` and `ref/mkt/target-audience-segment`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Load an audience list into the platforms ## What it does Formats an audience list for each system it is going to, delivers it, confirms it arrived, and reports how much of the list each one could actually match and reach. ## Where it happens The agent does this in three activities across two reference processes. Each one names the activity as that process words it. - **Confirm the Match** - `ref/mkt/target-audience-segment`, activity 14 - [Build Target Audience Segment](../../../../processes/marketing/target-audience-segment.md) - **Hand the List to the Platforms** - `ref/mkt/target-audience-segment`, activity 13 - [Build Target Audience Segment](../../../../processes/marketing/target-audience-segment.md) - **Test Whether Each Segment Can Be Reached** - `ref/mkt/segment-the-market`, activity 10 - [Segment the Market](../../../../processes/marketing/segment-the-market.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: match-the-records-against-the-books description: Sets the spend the systems recorded against what the books say and clears the differences the buy's own records already explain, leaving only the ones that need an answer from outside. Use it when running `ref/mkt/marketing-performance-report`, `ref/mkt/paid-search-campaign` and `ref/mkt/reconcile-media-spend`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Match the records against the books ## What it does Sets the spend the systems recorded against what the books say and clears the differences the buy's own records already explain, leaving only the ones that need an answer from outside. ## Where it happens The agent does this in two activities across three reference processes. Each one names the activity as that process words it. - **Clear the Explained Differences** - `ref/mkt/reconcile-media-spend`, activity 8 - [Reconcile Media Spend](../../../../processes/marketing/reconcile-media-spend.md) - **Reconcile the Spend** - `ref/mkt/marketing-performance-report`, activity 10 - [Report Marketing Performance](../../../../processes/marketing/marketing-performance-report.md) - `ref/mkt/paid-search-campaign`, activity 11 - [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: promote-a-run-with-paid-media description: Runs the paid push behind an event, a session or a piece of content, pointed at whatever counts as a response, such as a registration or a read. Use it when running `ref/mkt/field-event` and 3 other reference processes. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Promote a run with paid media ## What it does Runs the paid push behind an event, a session or a piece of content, pointed at whatever counts as a response, such as a registration or a read. ## Where it happens The agent does this in four activities across four reference processes. Each one names the activity as that process words it. - **Promote the Conference** - `ref/mkt/user-conference`, activity 8 - [Host User Conference](../../../../processes/marketing/user-conference.md) - **Promote the Event** - `ref/mkt/field-event`, activity 9 - [Host Field Event](../../../../processes/marketing/field-event.md) - **Promote the Piece** - `ref/mkt/long-form-content`, activity 15 - [Produce Long-Form Content](../../../../processes/marketing/long-form-content.md) - **Promote the Session** - `ref/mkt/webinar`, activity 8 - [Produce Webinar](../../../../processes/marketing/webinar.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: pull-the-record-of-what-actually-ran description: "Pulls the record of what happened out of each system: what was ordered and at which rates, what was recorded as delivered and spent, and every site, app and channel the ads actually ran on. Use it when running `ref/mkt/reconcile-media-spend` and `ref/mkt/verify-ad-placement`." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Pull the record of what actually ran ## What it does Pulls the record of what happened out of each system: what was ordered and at which rates, what was recorded as delivered and spent, and every site, app and channel the ads actually ran on. ## Where it happens The agent does this in three activities across two reference processes. Each one names the activity as that process words it. - **Pull the Delivery Record** - `ref/mkt/reconcile-media-spend`, activity 3 - [Reconcile Media Spend](../../../../processes/marketing/reconcile-media-spend.md) - **Pull the Order Record** - `ref/mkt/reconcile-media-spend`, activity 4 - [Reconcile Media Spend](../../../../processes/marketing/reconcile-media-spend.md) - **Pull the Placement Record** - `ref/mkt/verify-ad-placement`, activity 4 - [Verify Ad Placement Quality](../../../../processes/marketing/verify-ad-placement.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: put-numbers-on-what-is-being-asked-for description: Puts cost and expected return on each request, initiative or proposed change, with the assumptions written underneath and what it would displace. Use it when running `ref/mkt/annual-marketing-plan` and 4 other reference processes. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Put numbers on what is being asked for ## What it does Puts cost and expected return on each request, initiative or proposed change, with the assumptions written underneath and what it would displace. It also reads the terms behind money already placed, so a proposal to pull that money out carries the notice, the minimums, the rate tiers and the cancellation cost. ## Where it happens The agent does this in five activities across five reference processes. Each one names the activity as that process words it. - **Check What a Move Would Cost** - `ref/mkt/reallocate-media-spend`, activity 5 - [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md) - **Price the Requests** - `ref/mkt/set-marketing-budget`, activity 5 - [Set Marketing Budget](../../../../processes/marketing/set-marketing-budget.md) - **Put Numbers on Each Initiative** - `ref/mkt/annual-marketing-plan`, activity 7 - [Build Annual Marketing Plan](../../../../processes/marketing/annual-marketing-plan.md) - **Put Numbers on Each Request** - `ref/mkt/prioritize-initiatives`, activity 7 - [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md) - **Put Numbers on the Proposed Changes** - `ref/mkt/quarterly-business-review`, activity 9 - [Conduct Quarterly Business Review](../../../../processes/marketing/quarterly-business-review.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: read-back-what-is-set-against-what-was-agreed description: Reads what is actually set in the systems and compares it with what was decided, covering caps, pools, exclusions, splits, tags, variants and budgets, then reports anything that does not match. Use it when running `ref/mkt/display-retargeting` and 3 other reference processes. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Read back what is set against what was agreed ## What it does Reads what is actually set in the systems and compares it with what was decided, covering caps, pools, exclusions, splits, tags, variants and budgets, then reports anything that does not match. ## Where it happens The agent does this in three activities across four reference processes. Each one names the activity as that process words it. - **Check the Buy Before Switch-On** - `ref/mkt/display-retargeting`, activity 12 - [Run Display Retargeting Campaign](../../../../processes/marketing/display-retargeting.md) - `ref/mkt/traffic-ad-creative`, activity 14 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) - **Check the Change Took** - `ref/mkt/reallocate-media-spend`, activity 12 - [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md) - **Check the Test Before Switch-On** - `ref/mkt/test-ad-creative`, activity 12 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: read-what-a-channel-costs-and-delivers description: "Gathers the evidence behind a buying decision: what each channel has cost, delivered and returned, what the creative in flight is delivering by placement, and what people search for and what a click on those terms costs. Use it when running `ref/mkt/media-plan`, `ref/mkt/paid-search-campaign` and `ref/mkt/test-ad-creative`." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Read what a channel costs and delivers ## What it does Gathers the evidence behind a buying decision: what each channel has cost, delivered and returned, what the creative in flight is delivering by placement, and what people search for and what a click on those terms costs. ## Where it happens The agent does this in three activities across three reference processes. Each one names the activity as that process words it. - **Gather the Channel Evidence** - `ref/mkt/media-plan`, activity 5 - [Develop Media Plan](../../../../processes/marketing/media-plan.md) - **Read the Current Performance** - `ref/mkt/test-ad-creative`, activity 2 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) - **Research the Search Demand** - `ref/mkt/paid-search-campaign`, activity 2 - [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: read-what-is-committed-and-what-is-free description: Reports what the period has already committed, what has been spent against it, and what is still free to place. Use it when running `ref/mkt/plan-marketing-capacity`, `ref/mkt/prioritize-initiatives` and `ref/mkt/reallocate-media-spend`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Read what is committed and what is free ## What it does Reports what the period has already committed, what has been spent against it, and what is still free to place. ## Where it happens The agent does this in three activities across three reference processes. Each one names the activity as that process words it. - **List the Committed Work** - `ref/mkt/plan-marketing-capacity`, activity 2 - [Plan Marketing Capacity](../../../../processes/marketing/plan-marketing-capacity.md) - **Read the Current Position** - `ref/mkt/reallocate-media-spend`, activity 3 - [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md) - **Work out What Is Free** - `ref/mkt/prioritize-initiatives`, activity 5 - [Prioritize Marketing Initiatives](../../../../processes/marketing/prioritize-initiatives.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: record-what-is-running description: "Writes down at a version what is live: which creative runs on which line, and the pools, caps and exclusions in force behind it. Use it when running `ref/mkt/display-retargeting` and `ref/mkt/traffic-ad-creative`." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Record what is running ## What it does Writes down at a version what is live: which creative runs on which line, and the pools, caps and exclusions in force behind it. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **Record What Is Live** - `ref/mkt/traffic-ad-creative`, activity 17 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) - **Record What Is in Force** - `ref/mkt/display-retargeting`, activity 16 - [Run Display Retargeting Campaign](../../../../processes/marketing/display-retargeting.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: record-what-was-learned description: Closes a run with what to check first the next time, naming the lines and the issuers that caused the most work. Use it when running `ref/mkt/reconcile-media-spend` and `ref/mkt/verify-ad-placement`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Record what was learned ## What it does Closes a run with what to check first the next time, naming the lines and the issuers that caused the most work. ## Where it happens The agent does this in one activity across two reference processes. Each one names the activity as that process words it. - **Record What Was Learned** - `ref/mkt/reconcile-media-spend`, activity 14 - [Reconcile Media Spend](../../../../processes/marketing/reconcile-media-spend.md) - `ref/mkt/verify-ad-placement`, activity 15 - [Verify Ad Placement Quality](../../../../processes/marketing/verify-ad-placement.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: set-how-the-buy-delivers description: Sets the dates each line runs, the money it may spend a day, how the versions rotate, and how often one person may see an ad and for how long. Use it when running `ref/mkt/display-retargeting` and `ref/mkt/traffic-ad-creative`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Set how the buy delivers ## What it does Sets the dates each line runs, the money it may spend a day, how the versions rotate, and how often one person may see an ad and for how long. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **Set the Exposure Rules** - `ref/mkt/display-retargeting`, activity 11 - [Run Display Retargeting Campaign](../../../../processes/marketing/display-retargeting.md) - **Set the Flights, Budgets and Rotation** - `ref/mkt/traffic-ad-creative`, activity 13 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: set-what-a-close-or-an-audit-covers description: Says which accounts, campaigns, channels and dates a close or an audit covers, before any records are pulled. Use it when running `ref/mkt/reconcile-media-spend` and `ref/mkt/verify-ad-placement`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Set what a close or an audit covers ## What it does Says which accounts, campaigns, channels and dates a close or an audit covers, before any records are pulled. ## Where it happens The agent does this in two activities across two reference processes. Each one names the activity as that process words it. - **Set What the Audit Covers** - `ref/mkt/verify-ad-placement`, activity 2 - [Verify Ad Placement Quality](../../../../processes/marketing/verify-ad-placement.md) - **Set What the Close Covers** - `ref/mkt/reconcile-media-spend`, activity 1 - [Reconcile Media Spend](../../../../processes/marketing/reconcile-media-spend.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: settle-what-happens-to-each-finding description: Decides what to do with each thing a close or an audit turned up, whether to exclude it, contest it or accept it and say why, claims back what was spent on impressions that failed, and follows every query through to a credit, a fix, a make-good or a refusal. Use it when running `ref/mkt/reconcile-media-spend` and `ref/mkt/verify-ad-placement`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Settle what happens to each finding ## What it does Decides what to do with each thing a close or an audit turned up, whether to exclude it, contest it or accept it and say why, claims back what was spent on impressions that failed, and follows every query through to a credit, a fix, a make-good or a refusal. ## Where it happens The agent does this in three activities across two reference processes. Each one names the activity as that process words it. - **Claim Back the Wasted Spend** - `ref/mkt/verify-ad-placement`, activity 12 - [Verify Ad Placement Quality](../../../../processes/marketing/verify-ad-placement.md) - **Decide What Happens to Each** - `ref/mkt/verify-ad-placement`, activity 9 - [Verify Ad Placement Quality](../../../../processes/marketing/verify-ad-placement.md) - **Track the Answers** - `ref/mkt/reconcile-media-spend`, activity 10 - [Reconcile Media Spend](../../../../processes/marketing/reconcile-media-spend.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: switch-the-buy-on description: Starts the buy once the named owner says go, at the bids, caps and splits already set, and confirms that everything named is serving. Use it when running `ref/mkt/account-based-play` and 4 other reference processes. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Switch the buy on ## What it does Starts the buy once the named owner says go, at the bids, caps and splits already set, and confirms that everything named is serving. ## Where it happens The agent does this in five activities across five reference processes. Each one names the activity as that process words it. - **Build the Campaigns and Launch** - `ref/mkt/paid-search-campaign`, activity 8 - [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md) - **Launch the Campaigns** - `ref/mkt/display-retargeting`, activity 13 - [Run Display Retargeting Campaign](../../../../processes/marketing/display-retargeting.md) - **Launch the Test** - `ref/mkt/test-ad-creative`, activity 13 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) - **Start the Touches** - `ref/mkt/account-based-play`, activity 14 - [Run Account-Based Play](../../../../processes/marketing/account-based-play.md) - **Switch the Ads On** - `ref/mkt/traffic-ad-creative`, activity 15 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: take-in-what-starts-a-piece-of-work description: Takes in whatever starts a piece of work and records what it covers, whether that is creative arriving with the plan lines it has to fill, a report that an ad ran somewhere it should not have, or a signal that a line is off its pace and by how much. Use it when running `ref/mkt/reallocate-media-spend`, `ref/mkt/traffic-ad-creative` and `ref/mkt/verify-ad-placement`. license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Take in what starts a piece of work ## What it does Takes in whatever starts a piece of work and records what it covers, whether that is creative arriving with the plan lines it has to fill, a report that an ad ran somewhere it should not have, or a signal that a line is off its pace and by how much. ## Where it happens The agent does this in three activities across three reference processes. Each one names the activity as that process words it. - **Take in the Concern** - `ref/mkt/verify-ad-placement`, activity 1 - [Verify Ad Placement Quality](../../../../processes/marketing/verify-ad-placement.md) - **Take in the Creative and the Plan** - `ref/mkt/traffic-ad-creative`, activity 1 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) - **Take in the Pacing Signal** - `ref/mkt/reallocate-media-spend`, activity 1 - [Reallocate Media Spend](../../../../processes/marketing/reallocate-media-spend.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: watch-what-is-running description: "Watches a live buy against what it was supposed to do and reports the gap: spend and pace, clicks and conversions, whether a test split still holds, and what came back from the people it reached. Use it when running `ref/mkt/paid-search-campaign`, `ref/mkt/test-ad-creative` and `ref/mkt/win-back-campaign`." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Watch what is running ## What it does Watches a live buy against what it was supposed to do and reports the gap: spend and pace, clicks and conversions, whether a test split still holds, and what came back from the people it reached. ## Where it happens The agent does this in three activities across three reference processes. Each one names the activity as that process words it. - **Watch Delivery** - `ref/mkt/test-ad-creative`, activity 14 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) - **Watch Pacing and Results** - `ref/mkt/paid-search-campaign`, activity 9 - [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md) - **Watch the Response** - `ref/mkt/win-back-campaign`, activity 17 - [Run Win-Back Campaign](../../../../processes/marketing/win-back-campaign.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: wire-up-the-tracking description: "Puts the measurement on before anything runs: the parameters every ad carries, the codes that separate one source or one variant from another, and the conversions that count, each one fired once and tested. Use it when running `ref/mkt/influencer-campaign` and 3 other reference processes." license: CC-BY-4.0 metadata: agent: media-buyer agent-version: "1" --- # Wire up the tracking ## What it does Puts the measurement on before anything runs: the parameters every ad carries, the codes that separate one source or one variant from another, and the conversions that count, each one fired once and tested. ## Where it happens The agent does this in four activities across four reference processes. Each one names the activity as that process words it. - **Build the Tracking Parameters** - `ref/mkt/traffic-ad-creative`, activity 9 - [Traffic Ad Creative](../../../../processes/marketing/traffic-ad-creative.md) - **Set up the Tracking** - `ref/mkt/influencer-campaign`, activity 9 - [Run Influencer Campaign](../../../../processes/marketing/influencer-campaign.md) - **Wire up Conversion Tracking** - `ref/mkt/paid-search-campaign`, activity 6 - [Run Paid Search Campaign](../../../../processes/marketing/paid-search-campaign.md) - **Wire up the Measurement** - `ref/mkt/test-ad-creative`, activity 11 - [Test Ad Creative](../../../../processes/marketing/test-ad-creative.md) ## What to record Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
Every server entry in an mcp.json needs either a command to run or a url to connect to, and the package cannot know either of those until somebody points it at their own systems. So the file is left out, the systems the agent needs are named by role in plugin.json, and you write the mcp.json when you set it up.
Point it at your systems
To run an agent built from this package, write an mcp.json that says which of your systems fills each role. The package names these 3 roles, and the access level beside each one is the most the work needs.
{
"$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
"mcpServers": {
"ad-platforms": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/ad-platforms"
},
"analytics": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/analytics"
},
"tracking-and-url-tooling": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/tracking-and-url-tooling"
}
}
}
The hostnames here are a placeholder for your own. Whichever product holds each of these systems, the agent you build is yours and nobody else has to be involved in running it.
30 processes, 96 activities
The highlighted activities are the ones this abstract agent does. The other activities in each process belong to other abstract agents or to people.
Set up the Paid Buy · Start the Touches
Collect the Candidate Initiatives · Put Numbers on Each Initiative · Build the Calendar · Brief the Department
Plan the Joint Campaign · Set up Each Side's Distribution
Hand the Strategy to the Work that Follows
Set the Exposure Rules · Check the Buy Before Switch-On · Launch the Campaigns · Record What Is in Force
Promote the Event
Hand over the Profile
Set up the Tracking
Hand It to the Campaign
Promote the Piece
Account for the Paid Spend · Reconcile the Spend · Check the Account
Gather the Channel Evidence · Draft the Candidate Mixes · Set the Channel Audience Targets · Hand the Plan to the Buying Agents
Research the Search Demand · Build the Keyword Plan · Ready the Landing Pages · Wire up Conversion Tracking · Build the Campaigns and Launch · Watch Pacing and Results · Tune the Bids and Terms · Reconcile the Spend
List the Committed Work
Restate the Price Everywhere It Is Published · Change the Public Price
Work out What Is Free · Put Numbers on Each Request · Hand over the Commitments
Prep the Channels
Ask Each Area What It Would Change · Put Numbers on the Proposed Changes · Brief the Department
Take in the Pacing Signal · Read the Current Position · Name the Candidate Moves · Check What a Move Would Cost · Move the Money in the Platforms · Correct the Pacing · Check the Change Took
Set What the Close Covers · Pull the Delivery Record · Pull the Order Record · Clear the Explained Differences · Track the Answers · Record What Was Learned
Test Whether Each Segment Can Be Reached · Hand over the Segments
Collect What Each Function Asks For · Price the Requests · Tell Every Function What It Has
Set up the Practical Side · Optimize
Name the Exclusions · Brief the Build · Hand the List to the Platforms · Confirm the Match
Read the Current Performance · Name the Change to Test · Design the Comparison · Set the Evidence Bar · Wire up the Measurement · Check the Test Before Switch-On · Launch the Test · Watch Delivery · Call the Winner · Roll out the Winner
Take in the Creative and the Plan · Read the Placement Specifications · Build the Tracking Parameters · Build the Ad Units · Set the Flights, Budgets and Rotation · Check the Buy Before Switch-On · Switch the Ads On · Record What Is Live
Promote the Conference
Take in the Concern · Set What the Audit Covers · Pull the Placement Record · Decide What Happens to Each · Apply the Exclusions · Claim Back the Wasted Spend · Record What Was Learned
Promote the Session
Set up the Sending · Watch the Response
What it writes down
Every campaign configuration at a version, every budget move with the number, the direction, and the reason, and the stop record when the buy comes off.
What it will not do
Does not change creative - it requests replacements from the producing agents. Does not set the budget it spends. Does not touch organic publishing.
These limits are written into the job on purpose, so that everyone adopting the process knows which decisions stay with a person.
Who has built one, and how far each one got
Nobody has built one yet. The catalog says so rather than leaving the section off, because an empty list is a fact about the document.
implements: media-buyer v1
One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
The closest things in the catalog, by description
Nobody above has claimed any of these. This is the nearest match by wording between the job written above and what publishers wrote about their own listings, closest first, and wording is not evidence: some of these will be wrong, and a job with nothing suitable still gets whatever was nearest. The publishers have never heard of this abstract agent and have promised nothing about it. What a claim looks like is in the table above, and it is signed.
Not workers. These are capability that whatever does the job would use, which is a different relationship and kept in its own column for that reason.
- Pixero MCP server · ryanzambrano.github.io · hosted · mirrored from the MCP registry AI marketing agent for paid social: Meta ads campaigns, ad creative generation, lead delivery.
- fullrun MCP server · tuckerschreiber.github.io · run it yourself · mirrored from the MCP registry Google Ads management for AI agents — diagnose, optimize, and manage campaigns.
- AdsAgent MCP server · nowork-studio.github.io · hosted · mirrored from the MCP registry Google Ads analysis and operations — read performance, manage keywords, bids, and campaigns.