Systems behind the work.
Tools for the team, connections between platforms, and the infrastructure underneath. Two working systems in detail, followed by the other things on my desk.
Live platform data inside the team's AI tools
In daily use · Internal agency tooling
The work it supports
Account analysis starts with numbers held in different platforms. I built connectors so the paid media team can ask about an account through Claude and retrieve the underlying data without assembling each export manually.
The work is in-house and used by the team I lead. It is the basis of my AI integration work, not a claim about a portfolio of outside consulting projects.
What I built
The MCP servers connect to Google Ads, GA4, Google Merchant Center, Meta Ads, Microsoft Ads, LinkedIn Ads and Google Tag Manager. The Google Ads tools cover tasks including keyword research, search terms, Shopping performance and budget analysis.
There are also connectors for Xero, HubSpot, Mailchimp, Toggl and Microsoft 365. That extends the same approach to accounting, CRM, email and documents.
What still needs a person
Fetching the platform's numbers does not make every explanation of them correct. The account, date range and metric definitions still need checking. A model can summarise a change without having evidence for its cause.
Context matters too. The shared account folder records decisions and stable facts so the next session starts with something useful. A colleague remains responsible for reviewing the work.
Related work: AI integrations for a business's existing tools. For a first project, use the process readiness worksheet.
A server between the event and its destinations
Production infrastructure · GTM, nginx and Cloudflare
The collection problem
Browser restrictions and disconnected tags make measurement harder to inspect. I built and maintain first-party tracking infrastructure for the agency's work, including an integration with Meta's Conversions API.
The useful change is having a controlled point between the incoming event and the platforms that receive it. The setup still depends on the source event being collected correctly.
The implementation
The GTM server containers run behind nginx and Cloudflare on infrastructure I maintain. Requests reach a first-party endpoint and enter the server container, where configured tags send data to the relevant destinations.
The Meta integration handles the server-to-server leg. Where a browser pixel also sends the event, the two paths need matching identifiers so the destination can deduplicate them.
The limits
A server cannot recreate missing source events or remove consent obligations. Moving collection also creates an operational dependency: hosting and forwarding must keep working, and a change to the website can still change the meaning of an event.
The server-side guide covers the wider trade-offs. The practical check is to trace a test journey through every stage and verify receipt, as set out in the GTM audit workflow.
For implementation and repairs, see the tracking service.
Other tools and ongoing work
Keyword planner
A tool for the sales team to explore keywords, search volumes and CPC ranges during discovery. It produces one-page exports for prospects. The first version was Python; I rebuilt it as a single-binary application to simplify deployment.
Analytics dashboard In development
A cross-account view of paid media performance, covering PMax reporting, product feeds and comparisons across the client base. This remains development work and is separate from the live connectors described above.
Self-hosted infrastructure
I maintain the hosting alongside the tools. It gives me control over deployment and the connections between services, with the corresponding responsibility for keeping them available.
Start with the process or the tracking problem.
A short description of the systems involved is enough to begin.