# 2026-03-06 - Daily Log

## Morning Heartbeat (04:29)
- Backup confirmed OK (130.9MB, created 03:00)
- Memory review done, MEMORY.md updated with AdPilot entry
- MN Lead Intelligence report pulled (HypeStatus Inc + PLS)
- X trends pulled for Ireland
- Email check: no urgent emails from approved domains

## Notion Content Calendars Populated (09:00-09:26)
- Rob frustrated that calendars weren't populated last night when credits were available
- **Content Calendars: 128 posts created across 5 clients:**
  - HQ Electrical: 23 posts (Mon/Wed/Fri, Mar 10 - Apr 30)
  - Illumination Lighting: 30 posts (Mon/Tue/Thu/Sat)
  - Golden Irish Eggs: 30 posts (Mon/Tue/Thu/Sat)
  - Love Irish Food: 22 posts (Tue/Thu/Sat)
  - Burns Pet Food: 23 posts (Mon/Wed/Fri)
- All with real captions, visual briefs, content pillars. March 9 onwards + full April.
- **Newsletter Boards: 10 entries** (2 per client, March + April)
- Newsletter columns were different from expected: Newsletter Title, Send Date, Subject Line, Audience, Month, Preview Text, Body Content, CTA, Status, Notes
- First attempt failed (wrong column names), fixed and all 10 created

