A new model will be trained for every new ad update?
You could even have something like an MCP to which the LLM could pass "topics", and then it would return products/opinions which it should "subtly" integrate into its response.
The MCP could even be system-level/"invisible" (e.g. the user doesn't see the tool use for the ad server in the web UI for ChatGPT/Claude/Gemini.)