wiki/clients/current/doudlah-farms/2026-03-11-inventory-performance-marketing.md · 1320 words · 2026-04-05
Overview
Weekly team call covering Doodle Farm Amazon performance and inventory risk, followed by live demonstrations of an agentic AI tool (Claude Code) performing Google Ads optimizations on the Scallon and AHS accounts. Attendees: Gilbert Barrongo, Sebastian Gant, Karly Oykhman, Mark Hope.
Source: Fathom recording
Key Decisions
- Pause Scallon competitor campaign and reallocate its budget to better-performing ad groups (brand and retirement). CPA on the competitor campaign had risen to $98 on a single conversion — not worth the spend at current budget levels.
- Switch Scallon bidding to Maximize Conversions. Account has sufficient conversion history; continuing with Maximize Clicks was leaving performance on the table.
- Fix AHS WP Rocket setting immediately. The delayed JavaScript feature was blocking Google Tag Manager entirely, meaning zero form submission conversions were being recorded. AI logged into the site and corrected the setting during the call.
- Nag Jason (Doodle Farm filler) for earlier delivery. Old World white popcorn is at zero stock; current ETA is March 25. Karly will push for an earlier date and schedule the Amazon FBA pickup.
Action Items
- [ ] Email Jason re: expedite Old World Popcorn delivery; target earlier than Mar 25 — @Karly Oykhman
- [ ] Schedule Amazon FBA pickup for Old World Popcorn (Mar 25); create shipment worksheet — @Karly Oykhman
- [ ] Email Melissa re: Scallon landing page improvements — @Mark Hope
- [ ] Schedule 1-hour call with Gilbert to set up Claude Code / AI audit tools on his machine — @Mark Hope
| Metric |
Value |
| ROAS |
347% (up from 335% prior week) |
| Ad spend trend |
Declining since early February |
| Organic units |
Increasing |
| Projected March revenue |
~$127k (based on $41k in first 10 days) |
Margin is running in the high 30s–40% on a daily basis; shipment costs compress the reported 30-day figure to just below 30%.
Inventory Risk — Old World White Popcorn
- Status: Zero stock as of call date. Approximately 40 bags remain — effectively nothing.
- Root cause: New filler (Lucy) switched away from Justin's packing operation and needed to reorder bags compatible with her own fill process. Bags arrived the day before the call.
- ETA: Jason confirmed March 25 as earliest delivery. Karly to push for earlier.
- Financial exposure: At ~$4k/day run rate, a two-week stockout risks the full ~$127k March projection and erodes brand equity built through sustained ad investment.
- Other SKUs: Black beans and Doodle popcorn stockouts have been resolved; Old World is the only remaining gap.
Problem
Conversions dropped from ~70/month to 23 last month. Impressions also declined sharply. No keyword changes had been made by the team.
AI Diagnosis (Claude Code)
The tool pulled account data via the Google Ads API and identified:
- Competitor campaign: CPA had risen to $98 on a single conversion. CPC jumped from ~$2–3 to ~$7 as competitors increased bids on their own branded terms, crowding out Scallon's ads.
- Bidding strategy mismatch: Both campaigns were on Maximize Clicks despite having sufficient conversion history to support Maximize Conversions.
- Conversion action bloat: 6 primary conversion actions were diluting the bidding signal.
- Keyword gaps: Location-specific searches were converting well in search term reports but lacked dedicated keywords. Memory care terms were appearing frequently with no corresponding keywords.
Changes Made (by AI, during call)
- Paused competitor ad group; reallocated budget proportionally to brand ($35→$47/day) and retirement ($20→$28/day) campaigns based on relative performance.
- Consolidated primary conversion actions from 6 to 2 (lead form submission + phone call); demoted remaining 4 to secondary.
- Added 74 negative keywords across campaigns (competitor names, out-of-area locations, wrong-intent terms).
- Added 27 location-specific keywords (nearby cities with demonstrated conversion history in search term report).
- Switched bidding strategy to Maximize Conversions on both active campaigns.
- Flagged health policy violations on memory care terms (e.g., "memory care near me," "dementia care") before adding — avoided a policy flag.
Note: The AI incorrectly added "Heights" as a negative keyword (Scallon Heights is a location reference on the site). Mark caught this and had it reversed. Always review AI-generated negative keyword lists before accepting.
Output
A PDF summary report was generated and posted automatically to the Scallon Slack channel.
Next Steps
- Monitor conversion volume over the next 2–3 weeks.
- After sufficient data accumulates, consider adding a target CPA of ~$40.
- Send landing page improvement recommendations to Melissa (Scallon contact). Current pages are not optimized; quality scores are a drag on campaign performance.
AHS (Advanced Health & Safety) — Automated Audit & AI Demo
Process
Mark ran the Google-Ads-Audit skill against the AHS account. The tool recalled prior audit notes, loaded the client strategy profile, then ran a multi-phase audit in parallel across Google Ads, Google Analytics, Google Search Console, and the AHS website.
Critical Finding — Broken Conversion Tracking
WP Rocket's "Delay JavaScript Execution" feature was blocking Google Tag Manager. Because GTM was not loading, zero form submission conversions were being recorded for the past 30 days. This is a recurring issue across WordPress sites using WP Rocket.
- Fix: The AI logged into the AHS WordPress admin, located the WP Rocket settings, and added GTM to the exclusion list. It then cleared the site cache.
- Impact: All form submission conversion data was effectively dark prior to this fix. Historical conversion counts for AHS should be interpreted with this in mind.
See also: [1] (pattern observed across multiple clients)
Other Findings
| Finding |
Detail |
| Conversion action bloat |
8 of 9 conversion actions marked Primary — diluting Smart Bidding signal |
| DSA campaign mismatch |
Asbestos-focused DSA campaign matching irrelevant terms (e.g., "mold killer," "water restoration") |
| Display budget share |
Display campaign consuming 38% of total budget |
| Bidding strategy |
Campaigns on Maximize Clicks despite available conversion data |
Output
A 15-page PDF audit report was generated and posted automatically to the AHS Slack channel.
Remaining Next Steps (post-call)
Mark continued instructing the AI to execute remaining recommendations (conversion action consolidation, DSA negative keywords, display budget reallocation) after the call ended.
Mark demonstrated Claude Code, an agentic AI setup running locally on his machine. Key characteristics discussed:
- Local execution, cloud intelligence: Runs on Mark's computer but uses the Claude API (Anthropic team account).
- Tool library: ~100 tools covering Google Ads API, Google Analytics, Search Console, Slack, website login via MCP servers, PDF generation, and more.
- Skills: Reusable instruction sequences (e.g.,
Google-Ads-Audit) that run multi-step workflows without manual prompting at each step.
- Memory: The tool does not retain memory between sessions automatically. It reads and writes to files (client profiles, audit notes, strategy docs) to persist context. After each session, it should be instructed to update its notes file.
- Parallel subagents: For complex audits, it spawns parallel processes to run multiple analysis phases simultaneously, reducing total runtime to ~10–15 minutes.
- Guardrails: A permissions file specifies what the AI is and is not allowed to do autonomously. Anything outside those bounds requires explicit approval.
- Error handling: When an API call fails, it retries with alternative approaches rather than stopping. It self-corrects and logs what worked for future runs.
- Output: Reports in PDF (or Markdown/Word on request), posted directly to the relevant Slack channel.
Gilbert setup: Mark and Gilbert to schedule a 1-hour call for Gilbert to install and configure Claude Code on his own machine.