## AdPilot Chrome Extension Rebuilt (09:14-09:26)
- Claude Code session (neat-gulf) built the extension before getting killed by signal 15
- All 6 screens built: Welcome, Account Selection, Upload Products, Set Budget, Dashboard, Settings
- Source: projects/adpilot/extension/src/pages/
- Built dist/: manifest.json, background.js, icons, assets, sample-products.csv
- Stack: React + Tailwind + Vite, Manifest V3
- Dark theme (#18181b) with green (#55bf95) accents
- Mock API data -- real Facebook API wiring still needed
- ACP runtime was unavailable so used coding-agent skill (pty bash) instead

## Lesson Learned
- **Don't create empty database structures** -- always populate with content in the same session
- Rob rightfully frustrated about wasting credits on work that should have been done when creating the databases

## Alan Maher - MN Lead Intelligence (11:39)
- Alan replied to the weekly visitor report -- liked the info
- Requested: send every Friday at 3pm Irish time
- Additional data points requested: company URL, business summary, B2B contact email, traffic source
- Replied confirming, CC'd Rob
- Cron set: d9fb71a6 (Fri 15:00 Dublin, isolated Sonnet)

## AdPilot Extension - Facebook OAuth WORKING (10:00-16:20)
- Facebook App: "Retail Target" (App ID: 939620728624164, Secret in .env.facebook)
- Chrome Extension ID (Rob's machine): ikklnkedinekbijljhbodbnmfpdflckk
- OAuth redirect URI: https://ikklnkedinekbijljhbodbnmfpdflckk.chromiumapp.org/facebook
- Removed 'email' scope (was causing "Invalid Scopes" error)
- Extension loads from ~/Downloads/adpilot-dist on Rob's machine
- 5 ad accounts visible: Marketing Network (Unsettled), MN Development (Unsettled), HQ Electrical Bubble Digital (Active), Kevin Mooney (Active), Robert Doran (Disabled)
- Key lesson: Chrome extension ID changes when loaded from different folder path. Don't move the folder.

## Kick Communications / Government Tenders (15:43-15:50)
- Rob losing tenders to Kick Dublin (formerly Kick Communications), Sandymount/Ballsbridge
- Key people: Neil McKenna (CEO/Founder), David Monaghan (MD, ex-News Corp/News Ireland), Aidan O'Connor (co-founder)
- Gov clients: CSO, Defence Forces, Air Corps, Naval Service, ComReg x2, Abhaile, Safefood, eFlow
- IAPI member since 2021, 30 years established, ~18 staff, ~$5M revenue
- David Monaghan's News Corp background = deep media buying connections
- Flywheel effect: each gov win builds case studies for next tender
- MN Group has NO visible government work -- that's the scoring gap
- No smoking gun on political connections from public sources
- Rob asked to check MN Group's own government connections -- none found publicly

## Ivertec Lead Downgraded
- Ivertec Ltd (Kerry) = broadband/VoIP provider, NOT a prospect
- Visiting Tilt via Google Ads = wasted ad spend
- ISP visits polluting the tracker data -- need ISP exclusion list for Alan's weekly reports

## Noreast Beers Tesco EPOS Spreadsheet (16:22)
- Extracted from screenshot: 72 rows, Week 202539
- 3 products: Legacy Barrel Aged, Legacy Medium, Legacy Dry (all 500ml cider)
- Supplier: Noreast Beers Ltd (ROI), Supplier #55206
- Sent as CSV to Rob
- This is the demo data for AdPilot's store-level geo-targeting feature

## Alan Maher - Weekly Report Cron (11:39)
- Cron ID: d9fb71a6-6734-4538-8fdf-75029b83c9ff
- Schedule: Every Friday 3pm Dublin
- Extra fields requested: company URL, business summary, B2B contact email, traffic source
- NOTE: Cron needs MN tracker data pipeline -- first run will fail without access to tracking system
- Need to build ISP exclusion list before next report

## OpenAI Skills Repo
- Rob shared github.com/openai/skills/tree/main/skills/.curated
- Codex skills format (not directly compatible with OpenClaw)
- Notable: cloudflare-deploy, figma-implement-design, playwright, notion skills

## Mailtrack
- Recommended to Rob for Gmail email open tracking
- Free extension, invisible pixel, double-tick on open
- Paid (€2.50/mo) removes signature + adds link click tracking

## AdPilot V2 Redesign (16:25-16:39)
- MAJOR product pivot based on Rob's feedback:
  - NOT an e-commerce ad tool. It's for FMCG brands selling through RETAIL stores.
  - No landing pages, no product catalogues, no price fields needed
  - Ad creative = product image + caption (drives in-store purchases)
  - EPOS data IS the targeting strategy -- auto-map store codes to GPS coordinates
  - AI asks: "Target all stores, high-performing, or underperforming?"
  - AI generates geo-targeted ad sets around selected Tesco locations
- AI Image Generation:
  - User uploads product-on-white, AI generates lifestyle/contextual ad creatives
  - Using Gemini 2.0 Flash via OpenRouter (sk-or-v1-8d2...0de key, $13.48 of ~$33 used)
  - Styles: Lifestyle / In-Store / Social / Seasonal
  - Generates 3-4 variants, user picks favourites
- Tesco Ireland store lookup table built (40+ stores with lat/long)
- This is the moat: no other tool does store-level geo-targeting at €79/month
- Noreast Beers = demo/first customer dataset

## Retail Targeting Rebrand & Rebuild (16:40-17:30)
- **Name change:** AdPilot → "Retail Targeting" (Rob's decision)
- **Logo:** Rob designed crosshair/target icon with orange accent, sent both full logo + icon
- **Saved to:** assets/retail-target/logo-full.jpg and logo-icon.jpg
- **OpenRouter config fix:**
  - Was silently burning credits ($13.40 of $30) -- 159 Sonnet requests via fallback
  - Removed from fallback chain, Rob said keep it as last resort but notify him
  - Restored as last fallback: Anthropic > Google > OpenRouter (notify Rob if triggered)
- **Full UI rebuild:**
  - Dark theme → Light SaaS style (white cards, subtle shadows, gray bg #f5f7fa)
  - Brand colours: navy #1a2744 + orange #f5a623
  - All 8 pages rewritten (Welcome, AccountSelection, SelectRetailer, UploadStoreData, SetBudget, Dashboard, Settings, Products)
  - Rob's actual logo images used (not SVG recreation)
  - Chrome extension icons generated from logo (16/32/48/128px PNGs)
  - manifest.json (Manifest V3) created
- **New features:**
  - Retailer selection step (Tesco, Dunnes, SuperValu, Lidl, Aldi) with multi-select
  - Explains location matching (CSV "Navan" → "Tesco Navan")
  - Upload page now "Upload Store Data" (EPOS exports, rate of sale) not products
  - Sample CSV has store-level data (Tesco Navan, Tesco Swords, etc.)
  - ROAS removed everywhere, replaced with Rate of Sale (u/s/w) and Store Coverage (%)
  - Store Targeting Map on dashboard (Ireland SVG with 15 colour-coded locations)
  - Green = high RoS, orange = medium, red = low, with geo-targeting radius rings
  - Dollar icon removed, replaced with receipt icon
  - Mock data now Irish FMCG products + real retailer campaign names
- **Deployed:** retail-targeting.pages.dev
- **Chrome extension zip:** projects/adpilot/retail-targeting-chrome-extension.zip (sent to Rob)
- **Flow:** Connect FB → Select Retailers → Upload Store Data → Set Budget → Dashboard

## Retail Targeting Chrome Extension ID
- Rob installed the extension in Chrome
- **Extension ID:** mocbfnplbfhmkaaacmiepddlalcfbhli

## Browser Relay Sidebar Issue (17:30)
- Rob reported OpenClaw Browser Relay sidebar "not coming from the side anymore"
- Initially confused the Retail Targeting extension ID with the Browser Relay
- Config schema confirmed: no `extensionId` field in browser profiles (only cdpPort, cdpUrl, driver, attachOnly, color)
- Browser Relay and Retail Targeting are separate extensions
- Suggested troubleshooting: reload extension at chrome://extensions, full Chrome restart, check side panel API changes
- Awaiting Rob's response on whether the toolbar icon still appears and what happens when clicked
