
I won’t pretend otherwise this has been quite a enlightening experience and surprisingly quite challenging both because I don’t have a very hard-core hands-on sorted development experience but also because this is a rapidly evolving space with framework evolution ADK framework from Google has been evolving there has been deprecated Python libraries since I started playing with this and also constructing an effective agent pipeline may be trivial with samples to get something working but when you’re trying to build something very specific and concrete. Suddenly you get to see an interesting number of peculiar edge cases — for my coding assitant that is.
The Joy of getting this right, i.e. Software Arch (revision 412.2)
The technical bit, when Building out the Data Architecture and API schema in an agentic pipeline, the single biggest predictor of reliable output is the shape of the data you hand each agent. 👈
A tight, published contract (like the one in ADR-003) does two things at once: it **locks in the context **(so every downstream agent sees the same company name, brand voice, audience, visual style, etc.) and it decouples the agents themselves (so you can swap Gemini for Claude, Imagen for Mid-journey, or even stub in a mock without breaking the call-chain). In practice that means every payload — success or error — must declare its schema up front, carry a “metadata” envelope that explains how it was produced, and explicitly surface cost-control or fallback status. If the ContentGenerationAgent can’t tell whether the BusinessAnalysisAgent ran in “flash-model” or “fallback” mode, you’ve already lost determinism.
Second, tight structure is the only way to keep your visual pipeline grounded. Imagen and Veo don’t just need a clever prompt; they need the exact nouns and adjectives the language model used when it described the campaign’s USP. By flowing one canonical business_context object straight through Business Analysis → Content Generation → Visual Content, you guarantee that the image of the product, the tagline on the post, and the call-to-action button all talk about the same thing. That’s the heart of #ContextEngineeringIsImportant: without an agreed-upon, version-controlled schema, you’ll spend your demo explaining why the sneaker ad shows a handbag.
Example 👇🏻
ok, Bear in mind — this is still Alpha I want to say alpha 😅 because I’m almost there but I cannot quite sign off on this as ” ready for production “
I followed the Three Musketeers pattern so that means you can kick it off with makefile targets. There is a Google Cloud hosting recommendation, or eventually it can be hosted on firebase I think it’s even a better option.
There is a testing target, documentation, runtime — the works.
Okay, I don’t have a fully hosted version and video is to be recorded so I will update this post in due course however I will give you a flavour of how this solution currently works
Which gives you an option to create one or more campaigns…
You can enter overrides and grounded context about the product or service, or simply provide the URLs with all this information for Gemini Model to scape and analyse.
After which, You get this Creative Guidance Screen with your Product/Service analysis, with all the relevant content guidances towards the intended audience (which you can override further down if you must)
Here you get to select, favourite the posts which (once generated successfully with preview) you can select for the sharing directly to social media or to schedule to be posted to social media accounts (the latter is part-implemented)
Final Step, — Select your favourites and proceed to sharing/scheduling
Last screen — on this user journey. Share to socials or schedule. part implemented. WIP
Whats next? (nevermind chasing my tail on HTTP 429 Errors, which made me question my reality a few times)
With the v1.0.1-alpha cut, the next sprint is all about pushing the prototype into the wild. Top of the backlog:
- Scheduling & Auto-Posting — build the ADK SchedulingAgent and wire it to cron-style background workers so posts actually leave the nest at the perfect time.
- Native Social Integrations — OAuth flows for LinkedIn, X/Twitter, Instagram and Facebook, each with rate-limit–aware publishing helpers.
- Cloud Foot-print — lift the FastAPI stack onto Cloud Run, move media to Cloud Storage, and swap SQLite for regional Firebase / PostgreSQL so multi-user workspaces can breathe.
quite a few. Leaving some nuggets here for reuse.
- Context-Engineering > Prompt-Hacking — pass a single, enriched business object through every agent; hallucinations drop, reuse climbs. (think ADRs and Cursorrules)
- Mock Early, Remove Relentlessly — mocks are scaffolding; leave them in too long and your API spec fossilises around them.
Batch Everything — one Gemini call that returns five posts is cheaper and faster than five calls; design prompts accordingly.
👉Don’t do what I did, and ended up calling a dozen times, for a dozen examples 💁🙈
- Visuals Need Storage, Not JSON — streaming 1.6 MB base-64 blobs will melt browsers; serve real PNGs over HTTP.
- Graceful Degradation Wins Demos — fallback images, helpful error objects and “retry in 30 s” messages kept the hackathon demo alive when quotas hiccupped.
- Treat ADRs as Living Logs — every grim detour (env-file typos, import hell) is one future PR reviewer’s life saved. (😎 This should be a Life hack by now!)
- Small UI Tweaks Beat Big Refactors — a glow effect on tiered columns did more for user comprehension than a week of copy rewrites.
‘Extend Existing Solution Architecture’, avoid adding features in silos.
If the idea of a DIY, agent-orchestrated marketing factory sparks your curiosity, jump into the repo, spin up a local stack with make launch-all, and tell me what breaks. I’m especially keen on battle-testing alternative agent frameworks (LangGraph, CrewAI, Autogen) against Google ADK — so if you’ve thrashed them in anger, I’d love benchmarks and war-stories.
https://github.com/jpantsjoha/Agentic-Marketing-Campaign-Generator
Hit ⭐ on GitHub, open an issue, or drop a PR: whether it’s polishing the scheduler, adding a TikTok connector, or sketching a Grafana dashboard, every contribution nudges this from hackathon hero to production heroics. What are you shipping next?
Let’s build in the open and learn faster — together.
JP
Source Credit: https://medium.com/google-cloud/build-your-own-marketing-ai-campaign-generator-with-gemini-ba0e7fde6169?source=rss—-e52cf94d98af—4