Ad network MCP guide
Connect Kayzen to Claude or ChatGPT with Lemon AI’s unified MCP and API. Compare attributed value without inventing missing conversion counts.
Connect Kayzen to Lemon AI, then authorize Lemon's MCP in Claude or ChatGPT to query creative performance and attributes. This gives the assistant the available Kayzen data alongside your other connected networks, without asking you to assemble a fresh export for each follow-up.
For a Kayzen revenue question, identify the outcome's attribution source, cohort window, and reporting grain before interpreting it. A value outcome can support a return-on-spend calculation even when the same interface does not expose a purchase count. It cannot support an invented cost per purchase.
Direct Kayzen reporting or a unified interface
| Route | Appropriate use | What remains your responsibility |
|---|---|---|
| Uploaded Kayzen report | Inspect a fixed slice of campaign data | Keep source definitions and refresh the export |
| Kayzen reporting API with an agent tool | Query Kayzen-specific dimensions and outcomes | Authentication, scope, pagination, and the tool implementation |
| Lemon MCP and API | Repeat creative and attribute analysis across connected networks | Discover available fields and preserve each outcome basis |
Kayzen's Report Data endpoint accepts reporting dates, metrics, grouping, and attribution parameters. Its cohort and attribution inputs matter to the meaning of a result. A direct agent tool should expose those choices rather than silently inheriting an unknown default.
For direct integration, follow Kayzen's authentication documentation, request a small explicitly scoped report, and keep the provider credentials in the tool's configuration. The reporting endpoint is an API, not a remote MCP URL that you can paste directly into ChatGPT.
Connect Kayzen in Lemon
- Collect the account's API Key, API Secret, Username, Password, and Advertiser ID required by Lemon's Kayzen connection form.
- Open Connections, choose Kayzen, and enter those values in Lemon. Do not paste them into the AI conversation.
- Select the account to sync. Confirm the intended app, creative population, and dates in Creative Analytics.
- Open API & MCP to authorize Claude or ChatGPT against the shared Lemon server.
Network credentials remain part of the source connection. The assistant receives authorized reporting results through Lemon; it does not need your Kayzen login in a prompt.
Add Lemon to Claude or ChatGPT
Use the same remote MCP server for all the networks you connect in Lemon:
https://api.lemon-ai.com/mcp
In Claude, open Customize → Connectors → + Add → Add custom connector. Enter a name and the URL, continue, and sign in to Lemon. If Claude asks how to register the OAuth client, choose Register automatically. Enable the connector in the conversation. Organization-managed accounts may need an owner to add it first. See the Claude setup instructions.
In ChatGPT, open Plugins, choose Add custom MCP server, and enter the URL. Select OAuth authentication, authorize Lemon, and install the resulting personal plugin. Mention it in a Work chat to use its tools. Availability depends on your workspace settings; follow the current ChatGPT MCP instructions if the interface differs.
Start by asking the assistant to call list_ad_accounts and let you select the intended account. Then use list_filter_values to discover dates and filters. Your ad-network sign-in connects data to Lemon; this second authorization lets the AI app read it. Do not paste network credentials into chat.
Discover value outcomes before asking for ROAS
Use Lemon AI to list my Kayzen accounts and the outcome windows they expose. For the account I choose, retrieve creative cost and available value outcomes over a complete, mature period. Calculate ROAS only where the matching value and cost are available. Do not invent installs or purchase counts.
Lemon's Kayzen outcome capability is value-only for the supported post-install windows. Discover the account's advertised suffixes and check maturity rather than assuming every network has the same set. Use query_creative_performance for the bounded comparison and inspect the returned outcome metadata.
The response can support a value question without answering a count question. Keep that difference in the assistant's final table instead of replacing missing counts with zeros.
Value divided by cost does not reveal purchase count
Synthetic arithmetic, not customer data: a fictional creative has $200 cost and $80 in available, mature D7 value. Its D7 ROAS is $80 / $200 = 0.40, displayed as 40%.
| Quantity | Synthetic value | Can the assistant calculate it? |
|---|---|---|
| Cost | $200 | Supplied in this illustration |
| D7 value | $80 | Supplied in this illustration |
| D7 ROAS | 40% | Yes, from the two supplied values |
| Purchase count | Unavailable | No |
| Cost per purchase | Unavailable | No, the denominator is missing |
The missing purchase count is not zero. Nor can it be recovered by assuming an average purchase value. That would insert an unverified business assumption into a performance report and disguise it as source data.
When comparing with another network, check whether its “revenue” covers the same outcome type and maturity. The attribution-window guide explains why similarly labelled windows can answer different questions.
Use attributes to make the next question narrower
List the creative attributes in this Kayzen account. For the same dates and asset type, investigate CTR with attribute_insights. Show coverage, qualified creative counts, uncertainty, and the creative examples behind the finding.
Revisit the strongest attribute finding within the same campaign and country. Compare the available value outcomes separately, retaining their window and maturity. Is there enough evidence for a new creative test, or only an attention signal?
The first prompt examines a response-rate association. The second asks whether available downstream evidence supports the same direction. Neither requires the assistant to pretend a missing conversion count exists. If another network offers a useful comparison, the same Lemon MCP can discover and query it without another file handoff.
Use the same reporting layer through the API
For a script or another AI app, create a Lemon API key in API & MCP. Retrieve your account IDs with GET /v1/ad-accounts, then make a scoped read. This example uses a placeholder account and dates; substitute values returned for your account.
curl --get 'https://api.lemon-ai.com/v1/creatives/performance' \
--header "Authorization: Bearer $LEMON_API_KEY" \
--data-urlencode 'ad_network_account_id=YOUR_ACCOUNT_ID' \
--data-urlencode 'date_from=2026-10-01' \
--data-urlencode 'date_to=2026-10-07' \
--data-urlencode 'metric=impressions' \
--data-urlencode 'metric=clicks' \
--data-urlencode 'metric=cost' \
--data-urlencode 'sort_by=cost' \
--data-urlencode 'sort_order=descending' \
--data-urlencode 'limit=25'
MCP and REST expose Lemon's reporting definitions. Inspect missing fields, result limits, and any outcome metadata before interpreting a result. A limited top-creatives response is not an account total. Use the API documentation for supported fields and pagination.
Troubleshoot authorization, value coverage, and timing
An authorization failure calls for checking the credential set and advertiser ID. A missing recent period calls for checking sync status and available dates. An unavailable purchase count is a capability boundary, not an authentication failure.
If ROAS differs from a source report, align the report grain, date boundary, attribution parameters, and maturity before comparing the numbers. If the requested scope contains too many creatives, narrow the filters before drawing conclusions from a truncated ranking.
Connect your ad accounts to build a recurring analysis workflow. See Reports and API for the product surface and the MCP guide for the shared architecture.