[{"data":1,"prerenderedAt":2431},["ShallowReactive",2],{"docs-search-nav":3,"docs:all":80},[4],{"title":5,"path":6,"stem":7,"children":8,"page":18},"Docs","\u002Fdocs","docs",[9,19,68,72,76],{"title":10,"path":11,"stem":12,"children":13,"page":18},"Agents","\u002Fdocs\u002Fagents","docs\u002Fagents",[14],{"title":15,"path":16,"stem":17},"Upload ad creatives from an AI agent","\u002Fdocs\u002Fagents\u002Fupload-creative-media","docs\u002Fagents\u002Fupload-creative-media",false,{"title":20,"path":21,"stem":22,"children":23,"page":18},"Clients","\u002Fdocs\u002Fclients","docs\u002Fclients",[24,28,32,36,40,44,48,52,56,60,64],{"title":25,"path":26,"stem":27},"Connect Claude to AdKit","\u002Fdocs\u002Fclients\u002Fclaude","docs\u002Fclients\u002F1.claude",{"title":29,"path":30,"stem":31},"Connect Hermes to AdKit","\u002Fdocs\u002Fclients\u002Fhermes","docs\u002Fclients\u002F10.hermes",{"title":33,"path":34,"stem":35},"Connect n8n to AdKit","\u002Fdocs\u002Fclients\u002Fn8n","docs\u002Fclients\u002F11.n8n",{"title":37,"path":38,"stem":39},"Connect Claude Cowork to AdKit","\u002Fdocs\u002Fclients\u002Fclaude-cowork","docs\u002Fclients\u002F2.claude-cowork",{"title":41,"path":42,"stem":43},"Connect ChatGPT to AdKit","\u002Fdocs\u002Fclients\u002Fchatgpt","docs\u002Fclients\u002F3.chatgpt",{"title":45,"path":46,"stem":47},"Connect Perplexity to AdKit","\u002Fdocs\u002Fclients\u002Fperplexity","docs\u002Fclients\u002F4.perplexity",{"title":49,"path":50,"stem":51},"Connect Claude Code to AdKit","\u002Fdocs\u002Fclients\u002Fclaude-code","docs\u002Fclients\u002F5.claude-code",{"title":53,"path":54,"stem":55},"Connect Codex to AdKit","\u002Fdocs\u002Fclients\u002Fcodex","docs\u002Fclients\u002F6.codex",{"title":57,"path":58,"stem":59},"Connect Cursor to AdKit","\u002Fdocs\u002Fclients\u002Fcursor","docs\u002Fclients\u002F7.cursor",{"title":61,"path":62,"stem":63},"Connect Gemini CLI to AdKit","\u002Fdocs\u002Fclients\u002Fgemini","docs\u002Fclients\u002F8.gemini",{"title":65,"path":66,"stem":67},"Connect OpenClaw to AdKit","\u002Fdocs\u002Fclients\u002Fopenclaw","docs\u002Fclients\u002F9.openclaw",{"title":69,"path":70,"stem":71},"Getting started with AdKit","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",{"title":73,"path":74,"stem":75},"Connecting multiple ad accounts","\u002Fdocs\u002Fmultiple-accounts","docs\u002Fmultiple-accounts",{"title":77,"path":78,"stem":79},"Connect your ad accounts","\u002Fdocs\u002Fplatforms","docs\u002Fplatforms",[81,352,660,1045,1125,1233,1333,1445,1540,1647,1794,1882,2125,2232,2349],{"id":82,"title":15,"body":83,"description":340,"extension":341,"icon":342,"iconInvert":18,"meta":343,"navTitle":344,"navigation":345,"path":16,"related":346,"section":347,"sectionOrder":182,"seo":348,"stem":17,"type":349,"updatedAt":350,"wip":18,"__hash__":351},"docs\u002Fdocs\u002Fagents\u002Fupload-creative-media.md",{"type":84,"value":85,"toc":336},"minimark",[86,90,98,103,109,298,302,332],[87,88,89],"p",{},"Drag an image or video into your AI agent, ask it to upload to Meta Ads or Google Ads, and AdKit handles the rest. You get back a media ID ready to use in your ads.",[87,91,92,93,97],{},"For larger files, AdKit uses a direct upload flow that requires your agent to reach ",[94,95,96],"code",{},"*.adkit.so",". Most agents block unknown domains by default, so you'll need to allowlist it. Pick your agent below.",[99,100,102],"h2",{"id":101},"whitelist-adkits-upload-domain","Whitelist AdKit's upload domain",[87,104,105,106,108],{},"Add ",[94,107,96],{}," to your agent's allowed domains. This lets the agent use AdKit's direct upload flow, which bypasses the file size limits of inline transfer.",[110,111,113,148,247,274,285],"agent-tabs",{"default":112},"claude",[114,115,117,141],"template",{"v-slot:claude":116},"",[87,118,119,120,129,130,133,134,136,137,140],{},"Go to ",[121,122,123],"strong",{},[124,125,128],"a",{"href":126,"target":127},"https:\u002F\u002Fclaude.ai\u002Fsettings\u002Fcapabilities#Code%20execution%20and%20file%20creation:~:text=Additional%20allowed%20domains","_blank","Settings > Capabilities",", turn on ",[121,131,132],{},"Allow network egress",", then add ",[94,135,96],{}," under ",[121,138,139],{},"Additional allowed domains",".",[87,142,143],{},[144,145],"img",{"alt":146,"src":147},"Claude settings showing *.adkit.so added to Additional allowed domains","\u002Fdocs\u002Fagents\u002Fclaude-domain-allowlist.png",[114,149,150,163,236],{"v-slot:claude-code":116},[87,151,105,152,154,155,158,159,162],{},[94,153,96],{}," to the ",[94,156,157],{},"allowedHosts"," array in your project's ",[94,160,161],{},".claude\u002Fsettings.json",":",[164,165,169],"pre",{"className":166,"code":167,"language":168,"meta":116,"style":116},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n    \"permissions\": {\n        \"allowedHosts\": [\"*.adkit.so\"]\n    }\n}\n","json",[94,170,171,180,198,224,230],{"__ignoreMap":116},[172,173,176],"span",{"class":174,"line":175},"line",1,[172,177,179],{"class":178},"sMK4o","{\n",[172,181,183,186,190,193,195],{"class":174,"line":182},2,[172,184,185],{"class":178},"    \"",[172,187,189],{"class":188},"spNyl","permissions",[172,191,192],{"class":178},"\"",[172,194,162],{"class":178},[172,196,197],{"class":178}," {\n",[172,199,201,204,207,209,211,214,216,219,221],{"class":174,"line":200},3,[172,202,203],{"class":178},"        \"",[172,205,157],{"class":206},"sBMFI",[172,208,192],{"class":178},[172,210,162],{"class":178},[172,212,213],{"class":178}," [",[172,215,192],{"class":178},[172,217,96],{"class":218},"sfazB",[172,220,192],{"class":178},[172,222,223],{"class":178},"]\n",[172,225,227],{"class":174,"line":226},4,[172,228,229],{"class":178},"    }\n",[172,231,233],{"class":174,"line":232},5,[172,234,235],{"class":178},"}\n",[87,237,238,239,242,243,246],{},"You can also add it to ",[94,240,241],{},"~\u002F.claude\u002Fsettings.json"," if you want it allowed across all projects, or to ",[94,244,245],{},".claude\u002Fsettings.local.json"," for just your machine.",[114,248,249,257],{"v-slot:codex":116},[87,250,105,251,253,254,162],{},[94,252,96],{}," to your network domain permissions in ",[94,255,256],{},".codex\u002Fconfig.toml",[164,258,262],{"className":259,"code":260,"language":261,"meta":116,"style":116},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[permissions.default.network.domains]\n\"*.adkit.so\" = \"allow\"\n","toml",[94,263,264,269],{"__ignoreMap":116},[172,265,266],{"class":174,"line":175},[172,267,268],{},"[permissions.default.network.domains]\n",[172,270,271],{"class":174,"line":182},[172,272,273],{},"\"*.adkit.so\" = \"allow\"\n",[114,275,276],{"v-slot:cursor":116},[87,277,105,278,280,281,284],{},[94,279,96],{}," to your MCP server's allowed hosts. In ",[94,282,283],{},".cursor\u002Fmcp.json",", make sure your AdKit server config includes the domain, or add it to your project's network allowlist in Cursor settings.",[114,286,287,290],{"v-slot:other":116},[87,288,289],{},"Paste this into your agent and it will figure out the best approach for your setup:",[164,291,296],{"className":292,"code":294,"language":295},[293],"language-text","AdKit has an MCP tool for uploading creatives that sends the file as base64 in\nthe tool call. If you can handle large base64 payloads, that's the simplest\npath.\n\nIf not, AdKit also supports temporary signed upload URLs: you request a URL from\nAdKit, then upload the file directly via fetch\u002Fcurl\n\nWhich approach works best for you, and do I need to configure anything (like\ndomain allowlisting for *.adkit.so) to make it work?\n","text",[94,297,294],{"__ignoreMap":116},[99,299,301],{"id":300},"common-questions","Common questions",[303,304,306,314,320,326],"accordion",{"type":305},"single",[307,308,311],"accordion-item",{"icon":309,"label":310},"fa6-solid:circle-question","What if the agent says the upload link expired?",[87,312,313],{},"Upload links are temporary. Just ask the agent to start the upload again. It will request a new link automatically.",[307,315,317],{"icon":309,"label":316},"Which agents work with AdKit?",[87,318,319],{},"Any agent that supports an AdKit connector: Claude, Claude Code, Codex, ChatGPT, and others. Local agents (CLI-based) usually work without any config. Cloud-hosted agents need the domain allowlisted first.",[307,321,323],{"icon":309,"label":322},"What media formats are supported?",[87,324,325],{},"AdKit passes your file to Meta or Google as-is. Generally: JPEG, PNG, and MP4 for most ad types. Check your ad platform's creative specs for exact requirements.",[307,327,329],{"icon":309,"label":328},"How do I know the upload worked?",[87,330,331],{},"The agent returns a media ID from the ad platform. For Meta, that's an image hash or video ID. For Google, it's an asset ID. You can verify by asking the agent to list your account's media.",[333,334,335],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":116,"searchDepth":182,"depth":182,"links":337},[338,339],{"id":101,"depth":182,"text":102},{"id":300,"depth":182,"text":301},"Upload images and videos to Meta Ads or Google Ads from Claude, Codex, or any AI agent using AdKit. Includes domain allowlist setup for each client.","md","fa6-solid:cloud-arrow-up",{},"Upload creative media",true,null,"Using agents",{"title":15,"description":340},"guide","2026-05-06","xo5KFCBfobmTFbqIueWZhX57RtsDxhSLDbfQ4P-WLOg",{"id":353,"title":25,"body":354,"description":646,"extension":341,"icon":647,"iconInvert":18,"meta":648,"navTitle":649,"navigation":345,"path":26,"related":650,"section":656,"sectionOrder":175,"seo":657,"stem":27,"type":349,"updatedAt":658,"wip":18,"__hash__":659},"docs\u002Fdocs\u002Fclients\u002F1.claude.md",{"type":84,"value":355,"toc":638},[356,363,374,379,406,410,467,476,480,495,499,502,532,536,539,565,572,576,582,588,594,598,607,620,626,635],[87,357,358,359,362],{},"Connect Claude to AdKit with one MCP connector and manage ",[121,360,361],{},"Meta, Google, TikTok, and Reddit"," ads from a normal conversation: pull campaigns, draft changes, generate creatives, and research competitors.",[87,364,365,366,369,370,373],{},"There is ",[121,367,368],{},"one AdKit connector for every platform",". You do not add a separate connector for Google or Meta. The same ",[94,371,372],{},"adkit_manage"," tool handles all of them once the ad account is connected in AdKit.",[87,375,376,377,140],{},"Using Claude Cowork instead? See ",[124,378,37],{"href":38},[380,381,383,388],"note",{"icon":382},"fa6-solid:circle-info",[87,384,385],{},[121,386,387],{},"Prerequisites",[389,390,391,399],"ul",{},[392,393,394,395,398],"li",{},"A ",[121,396,397],{},"paid Claude plan"," (Pro, Max, Team, or Enterprise). Custom connectors are not available on the free tier.",[392,400,401,402,405],{},"An AdKit account with ",[124,403,404],{"href":78},"at least one ad account connected"," (Meta, Google, TikTok, or Reddit).",[99,407,409],{"id":408},"setup-2-minutes","Setup (2 minutes)",[411,412,413,445,457],"ol",{},[392,414,415,418,419,422,423,426,427,433,436,437,440,441,444],{},[121,416,417],{},"Add the connector."," In Claude, go to ",[121,420,421],{},"Customize → Connectors → Add Connector",". Name it ",[121,424,425],{},"AdKit"," and enter this URL:",[164,428,431],{"className":429,"code":430,"language":295,"meta":116},[293],"https:\u002F\u002Fmcp.adkit.so\n",[94,432,430],{"__ignoreMap":116},[434,435],"br",{},"Then enable it in a conversation: click ",[121,438,439],{},"+"," → ",[121,442,443],{},"Connectors"," → turn AdKit on.",[392,446,447,450,451],{},[121,448,449],{},"Ask Claude to connect."," Send this in a new chat:",[164,452,455],{"className":453,"code":454,"language":295,"meta":116},[293],"Use the AdKit connector and run the AdKit checkin tool with agentId: \"claude\".\nTell me if AdKit is connected and ready. If not, tell me how to connect it.\n",[94,456,454],{"__ignoreMap":116},[392,458,459,462,463,466],{},[121,460,461],{},"Done."," When Claude reports it's connected, you're ready. Ask it to ",[94,464,465],{},"list my ad accounts"," to confirm it can see them.",[468,469,470],"warning",{},[87,471,472,475],{},[121,473,474],{},"Team \u002F Enterprise workspaces:"," an admin has to add the connector from the workspace admin settings first. If you added it on your personal account but are chatting inside an org workspace, it won't appear. Add it in the workspace you actually use.",[99,477,479],{"id":478},"optional-allow-file-uploads","Optional: allow file uploads",[87,481,482,483,485,486,492,493,140],{},"Only needed if you want to upload ad creatives through Claude. Add ",[94,484,96],{}," to your ",[124,487,491],{"href":488,"rel":489},"https:\u002F\u002Fclaude.ai\u002Fsettings\u002Fcapabilities",[490],"nofollow","allowed domains"," so Claude can upload files directly. Full steps: ",[124,494,344],{"href":16},[99,496,498],{"id":497},"optional-install-ad-strategy-skills","Optional: install ad strategy skills",[87,500,501],{},"Teach Claude how to plan and run campaigns:",[164,503,507],{"className":504,"code":505,"language":506,"meta":116,"style":116},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx skills add adkit\u002Fskills --all -y -g\n","bash",[94,508,509],{"__ignoreMap":116},[172,510,511,514,517,520,523,526,529],{"class":174,"line":175},[172,512,513],{"class":206},"npx",[172,515,516],{"class":218}," skills",[172,518,519],{"class":218}," add",[172,521,522],{"class":218}," adkit\u002Fskills",[172,524,525],{"class":218}," --all",[172,527,528],{"class":218}," -y",[172,530,531],{"class":218}," -g\n",[99,533,535],{"id":534},"what-you-can-do","What you can do",[87,537,538],{},"Once connected, Claude can:",[389,540,541,547,553,559],{},[392,542,543,546],{},[121,544,545],{},"Manage campaigns:"," read live campaigns, draft budget, status, and targeting changes across Meta, Google, TikTok, and Reddit.",[392,548,549,552],{},[121,550,551],{},"Create ads:"," generate images and copy in AdKit Studio, then push them as drafts.",[392,554,555,558],{},[121,556,557],{},"Research competitors:"," search the ad library (500k+ ads, 1000+ advertisers).",[392,560,561,564],{},[121,562,563],{},"Analyze:"," pull performance and spot what needs attention.",[87,566,567,568,571],{},"Nothing goes live automatically. Every change is created as a ",[121,569,570],{},"draft"," for you to review and publish.",[99,573,575],{"id":574},"example-prompts","Example prompts",[164,577,580],{"className":578,"code":579,"language":295,"meta":116},[293],"Pull my active Meta campaigns and show me which ones are overspending this week.\n",[94,581,579],{"__ignoreMap":116},[164,583,586],{"className":584,"code":585,"language":295,"meta":116},[293],"Research my top 3 competitors' Facebook ads and summarize the angles they use.\n",[94,587,585],{"__ignoreMap":116},[164,589,592],{"className":590,"code":591,"language":295,"meta":116},[293],"Draft a new Google Search campaign for my SaaS, budget $30\u002Fday, and let me review before publishing.\n",[94,593,591],{"__ignoreMap":116},[99,595,597],{"id":596},"troubleshooting","Troubleshooting",[87,599,600,606],{},[121,601,602,603,605],{},"Claude only shows old or Meta-only tools (no ",[94,604,372],{},").","\nClaude is showing a cached tool list from a previous connection. Remove the AdKit connector and add it again so Claude re-fetches the current tools, then start a new chat.",[87,608,609,612,613,615,616,619],{},[121,610,611],{},"Claude says a platform \"isn't connected\" even though it is.","\nThere is no separate per-platform connector. Google and Meta share ",[94,614,372],{},". Confirm the ad account is connected in AdKit (ask Claude to run ",[94,617,618],{},"adkit_status","), then retry. If tools are missing, reconnect as above.",[87,621,622,625],{},[121,623,624],{},"The connector doesn't appear after installing.","\nYou likely installed it on a different Claude workspace (personal vs. org). Install it in the workspace you're chatting in. On Team\u002FEnterprise, an admin must add it first.",[87,627,628,629,634],{},"Still stuck? ",[124,630,633],{"href":631,"rel":632},"https:\u002F\u002Fapp.adkit.so",[490],"Reach out"," and we'll help.",[333,636,637],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":116,"searchDepth":182,"depth":182,"links":639},[640,641,642,643,644,645],{"id":408,"depth":182,"text":409},{"id":478,"depth":182,"text":479},{"id":497,"depth":182,"text":498},{"id":534,"depth":182,"text":535},{"id":574,"depth":182,"text":575},{"id":596,"depth":182,"text":597},"Connect Claude (web or Desktop) to AdKit via the MCP connector and manage Meta, Google, TikTok, and Reddit ads in natural language.","\u002Fimages\u002Flogos\u002Fclaude.svg",{},"Claude",[651,653],{"label":77,"to":78,"description":652},"Link Meta, Google, or TikTok so Claude has something to manage.",{"label":654,"to":70,"description":655},"Use AI agents with AdKit","What to do once the connector is set up.","Connect an agent",{"title":25,"description":646},"2026-06-07","-9nmERr0BiJjkSL58MBiFpzpuzh8hOvvEhWjiYmZjZM",{"id":661,"title":29,"body":662,"description":1033,"extension":341,"icon":1034,"iconInvert":345,"meta":1035,"navTitle":1036,"navigation":345,"path":30,"related":1037,"section":656,"sectionOrder":175,"seo":1042,"stem":31,"type":349,"updatedAt":1043,"wip":18,"__hash__":1044},"docs\u002Fdocs\u002Fclients\u002F10.hermes.md",{"type":84,"value":663,"toc":1029},[664,670,949,951,1013,1015,1020,1026],[87,665,666,667,669],{},"Connect Hermes to AdKit and manage ",[121,668,361],{}," ads. Pick the tab that matches where Hermes runs.",[671,672,673,737],"tabs",{},[674,675,678,681],"tabs-item",{"icon":676,"label":677},"fa6-solid:desktop","Local",[87,679,680],{},"Hermes on your own machine. Sign in through the browser, no API key needed.",[411,682,683,707,726],{},[392,684,685,688],{},[121,686,687],{},"Install the CLI:",[164,689,691],{"className":504,"code":690,"language":506,"meta":116,"style":116},"npm i -g @adkit\u002Fcli\n",[94,692,693],{"__ignoreMap":116},[172,694,695,698,701,704],{"class":174,"line":175},[172,696,697],{"class":206},"npm",[172,699,700],{"class":218}," i",[172,702,703],{"class":218}," -g",[172,705,706],{"class":218}," @adkit\u002Fcli\n",[392,708,709,712,713],{},[121,710,711],{},"Sign in."," This opens your browser to sign in to AdKit:",[164,714,716],{"className":504,"code":715,"language":506,"meta":116,"style":116},"adkit setup\n",[94,717,718],{"__ignoreMap":116},[172,719,720,723],{"class":174,"line":175},[172,721,722],{"class":206},"adkit",[172,724,725],{"class":218}," setup\n",[392,727,728,731],{},[121,729,730],{},"Give Hermes this prompt to confirm the connection:",[164,732,735],{"className":733,"code":734,"language":295,"meta":116},[293],"Help me set up AdKit.\n\n1. Run `adkit status` to confirm AdKit is connected.\n2. Run `adkit checkin --agent hermes`.\n\nTell me if AdKit is connected and ready. If not, tell me what failed.\n",[94,736,734],{"__ignoreMap":116},[674,738,741,747,827,837,850,939],{"icon":739,"label":740},"fa6-solid:server","Server \u002F VPS",[87,742,743,744,140],{},"On a server there is no browser to sign in with, so use an ",[121,745,746],{},"API key",[411,748,749,761,800,818],{},[392,750,751,754,755,760],{},[121,752,753],{},"Create a key."," Open ",[124,756,759],{"href":757,"rel":758},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fdevices?new",[490],"Devices & Keys"," in AdKit and create an API key. It is shown once, so copy it right away.",[392,762,763,766,767,789,791,792,795,796,799],{},[121,764,765],{},"Store the key in Hermes"," so it is injected into every run:",[164,768,770],{"className":504,"code":769,"language":506,"meta":116,"style":116},"hermes config set ADKIT_API_KEY adk_your_key\n",[94,771,772],{"__ignoreMap":116},[172,773,774,777,780,783,786],{"class":174,"line":175},[172,775,776],{"class":206},"hermes",[172,778,779],{"class":218}," config",[172,781,782],{"class":218}," set",[172,784,785],{"class":218}," ADKIT_API_KEY",[172,787,788],{"class":218}," adk_your_key\n",[434,790],{},"This writes to ",[94,793,794],{},"~\u002F.hermes\u002F.env",". (Or set ",[94,797,798],{},"export ADKIT_API_KEY=adk_your_key"," in the service environment.)",[392,801,802,804],{},[121,803,687],{},[164,805,806],{"className":504,"code":690,"language":506,"meta":116,"style":116},[94,807,808],{"__ignoreMap":116},[172,809,810,812,814,816],{"class":174,"line":175},[172,811,697],{"class":206},[172,813,700],{"class":218},[172,815,703],{"class":218},[172,817,706],{"class":218},[392,819,820,822],{},[121,821,730],{},[164,823,825],{"className":824,"code":734,"language":295,"meta":116},[293],[94,826,734],{"__ignoreMap":116},[87,828,829,832,833,836],{},[121,830,831],{},"Keep the key in the environment, not the chat."," The CLI reads ",[94,834,835],{},"ADKIT_API_KEY"," from where Hermes runs, so the key never lands in your transcript.",[87,838,839,842,843,846,847,162],{},[121,840,841],{},"Prefer MCP?"," Route Hermes through the ",[94,844,845],{},"mcp-remote"," proxy with a static auth header. Add this to your Hermes MCP config and replace ",[94,848,849],{},"adk_your_key",[164,851,855],{"className":852,"code":853,"language":854,"meta":116,"style":116},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","adkit:\n  command: npx\n  args:\n    - -y\n    - mcp-remote\n    - https:\u002F\u002Fmcp.adkit.so\n    - --header\n    - \"Authorization:Bearer adk_your_key\"\n  enabled: true\n","yaml",[94,856,857,865,875,882,890,897,905,913,927],{"__ignoreMap":116},[172,858,859,862],{"class":174,"line":175},[172,860,722],{"class":861},"swJcz",[172,863,864],{"class":178},":\n",[172,866,867,870,872],{"class":174,"line":182},[172,868,869],{"class":861},"  command",[172,871,162],{"class":178},[172,873,874],{"class":218}," npx\n",[172,876,877,880],{"class":174,"line":200},[172,878,879],{"class":861},"  args",[172,881,864],{"class":178},[172,883,884,887],{"class":174,"line":226},[172,885,886],{"class":178},"    -",[172,888,889],{"class":218}," -y\n",[172,891,892,894],{"class":174,"line":232},[172,893,886],{"class":178},[172,895,896],{"class":218}," mcp-remote\n",[172,898,900,902],{"class":174,"line":899},6,[172,901,886],{"class":178},[172,903,904],{"class":218}," https:\u002F\u002Fmcp.adkit.so\n",[172,906,908,910],{"class":174,"line":907},7,[172,909,886],{"class":178},[172,911,912],{"class":218}," --header\n",[172,914,916,918,921,924],{"class":174,"line":915},8,[172,917,886],{"class":178},[172,919,920],{"class":178}," \"",[172,922,923],{"class":218},"Authorization:Bearer adk_your_key",[172,925,926],{"class":178},"\"\n",[172,928,930,933,935],{"class":174,"line":929},9,[172,931,932],{"class":861},"  enabled",[172,934,162],{"class":178},[172,936,938],{"class":937},"sfNiH"," true\n",[87,940,941,942,945,946,948],{},"The native ",[94,943,944],{},"hermes mcp add --url"," path can be finicky. The ",[94,947,845],{}," proxy is the reliable route.",[99,950,597],{"id":596},[303,952,953,968,984,999],{},[307,954,957],{"icon":955,"label":956},"fa6-solid:terminal","adkit: command not found",[87,958,959,960,963,964,967],{},"The CLI is not installed in that environment. Run ",[94,961,962],{},"npm i -g @adkit\u002Fcli",", then try ",[94,965,966],{},"adkit status"," again. On a server, make sure it is installed in the same environment Hermes runs in.",[307,969,972],{"icon":970,"label":971},"fa6-solid:key","The agent can't see my key",[87,973,974,976,977,980,981,983],{},[94,975,835],{}," is not set where Hermes actually runs. Store it with ",[94,978,979],{},"hermes config set ADKIT_API_KEY adk_your_key"," so it lands in ",[94,982,794],{}," and gets injected into every run, or export it in the service environment.",[307,985,988],{"icon":986,"label":987},"gravity-ui:logo-mcp","MCP shows zero tools",[87,989,941,990,992,993,995,996,998],{},[94,991,944],{}," path can be finicky. Use the ",[94,994,845],{}," proxy config above with the ",[94,997,923],{}," header, and check the key is valid.",[307,1000,1003],{"icon":1001,"label":1002},"fa6-solid:rotate","Rotate or revoke a key",[87,1004,119,1005,1009,1010,1012],{},[124,1006,759],{"href":1007,"rel":1008},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fdevices",[490]," in AdKit to revoke a key and create a new one. Update the value in ",[94,1011,794],{}," (or your environment).",[99,1014,535],{"id":534},[87,1016,1017,1018,571],{},"Once connected, Hermes can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,1019,570],{},[87,1021,1022,1023,634],{},"Need a hand? ",[124,1024,633],{"href":631,"rel":1025},[490],[333,1027,1028],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":116,"searchDepth":182,"depth":182,"links":1030},[1031,1032],{"id":596,"depth":182,"text":597},{"id":534,"depth":182,"text":535},"Connect Hermes to AdKit with the CLI or an API key and manage Meta, Google, TikTok, and Reddit ads, whether Hermes runs locally or on a server.","\u002Fimages\u002Flogos\u002Fhermes.png",{},"Hermes",[1038,1040],{"label":73,"to":74,"description":1039},"Give each brand its own project and tell Hermes which one to use.",{"label":654,"to":70,"description":1041},"What to do once everything is connected.",{"title":29,"description":1033},"2026-06-08","AtqIrWL5KLpl7GLA-teURjZC-VbUzOFhI5qKHJ8BZwA",{"id":1046,"title":33,"body":1047,"description":1115,"extension":341,"icon":1116,"iconInvert":18,"meta":1117,"navTitle":1118,"navigation":345,"path":34,"related":1119,"section":656,"sectionOrder":175,"seo":1123,"stem":35,"type":349,"updatedAt":658,"wip":18,"__hash__":1124},"docs\u002Fdocs\u002Fclients\u002F11.n8n.md",{"type":84,"value":1048,"toc":1109},[1049,1055,1059,1066,1071,1074,1078,1090,1094,1097,1099,1104],[87,1050,1051,1052,1054],{},"Use AdKit inside n8n to automate your ",[121,1053,361],{}," ad workflows. There are two ways to connect, depending on how your workflow runs.",[99,1056,1058],{"id":1057},"recommended-mcp-server","Recommended: MCP server",[87,1060,1061,1062,1065],{},"Add an ",[121,1063,1064],{},"MCP Client"," node to your workflow and point it at the AdKit server:",[164,1067,1069],{"className":1068,"code":430,"language":295,"meta":116},[293],[94,1070,430],{"__ignoreMap":116},[87,1072,1073],{},"When the node first runs, AdKit asks you to sign in once to authorize it.",[99,1075,1077],{"id":1076},"for-unattended-workflows-api-key","For unattended workflows: API key",[87,1079,1080,1081,1085,1086,1089],{},"If your workflow runs on a schedule with no one around to sign in, use an API key instead. Create one under ",[124,1082,759],{"href":1083,"rel":1084},"https:\u002F\u002Fapp.adkit.so\u002Fsettings\u002Fdevices",[490]," in AdKit, then add it to an ",[121,1087,1088],{},"HTTP Request"," node as a bearer token.",[99,1091,1093],{"id":1092},"check-it-worked","Check it worked",[87,1095,1096],{},"Run a node that calls the AdKit check-in tool, or have your workflow list your connected ad accounts. If the accounts come back, you're connected.",[99,1098,535],{"id":534},[87,1100,1101,1102,571],{},"Once connected, n8n can pull your live campaigns, draft budget and targeting changes, and research competitors as part of a workflow. Nothing goes live on its own: every change is saved as a ",[121,1103,570],{},[87,1105,1022,1106,634],{},[124,1107,633],{"href":631,"rel":1108},[490],{"title":116,"searchDepth":182,"depth":182,"links":1110},[1111,1112,1113,1114],{"id":1057,"depth":182,"text":1058},{"id":1076,"depth":182,"text":1077},{"id":1092,"depth":182,"text":1093},{"id":534,"depth":182,"text":535},"Connect n8n workflows to AdKit through the MCP server or an API key and manage Meta, Google, TikTok, and Reddit ads.","\u002Fimages\u002Flogos\u002Fn8n.svg",{},"n8n",[1120,1122],{"label":73,"to":74,"description":1121},"Give each brand its own project and tell n8n which one to use.",{"label":654,"to":70,"description":1041},{"title":33,"description":1115},"VSacju-oDFkG95ChTR7XGXPnYvrqfG4I8ZZz-UH676s",{"id":1126,"title":37,"body":1127,"description":1223,"extension":341,"icon":647,"iconInvert":18,"meta":1224,"navTitle":1225,"navigation":345,"path":38,"related":1226,"section":656,"sectionOrder":175,"seo":1231,"stem":39,"type":349,"updatedAt":658,"wip":18,"__hash__":1232},"docs\u002Fdocs\u002Fclients\u002F2.claude-cowork.md",{"type":84,"value":1128,"toc":1217},[1129,1135,1138,1142,1175,1183,1185,1188,1193,1195,1205,1207,1212],[87,1130,1131,1132,1134],{},"Connect Claude Cowork to AdKit and manage ",[121,1133,361],{}," ads from a normal conversation. The one connector covers every platform once your ad account is connected in AdKit.",[87,1136,1137],{},"Adding the AdKit connector takes about a minute.",[99,1139,1141],{"id":1140},"setup","Setup",[411,1143,1144,1152,1163],{},[392,1145,1146,1148,1149,1151],{},[121,1147,417],{}," Go to ",[121,1150,421],{}," in Claude.",[392,1153,1154,1157,1158],{},[121,1155,1156],{},"Name it AdKit"," and enter this address:",[164,1159,1161],{"className":1160,"code":430,"language":295,"meta":116},[293],[94,1162,430],{"__ignoreMap":116},[392,1164,1165,1168,1169,1171,1172,1174],{},[121,1166,1167],{},"Turn it on."," In a conversation, click ",[121,1170,439],{},", open ",[121,1173,443],{},", and switch AdKit on.",[468,1176,1177],{},[87,1178,1179,1182],{},[121,1180,1181],{},"Team or Enterprise workspaces:"," an admin has to add the connector from the workspace admin settings first. If you added it on your personal account but are working inside an org workspace, it won't show up. Add it in the workspace you actually use.",[99,1184,1093],{"id":1092},[87,1186,1187],{},"Send this in a new conversation. It confirms Cowork can actually use AdKit:",[164,1189,1191],{"className":1190,"code":454,"language":295,"meta":116},[293],[94,1192,454],{"__ignoreMap":116},[99,1194,479],{"id":478},[87,1196,1197,1198,485,1200,492,1203,140],{},"Only needed if you want to upload ad creatives through Cowork. Add ",[94,1199,96],{},[124,1201,491],{"href":488,"rel":1202},[490],[124,1204,344],{"href":16},[99,1206,535],{"id":534},[87,1208,1209,1210,571],{},"Once connected, Cowork can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,1211,570],{},[87,1213,1022,1214,634],{},[124,1215,633],{"href":631,"rel":1216},[490],{"title":116,"searchDepth":182,"depth":182,"links":1218},[1219,1220,1221,1222],{"id":1140,"depth":182,"text":1141},{"id":1092,"depth":182,"text":1093},{"id":478,"depth":182,"text":479},{"id":534,"depth":182,"text":535},"Connect Claude Cowork to AdKit by adding the MCP connector and manage Meta, Google, TikTok, and Reddit ads in natural language.",{},"Claude Cowork",[1227,1229],{"label":25,"to":26,"description":1228},"The standard Claude web and Desktop setup.",{"label":73,"to":74,"description":1230},"Give each brand its own project and tell Claude which one to use.",{"title":37,"description":1223},"baWhtNQlbJ3hLKH-8DqwVNTY_CV4AMWwqRBzVXftaMA",{"id":1234,"title":41,"body":1235,"description":1323,"extension":341,"icon":1324,"iconInvert":345,"meta":1325,"navTitle":1326,"navigation":345,"path":42,"related":1327,"section":656,"sectionOrder":175,"seo":1331,"stem":43,"type":349,"updatedAt":658,"wip":18,"__hash__":1332},"docs\u002Fdocs\u002Fclients\u002F3.chatgpt.md",{"type":84,"value":1236,"toc":1318},[1237,1243,1245,1295,1297,1300,1306,1308,1313],[87,1238,1239,1240,1242],{},"Add AdKit to ChatGPT as an app, then manage ",[121,1241,361],{}," ads from a normal conversation. One app covers every platform once your ad account is connected in AdKit.",[99,1244,1141],{"id":1140},[411,1246,1247,1265,1279,1289],{},[392,1248,1249,1148,1252,1257,1258,129,1261,1264],{},[121,1250,1251],{},"Open Apps.",[124,1253,1256],{"href":1254,"rel":1255},"https:\u002F\u002Fchatgpt.com\u002F#settings\u002FConnectors",[490],"Settings → Apps"," in ChatGPT. If you don't see ",[121,1259,1260],{},"New App",[121,1262,1263],{},"Developer mode"," first, or ask your workspace admin to turn it on.",[392,1266,1267,1270,1271,1273,1274],{},[121,1268,1269],{},"Create a new app."," Click ",[121,1272,1260],{}," and paste this address:",[164,1275,1277],{"className":1276,"code":430,"language":295,"meta":116},[293],[94,1278,430],{"__ignoreMap":116},[392,1280,1281,1284,1285,1288],{},[121,1282,1283],{},"Finish setup."," Set authentication to ",[121,1286,1287],{},"OAuth",", review the warning, and create the app. If ChatGPT opens a browser window, sign in to AdKit to finish.",[392,1290,1291,1294],{},[121,1292,1293],{},"Add it to a chat."," Open a new chat and add AdKit from the tools or apps menu.",[99,1296,1093],{"id":1092},[87,1298,1299],{},"Send this in a new chat. It confirms ChatGPT can actually use AdKit, not just see the app:",[164,1301,1304],{"className":1302,"code":1303,"language":295,"meta":116},[293],"Use the AdKit app you just enabled and run the AdKit checkin tool with agentId: \"chatgpt\".\nIf sign-in is needed, send me the link and wait for me to finish.\nThen tell me if AdKit is connected and ready. If not, tell me what failed.\n",[94,1305,1303],{"__ignoreMap":116},[99,1307,535],{"id":534},[87,1309,1310,1311,571],{},"Once connected, ChatGPT can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,1312,570],{},[87,1314,1022,1315,634],{},[124,1316,633],{"href":631,"rel":1317},[490],{"title":116,"searchDepth":182,"depth":182,"links":1319},[1320,1321,1322],{"id":1140,"depth":182,"text":1141},{"id":1092,"depth":182,"text":1093},{"id":534,"depth":182,"text":535},"Add AdKit to ChatGPT as an app and manage Meta, Google, TikTok, and Reddit ads in plain language.","\u002Fimages\u002Flogos\u002Fopenai.png",{},"ChatGPT",[1328,1330],{"label":73,"to":74,"description":1329},"Give each brand its own project and tell ChatGPT which one to use.",{"label":654,"to":70,"description":1041},{"title":41,"description":1323},"XIYniTqRMQMOvljZ9UFRSe7x2I0Sb8LdVGyRc1SY10c",{"id":1334,"title":45,"body":1335,"description":1435,"extension":341,"icon":1436,"iconInvert":18,"meta":1437,"navTitle":1438,"navigation":345,"path":46,"related":1439,"section":656,"sectionOrder":175,"seo":1443,"stem":47,"type":349,"updatedAt":658,"wip":18,"__hash__":1444},"docs\u002Fdocs\u002Fclients\u002F4.perplexity.md",{"type":84,"value":1336,"toc":1430},[1337,1343,1345,1407,1409,1412,1418,1420,1425],[87,1338,1339,1340,1342],{},"Add AdKit to Perplexity as a custom connector, then manage ",[121,1341,361],{}," ads from a normal conversation. One connector covers every platform once your ad account is connected in AdKit.",[99,1344,1141],{"id":1140},[411,1346,1347,1360,1402],{},[392,1348,1349,1148,1352,1355,1356,1359],{},[121,1350,1351],{},"Open Connectors.",[121,1353,1354],{},"Account settings → Connectors"," in Perplexity. If you don't see ",[121,1357,1358],{},"+ Custom connector",", remote connectors aren't turned on for your account or workspace yet.",[392,1361,1362,1270,1365,1367,1368,1371,1372,1397],{},[121,1363,1364],{},"Add a remote connector.",[121,1366,1358],{},", choose ",[121,1369,1370],{},"Remote",", then fill in:",[389,1373,1374,1380,1386,1392],{},[392,1375,1376,1379],{},[121,1377,1378],{},"Name:"," AdKit",[392,1381,1382,1385],{},[121,1383,1384],{},"Authentication:"," OAuth",[392,1387,1388,1391],{},[121,1389,1390],{},"Transport:"," Streamable HTTP",[392,1393,1394],{},[121,1395,1396],{},"URL:",[164,1398,1400],{"className":1399,"code":430,"language":295,"meta":116},[293],[94,1401,430],{"__ignoreMap":116},[392,1403,1404,1406],{},[121,1405,1167],{}," Add the connector, then click the AdKit card to sign in to AdKit and enable it.",[99,1408,1093],{"id":1092},[87,1410,1411],{},"Send this in a new chat. It confirms Perplexity can actually use AdKit:",[164,1413,1416],{"className":1414,"code":1415,"language":295,"meta":116},[293],"Use the AdKit connector you just added and run the AdKit checkin tool with agentId: \"perplexity\".\nIf sign-in is needed, send me the link and wait for me to finish.\nThen tell me if AdKit is connected and ready. If not, tell me what failed.\n",[94,1417,1415],{"__ignoreMap":116},[99,1419,535],{"id":534},[87,1421,1422,1423,571],{},"Once connected, Perplexity can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,1424,570],{},[87,1426,1022,1427,634],{},[124,1428,633],{"href":631,"rel":1429},[490],{"title":116,"searchDepth":182,"depth":182,"links":1431},[1432,1433,1434],{"id":1140,"depth":182,"text":1141},{"id":1092,"depth":182,"text":1093},{"id":534,"depth":182,"text":535},"Add AdKit to Perplexity as a custom connector and manage Meta, Google, TikTok, and Reddit ads in plain language.","\u002Fimages\u002Flogos\u002Fperplexity.png",{},"Perplexity",[1440,1442],{"label":73,"to":74,"description":1441},"Give each brand its own project and tell Perplexity which one to use.",{"label":654,"to":70,"description":1041},{"title":45,"description":1435},"IJYHST4VQ1UvyIOijwY4R2fcuzduJZ2wXMBi2mj5sF0",{"id":1446,"title":49,"body":1447,"description":1530,"extension":341,"icon":1531,"iconInvert":18,"meta":1532,"navTitle":1533,"navigation":345,"path":50,"related":1534,"section":656,"sectionOrder":175,"seo":1538,"stem":51,"type":349,"updatedAt":658,"wip":18,"__hash__":1539},"docs\u002Fdocs\u002Fclients\u002F5.claude-code.md",{"type":84,"value":1448,"toc":1525},[1449,1455,1459,1462,1468,1472,1511,1513,1518,1523],[87,1450,1451,1452,1454],{},"Connect Claude Code to AdKit and manage ",[121,1453,361],{}," ads from the terminal. Pick the CLI path (recommended) or the MCP server.",[99,1456,1458],{"id":1457},"recommended-let-claude-code-set-it-up","Recommended: let Claude Code set it up",[87,1460,1461],{},"Paste this into Claude Code. It installs the AdKit CLI and connects it for you:",[164,1463,1466],{"className":1464,"code":1465,"language":295,"meta":116},[293],"Help me set up AdKit.\n\n1. Install the CLI: npm i -g @adkit\u002Fcli\n2. Run `adkit setup` and send me the login URL so I can finish authentication.\n3. Wait for me to finish login in the browser.\n4. Run `adkit checkin --agent claude-code`.\n5. Tell me if AdKit is connected and ready. If not, tell me what failed.\n\nIf you cannot install or run the AdKit CLI here, stop and tell me to use the MCP setup instead.\n",[94,1467,1465],{"__ignoreMap":116},[99,1469,1471],{"id":1470},"alternative-mcp-server","Alternative: MCP server",[411,1473,1474,1502],{},[392,1475,1476,1477],{},"Add the server in Claude Code:",[164,1478,1480],{"className":504,"code":1479,"language":506,"meta":116,"style":116},"claude mcp add --transport http adkit https:\u002F\u002Fmcp.adkit.so\n",[94,1481,1482],{"__ignoreMap":116},[172,1483,1484,1486,1489,1491,1494,1497,1500],{"class":174,"line":175},[172,1485,112],{"class":206},[172,1487,1488],{"class":218}," mcp",[172,1490,519],{"class":218},[172,1492,1493],{"class":218}," --transport",[172,1495,1496],{"class":218}," http",[172,1498,1499],{"class":218}," adkit",[172,1501,904],{"class":218},[392,1503,1504,1505],{},"Then paste this to confirm it works:",[164,1506,1509],{"className":1507,"code":1508,"language":295,"meta":116},[293],"Use the AdKit MCP server you just added and run the AdKit checkin tool with agentId: \"claude-code\".\nIf sign-in is needed, send me the link and wait for me to finish.\nThen tell me if AdKit is connected and ready. If not, tell me what failed.\n",[94,1510,1508],{"__ignoreMap":116},[99,1512,535],{"id":534},[87,1514,1515,1516,571],{},"Once connected, Claude Code can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,1517,570],{},[87,1519,1022,1520,634],{},[124,1521,633],{"href":631,"rel":1522},[490],[333,1524,637],{},{"title":116,"searchDepth":182,"depth":182,"links":1526},[1527,1528,1529],{"id":1457,"depth":182,"text":1458},{"id":1470,"depth":182,"text":1471},{"id":534,"depth":182,"text":535},"Connect Claude Code to AdKit through the CLI or the MCP server and manage Meta, Google, TikTok, and Reddit ads.","\u002Fimages\u002Flogos\u002Fclaude-code.svg",{},"Claude Code",[1535,1537],{"label":73,"to":74,"description":1536},"Give each brand its own project and tell Claude Code which one to use.",{"label":654,"to":70,"description":1041},{"title":49,"description":1530},"L1QEcVwaGFceU6L8QWwjLfMnFAPLsZOiojpd39uO0NM",{"id":1541,"title":53,"body":1542,"description":1637,"extension":341,"icon":1638,"iconInvert":18,"meta":1639,"navTitle":1640,"navigation":345,"path":54,"related":1641,"section":656,"sectionOrder":175,"seo":1645,"stem":55,"type":349,"updatedAt":658,"wip":18,"__hash__":1646},"docs\u002Fdocs\u002Fclients\u002F6.codex.md",{"type":84,"value":1543,"toc":1632},[1544,1549,1553,1556,1562,1564,1618,1620,1625,1630],[87,1545,1546,1547,1454],{},"Connect Codex to AdKit and manage ",[121,1548,361],{},[99,1550,1552],{"id":1551},"recommended-let-codex-set-it-up","Recommended: let Codex set it up",[87,1554,1555],{},"Paste this into Codex. It installs the AdKit CLI and connects it for you:",[164,1557,1560],{"className":1558,"code":1559,"language":295,"meta":116},[293],"Help me set up AdKit.\n\n1. Install the CLI: npm i -g @adkit\u002Fcli\n2. Run `adkit setup` and send me the login URL so I can finish authentication.\n3. Wait for me to finish login in the browser.\n4. Run `adkit checkin --agent codex`.\n5. Tell me if AdKit is connected and ready. If not, tell me what failed.\n\nIf you cannot install or run the AdKit CLI here, stop and tell me to use the MCP setup instead.\n",[94,1561,1559],{"__ignoreMap":116},[99,1563,1471],{"id":1470},[411,1565,1566,1590,1610],{},[392,1567,1568,1569],{},"Add the server in Codex:",[164,1570,1572],{"className":504,"code":1571,"language":506,"meta":116,"style":116},"codex mcp add adkit --url https:\u002F\u002Fmcp.adkit.so\n",[94,1573,1574],{"__ignoreMap":116},[172,1575,1576,1579,1581,1583,1585,1588],{"class":174,"line":175},[172,1577,1578],{"class":206},"codex",[172,1580,1488],{"class":218},[172,1582,519],{"class":218},[172,1584,1499],{"class":218},[172,1586,1587],{"class":218}," --url",[172,1589,904],{"class":218},[392,1591,1592,1593],{},"If Codex asks you to sign in:",[164,1594,1596],{"className":504,"code":1595,"language":506,"meta":116,"style":116},"codex mcp login adkit\n",[94,1597,1598],{"__ignoreMap":116},[172,1599,1600,1602,1604,1607],{"class":174,"line":175},[172,1601,1578],{"class":206},[172,1603,1488],{"class":218},[172,1605,1606],{"class":218}," login",[172,1608,1609],{"class":218}," adkit\n",[392,1611,1504,1612],{},[164,1613,1616],{"className":1614,"code":1615,"language":295,"meta":116},[293],"Use the AdKit MCP server you just installed and run the AdKit checkin tool with agentId: \"codex\".\nIf sign-in is needed, send me the link and wait for me to finish.\nThen tell me if AdKit is connected and ready. If not, tell me what failed.\n",[94,1617,1615],{"__ignoreMap":116},[99,1619,535],{"id":534},[87,1621,1622,1623,571],{},"Once connected, Codex can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,1624,570],{},[87,1626,1022,1627,634],{},[124,1628,633],{"href":631,"rel":1629},[490],[333,1631,637],{},{"title":116,"searchDepth":182,"depth":182,"links":1633},[1634,1635,1636],{"id":1551,"depth":182,"text":1552},{"id":1470,"depth":182,"text":1471},{"id":534,"depth":182,"text":535},"Connect Codex to AdKit through the CLI or the MCP server and manage Meta, Google, TikTok, and Reddit ads.","\u002Fimages\u002Flogos\u002Fcodex.svg",{},"Codex",[1642,1644],{"label":73,"to":74,"description":1643},"Give each brand its own project and tell Codex which one to use.",{"label":654,"to":70,"description":1041},{"title":53,"description":1637},"-D5RGFk3eJ98UJQv39FpZeFe1efnhkWM15_WjSYwi4Y",{"id":1648,"title":57,"body":1649,"description":1784,"extension":341,"icon":1785,"iconInvert":345,"meta":1786,"navTitle":1787,"navigation":345,"path":58,"related":1788,"section":656,"sectionOrder":175,"seo":1792,"stem":59,"type":349,"updatedAt":658,"wip":18,"__hash__":1793},"docs\u002Fdocs\u002Fclients\u002F7.cursor.md",{"type":84,"value":1650,"toc":1778},[1651,1657,1661,1664,1670,1674,1684,1752,1754,1757,1763,1765,1770,1775],[87,1652,1653,1654,1656],{},"Connect Cursor to AdKit and manage ",[121,1655,361],{}," ads while you work. The fastest way is the MCP server.",[99,1658,1660],{"id":1659},"recommended-one-click-install","Recommended: one-click install",[87,1662,1663],{},"Open this link to install AdKit straight into Cursor:",[87,1665,1666],{},[124,1667,1669],{"href":1668},"cursor:\u002F\u002Fanysphere.cursor-deeplink\u002Fmcp\u002Finstall?name=adkit&config=eyJ1cmwiOiJodHRwczovL21jcC5hZGtpdC5zbyJ9","Install with Cursor",[99,1671,1673],{"id":1672},"manual-install","Manual install",[87,1675,1676,1677,1679,1680,1683],{},"Add this to ",[94,1678,283],{}," in your project, or ",[94,1681,1682],{},"~\u002F.cursor\u002Fmcp.json"," for every project:",[164,1685,1687],{"className":166,"code":1686,"language":168,"meta":116,"style":116},"{\n  \"mcpServers\": {\n    \"adkit\": {\n      \"url\": \"https:\u002F\u002Fmcp.adkit.so\"\n    }\n  }\n}\n",[94,1688,1689,1693,1707,1719,1739,1743,1748],{"__ignoreMap":116},[172,1690,1691],{"class":174,"line":175},[172,1692,179],{"class":178},[172,1694,1695,1698,1701,1703,1705],{"class":174,"line":182},[172,1696,1697],{"class":178},"  \"",[172,1699,1700],{"class":188},"mcpServers",[172,1702,192],{"class":178},[172,1704,162],{"class":178},[172,1706,197],{"class":178},[172,1708,1709,1711,1713,1715,1717],{"class":174,"line":200},[172,1710,185],{"class":178},[172,1712,722],{"class":206},[172,1714,192],{"class":178},[172,1716,162],{"class":178},[172,1718,197],{"class":178},[172,1720,1721,1724,1728,1730,1732,1734,1737],{"class":174,"line":226},[172,1722,1723],{"class":178},"      \"",[172,1725,1727],{"class":1726},"sbssI","url",[172,1729,192],{"class":178},[172,1731,162],{"class":178},[172,1733,920],{"class":178},[172,1735,1736],{"class":218},"https:\u002F\u002Fmcp.adkit.so",[172,1738,926],{"class":178},[172,1740,1741],{"class":174,"line":232},[172,1742,229],{"class":178},[172,1744,1745],{"class":174,"line":899},[172,1746,1747],{"class":178},"  }\n",[172,1749,1750],{"class":174,"line":907},[172,1751,235],{"class":178},[99,1753,1093],{"id":1092},[87,1755,1756],{},"Paste this in Cursor's chat. It confirms Cursor can actually use AdKit:",[164,1758,1761],{"className":1759,"code":1760,"language":295,"meta":116},[293],"Use the AdKit MCP server you just installed and run the AdKit checkin tool with agentId: \"cursor\".\nIf sign-in is needed, send me the link and wait for me to finish.\nThen tell me if AdKit is connected and ready. If not, tell me what failed.\n",[94,1762,1760],{"__ignoreMap":116},[99,1764,535],{"id":534},[87,1766,1767,1768,571],{},"Once connected, Cursor can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,1769,570],{},[87,1771,1022,1772,634],{},[124,1773,633],{"href":631,"rel":1774},[490],[333,1776,1777],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":116,"searchDepth":182,"depth":182,"links":1779},[1780,1781,1782,1783],{"id":1659,"depth":182,"text":1660},{"id":1672,"depth":182,"text":1673},{"id":1092,"depth":182,"text":1093},{"id":534,"depth":182,"text":535},"Connect Cursor to AdKit through the MCP server and manage Meta, Google, TikTok, and Reddit ads.","\u002Fimages\u002Flogos\u002Fcursor.png",{},"Cursor",[1789,1791],{"label":73,"to":74,"description":1790},"Give each brand its own project and tell Cursor which one to use.",{"label":654,"to":70,"description":1041},{"title":57,"description":1784},"4p3A3RTN9q4Yakf5z19F_WX_K6zdlBVrDN6bhewxATg",{"id":1795,"title":61,"body":1796,"description":1872,"extension":341,"icon":1873,"iconInvert":18,"meta":1874,"navTitle":1875,"navigation":345,"path":62,"related":1876,"section":656,"sectionOrder":175,"seo":1880,"stem":63,"type":349,"updatedAt":658,"wip":18,"__hash__":1881},"docs\u002Fdocs\u002Fclients\u002F8.gemini.md",{"type":84,"value":1797,"toc":1867},[1798,1803,1807,1810,1816,1818,1853,1855,1860,1865],[87,1799,1800,1801,1454],{},"Connect Gemini CLI to AdKit and manage ",[121,1802,361],{},[99,1804,1806],{"id":1805},"recommended-let-gemini-set-it-up","Recommended: let Gemini set it up",[87,1808,1809],{},"Paste this into Gemini CLI. It installs the AdKit CLI and connects it for you:",[164,1811,1814],{"className":1812,"code":1813,"language":295,"meta":116},[293],"Help me set up AdKit.\n\n1. Install the CLI: npm i -g @adkit\u002Fcli\n2. Run `adkit setup` and send me the login URL so I can finish authentication.\n3. Wait for me to finish login in the browser.\n4. Run `adkit checkin --agent gemini`.\n5. Tell me if AdKit is connected and ready. If not, tell me what failed.\n\nIf you cannot install or run the AdKit CLI here, stop and tell me to use the MCP setup instead.\n",[94,1815,1813],{"__ignoreMap":116},[99,1817,1471],{"id":1470},[411,1819,1820,1845],{},[392,1821,1822,1823],{},"Add the server in Gemini CLI:",[164,1824,1826],{"className":504,"code":1825,"language":506,"meta":116,"style":116},"gemini mcp add --transport http adkit https:\u002F\u002Fmcp.adkit.so\n",[94,1827,1828],{"__ignoreMap":116},[172,1829,1830,1833,1835,1837,1839,1841,1843],{"class":174,"line":175},[172,1831,1832],{"class":206},"gemini",[172,1834,1488],{"class":218},[172,1836,519],{"class":218},[172,1838,1493],{"class":218},[172,1840,1496],{"class":218},[172,1842,1499],{"class":218},[172,1844,904],{"class":218},[392,1846,1504,1847],{},[164,1848,1851],{"className":1849,"code":1850,"language":295,"meta":116},[293],"Use the AdKit MCP server you just added and run the AdKit checkin tool with agentId: \"gemini\".\nIf sign-in is needed, send me the link and wait for me to finish.\nThen tell me if AdKit is connected and ready. If not, tell me what failed.\n",[94,1852,1850],{"__ignoreMap":116},[99,1854,535],{"id":534},[87,1856,1857,1858,571],{},"Once connected, Gemini can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,1859,570],{},[87,1861,1022,1862,634],{},[124,1863,633],{"href":631,"rel":1864},[490],[333,1866,637],{},{"title":116,"searchDepth":182,"depth":182,"links":1868},[1869,1870,1871],{"id":1805,"depth":182,"text":1806},{"id":1470,"depth":182,"text":1471},{"id":534,"depth":182,"text":535},"Connect Gemini CLI to AdKit through the CLI or the MCP server and manage Meta, Google, TikTok, and Reddit ads.","\u002Fimages\u002Flogos\u002Fgemini.png",{},"Gemini CLI",[1877,1879],{"label":73,"to":74,"description":1878},"Give each brand its own project and tell Gemini which one to use.",{"label":654,"to":70,"description":1041},{"title":61,"description":1872},"Dxta2fb3IrcqoIIZcgxkbUEOqKf5o5ycYLVCZOgMdew",{"id":1883,"title":65,"body":1884,"description":2115,"extension":341,"icon":2116,"iconInvert":18,"meta":2117,"navTitle":2118,"navigation":345,"path":66,"related":2119,"section":656,"sectionOrder":175,"seo":2123,"stem":67,"type":349,"updatedAt":1043,"wip":18,"__hash__":2124},"docs\u002Fdocs\u002Fclients\u002F9.openclaw.md",{"type":84,"value":1885,"toc":2111},[1886,1892,2053,2055,2096,2098,2103,2108],[87,1887,1888,1889,1891],{},"Connect OpenClaw to AdKit and manage ",[121,1890,361],{}," ads. Pick the tab that matches where OpenClaw runs.",[671,1893,1894,1944],{},[674,1895,1896,1899],{"icon":676,"label":677},[87,1897,1898],{},"OpenClaw on your own machine. Sign in through the browser, no API key needed.",[411,1900,1901,1919,1933],{},[392,1902,1903,1905],{},[121,1904,687],{},[164,1906,1907],{"className":504,"code":690,"language":506,"meta":116,"style":116},[94,1908,1909],{"__ignoreMap":116},[172,1910,1911,1913,1915,1917],{"class":174,"line":175},[172,1912,697],{"class":206},[172,1914,700],{"class":218},[172,1916,703],{"class":218},[172,1918,706],{"class":218},[392,1920,1921,712,1923],{},[121,1922,711],{},[164,1924,1925],{"className":504,"code":715,"language":506,"meta":116,"style":116},[94,1926,1927],{"__ignoreMap":116},[172,1928,1929,1931],{"class":174,"line":175},[172,1930,722],{"class":206},[172,1932,725],{"class":218},[392,1934,1935,1938],{},[121,1936,1937],{},"Give OpenClaw this prompt to confirm the connection:",[164,1939,1942],{"className":1940,"code":1941,"language":295,"meta":116},[293],"Help me set up AdKit.\n\n1. Run `adkit status` to confirm AdKit is connected.\n2. Run `adkit checkin --agent openclaw`.\n\nTell me if AdKit is connected and ready. If not, tell me what failed.\n",[94,1943,1941],{"__ignoreMap":116},[674,1945,1946,1950,2014,2021,2028],{"icon":739,"label":740},[87,1947,743,1948,140],{},[121,1949,746],{},[411,1951,1952,1959,1987,2005],{},[392,1953,1954,754,1956,760],{},[121,1955,753],{},[124,1957,759],{"href":757,"rel":1958},[490],[392,1960,1961,1964,1965,1984,1986],{},[121,1962,1963],{},"Set the key"," in the environment where OpenClaw runs:",[164,1966,1968],{"className":504,"code":1967,"language":506,"meta":116,"style":116},"export ADKIT_API_KEY=adk_your_key\n",[94,1969,1970],{"__ignoreMap":116},[172,1971,1972,1975,1978,1981],{"class":174,"line":175},[172,1973,1974],{"class":188},"export",[172,1976,785],{"class":1977},"sTEyZ",[172,1979,1980],{"class":178},"=",[172,1982,1983],{"class":1977},"adk_your_key\n",[434,1985],{},"Set it in the service or daemon config so every run picks it up.",[392,1988,1989,1991],{},[121,1990,687],{},[164,1992,1993],{"className":504,"code":690,"language":506,"meta":116,"style":116},[94,1994,1995],{"__ignoreMap":116},[172,1996,1997,1999,2001,2003],{"class":174,"line":175},[172,1998,697],{"class":206},[172,2000,700],{"class":218},[172,2002,703],{"class":218},[172,2004,706],{"class":218},[392,2006,2007,2009],{},[121,2008,1937],{},[164,2010,2012],{"className":2011,"code":1941,"language":295,"meta":116},[293],[94,2013,1941],{"__ignoreMap":116},[87,2015,2016,832,2018,2020],{},[121,2017,831],{},[94,2019,835],{}," from where OpenClaw runs, so the key never lands in your transcript.",[87,2022,2023,2025,2026,162],{},[121,2024,841],{}," Add the AdKit server in OpenClaw and replace ",[94,2027,849],{},[164,2029,2031],{"className":504,"code":2030,"language":506,"meta":116,"style":116},"openclaw mcp set adkit '{\"url\":\"https:\u002F\u002Fmcp.adkit.so\",\"transport\":\"streamable-http\",\"headers\":{\"Authorization\":\"Bearer adk_your_key\"}}'\n",[94,2032,2033],{"__ignoreMap":116},[172,2034,2035,2038,2040,2042,2044,2047,2050],{"class":174,"line":175},[172,2036,2037],{"class":206},"openclaw",[172,2039,1488],{"class":218},[172,2041,782],{"class":218},[172,2043,1499],{"class":218},[172,2045,2046],{"class":178}," '",[172,2048,2049],{"class":218},"{\"url\":\"https:\u002F\u002Fmcp.adkit.so\",\"transport\":\"streamable-http\",\"headers\":{\"Authorization\":\"Bearer adk_your_key\"}}",[172,2051,2052],{"class":178},"'\n",[99,2054,597],{"id":596},[303,2056,2057,2066,2073,2085],{},[307,2058,2059],{"icon":955,"label":956},[87,2060,959,2061,963,2063,2065],{},[94,2062,962],{},[94,2064,966],{}," again. On a server, make sure it is installed in the same environment OpenClaw runs in.",[307,2067,2068],{"icon":970,"label":971},[87,2069,2070,2072],{},[94,2071,835],{}," is not set where OpenClaw actually runs. Export it in that environment, or set it in the service or daemon config so every run picks it up.",[307,2074,2075],{"icon":986,"label":987},[87,2076,2077,2078,2081,2082,2084],{},"Re-run the ",[94,2079,2080],{},"openclaw mcp set adkit ..."," command above and check the ",[94,2083,923],{}," header carries a valid key.",[307,2086,2087],{"icon":1001,"label":1002},[87,2088,119,2089,2092,2093,2095],{},[124,2090,759],{"href":1007,"rel":2091},[490]," in AdKit to revoke a key and create a new one. Update ",[94,2094,835],{}," (or your MCP config) with the new value.",[99,2097,535],{"id":534},[87,2099,2100,2101,571],{},"Once connected, OpenClaw can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. Nothing goes live on its own: every change is saved as a ",[121,2102,570],{},[87,2104,1022,2105,634],{},[124,2106,633],{"href":631,"rel":2107},[490],[333,2109,2110],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":116,"searchDepth":182,"depth":182,"links":2112},[2113,2114],{"id":596,"depth":182,"text":597},{"id":534,"depth":182,"text":535},"Connect OpenClaw to AdKit with the CLI or an API key and manage Meta, Google, TikTok, and Reddit ads, whether OpenClaw runs locally or on a server.","\u002Fimages\u002Flogos\u002Fopenclaw.png",{},"OpenClaw",[2120,2122],{"label":73,"to":74,"description":2121},"Give each brand its own project and tell OpenClaw which one to use.",{"label":654,"to":70,"description":1041},{"title":65,"description":2115},"qGSfOmrslqXjGtdN1fCcmauGC-adKTua1KAV8GiUR6I",{"id":2126,"title":69,"body":2127,"description":2215,"extension":341,"icon":2216,"iconInvert":18,"meta":2217,"navTitle":2218,"navigation":345,"path":70,"related":2219,"section":2227,"sectionOrder":2228,"seo":2229,"stem":71,"type":2230,"updatedAt":1043,"wip":18,"__hash__":2231},"docs\u002Fdocs\u002Fgetting-started.md",{"type":84,"value":2128,"toc":2209},[2129,2132,2136,2139],[87,2130,2131],{},"AdKit lets supported AI agents manage your ads directly: pull live campaigns, draft budget and targeting changes, generate creatives, and research competitors. Connect once, then work from a normal conversation.",[99,2133,2135],{"id":2134},"_1-connect-your-agent","1. Connect your agent",[87,2137,2138],{},"Pick your client and follow its setup guide:",[2140,2141,2142,2145,2149,2152,2158,2161,2165,2168,2182,2188,2192],"connect-agents",{},[87,2143,2144],{},"Most setups follow the same shape: add the AdKit connector or install the CLI, then authenticate. You sign in through the browser when running locally, or use an API key when running on a server.",[99,2146,2148],{"id":2147},"_2-verify-the-connection","2. Verify the connection",[87,2150,2151],{},"Once connected, have the agent run the AdKit check-in and list what it can see. Paste this:",[164,2153,2156],{"className":2154,"code":2155,"language":295,"meta":116},[293],"Use the AdKit connector and run the AdKit checkin tool.\nThen list the connected platforms and ad accounts.\nTell me if AdKit is ready to manage ads from this conversation.\n",[94,2157,2155],{"__ignoreMap":116},[87,2159,2160],{},"If it reports your connected platforms and accounts, you are ready. If not, it will tell you what is missing.",[99,2162,2164],{"id":2163},"_3-start-managing-ads","3. Start managing ads",[87,2166,2167],{},"With AdKit connected, ask your agent to:",[389,2169,2170,2173,2176,2179],{},[392,2171,2172],{},"Pull performance for a campaign or account",[392,2174,2175],{},"Draft a new campaign, ad set, or ad",[392,2177,2178],{},"Generate ad creatives from a brief",[392,2180,2181],{},"Research competitor ads in the ad library",[87,2183,2184,2185,2187],{},"Everything you create starts as a ",[121,2186,570],{},". Nothing goes live until you review and approve it.",[99,2189,2191],{"id":2190},"next-steps","Next steps",[389,2193,2194,2201],{},[392,2195,2196,2200],{},[121,2197,2198],{},[124,2199,344],{"href":16}," when your agent has an image or video to turn into a Meta or Google ad asset.",[392,2202,2203,2208],{},[121,2204,2205],{},[124,2206,2207],{"href":74},"Connect multiple ad accounts"," when you run ads for more than one brand or client.",{"title":116,"searchDepth":182,"depth":182,"links":2210},[2211,2212,2213,2214],{"id":2134,"depth":182,"text":2135},{"id":2147,"depth":182,"text":2148},{"id":2163,"depth":182,"text":2164},{"id":2190,"depth":182,"text":2191},"Connect an AI agent to AdKit, verify the connection, and start managing your ads from a conversation.","fa6-solid:book-open",{},"Getting started",[2220,2222,2225],{"label":656,"to":26,"description":2221},"Pick your AI client and connect it to AdKit.",{"label":2223,"to":16,"description":2224},"Upload creative media with an AI agent","Move local images and videos from an agent session into Meta or Google Ads.",{"label":73,"to":74,"description":2226},"Give each brand its own project and tell your agent which one to use.","Start here",0,{"title":69,"description":2215},"overview","0rtTKrV2pSuyrevTJNJMl6MIjZpo0OGxV6BRhu13s_w",{"id":2233,"title":73,"body":2234,"description":2338,"extension":341,"icon":2339,"iconInvert":18,"meta":2340,"navTitle":2341,"navigation":345,"path":74,"related":2342,"section":2346,"sectionOrder":200,"seo":2347,"stem":75,"type":349,"updatedAt":658,"wip":18,"__hash__":2348},"docs\u002Fdocs\u002Fmultiple-accounts.md",{"type":84,"value":2235,"toc":2332},[2236,2243,2247,2258,2265,2268,2271,2275,2282,2288,2291,2295,2298,2301,2307,2311,2318,2321,2327],[87,2237,2238,2239,2242],{},"Running ads for more than one business? Give each one its own ",[121,2240,2241],{},"project",". A project is one website with its own ad accounts, creatives, and competitors, so a coffee brand and a SaaS app never share a budget by accident. Three brands, three projects.",[99,2244,2246],{"id":2245},"adding-more-projects","Adding more projects",[87,2248,2249,2250,2253,2254,2257],{},"Click the ",[121,2251,2252],{},"project name"," at the top of the dashboard, then ",[121,2255,2256],{},"Add Website",". Give it a name and the website address, and you're done.",[87,2259,2260],{},[144,2261],{"alt":2262,"src":2263,"width":2264},"The project menu, where you add a project or switch between them","\u002Fdocs\u002Faccounts\u002Fswitcher-add.png",460,[87,2266,2267],{},"That same menu is how you switch later: open it and pick another project. The whole dashboard follows along, so campaigns, Studio, and the ad library all show the project you picked.",[87,2269,2270],{},"A new project starts empty. Next you'll connect that brand's ad accounts.",[99,2272,2274],{"id":2273},"each-brand-keeps-its-own-accounts","Each brand keeps its own accounts",[87,2276,2277,2278,2281],{},"That's the whole point of projects: every brand keeps its own Meta, Google, TikTok, and Reddit accounts, so they never cross over. Open a project, head to ",[121,2279,2280],{},"Settings → Integrations",", and connect that brand's accounts there.",[87,2283,2284],{},[144,2285],{"alt":2286,"src":2287},"Each project has its own Integrations page, with Connect buttons for Meta, Google, TikTok, and Reddit","\u002Fdocs\u002Faccounts\u002Fconnect-integrations.png",[87,2289,2290],{},"The step-by-step for connecting each platform is its own guide.",[99,2292,2294],{"id":2293},"using-projects-with-ai-agents","Using projects with AI agents",[87,2296,2297],{},"If you run AdKit through an AI agent like Claude, it connects once and can reach every project.",[87,2299,2300],{},"With a single project, the agent just uses it. With several, it needs to know which one. It'll usually ask, but naming the brand yourself keeps it from getting confused:",[164,2302,2305],{"className":2303,"code":2304,"language":295,"meta":116},[293],"List my AdKit projects, then use [your brand] and show its active campaigns.\n",[94,2306,2304],{"__ignoreMap":116},[99,2308,2310],{"id":2309},"projects-vs-workspaces","Projects vs workspaces",[87,2312,2313,2314,2317],{},"Most people can skip this. A ",[121,2315,2316],{},"workspace"," groups your projects together with the people you invite, and everyone in it can see every project inside.",[87,2319,2320],{},"You'd only add a second workspace to keep separate teams apart, like an agency that doesn't want one client's people seeing another client's projects.",[87,2322,2323,2324,140],{},"To invite teammates, go to ",[121,2325,2326],{},"Settings → Members",[87,2328,1022,2329,634],{},[124,2330,633],{"href":631,"rel":2331},[490],{"title":116,"searchDepth":182,"depth":182,"links":2333},[2334,2335,2336,2337],{"id":2245,"depth":182,"text":2246},{"id":2273,"depth":182,"text":2274},{"id":2293,"depth":182,"text":2294},{"id":2309,"depth":182,"text":2310},"Run several brands in AdKit by giving each its own project, and switch between them from one place.","fa6-solid:briefcase",{},"Multiple ad accounts",[2343,2345],{"label":25,"to":26,"description":2344},"Set up the chat assistant you use across all your brands.",{"label":654,"to":70,"description":1041},"Accounts & projects",{"title":73,"description":2338},"cZ_7wypN1haSkzXELs9NoFHJpuyf8ZaSrDCy68ZR7x0",{"id":2350,"title":77,"body":2351,"description":2421,"extension":341,"icon":2422,"iconInvert":18,"meta":2423,"navTitle":2424,"navigation":345,"path":78,"related":2425,"section":2346,"sectionOrder":200,"seo":2429,"stem":79,"type":349,"updatedAt":1043,"wip":18,"__hash__":2430},"docs\u002Fdocs\u002Fplatforms.md",{"type":84,"value":2352,"toc":2417},[2353,2356,2374,2378,2401,2404,2408,2411],[87,2354,2355],{},"Before an AI agent can manage your ads, the ad accounts have to be connected in AdKit. You connect each platform once, in the dashboard, and the agent works with whatever is connected.",[87,2357,2358,2359,2362,2363,2366,2367,2370,2371,140],{},"AdKit supports ",[121,2360,2361],{},"Meta"," (Facebook and Instagram), ",[121,2364,2365],{},"Google Ads",", ",[121,2368,2369],{},"TikTok",", and ",[121,2372,2373],{},"Reddit",[99,2375,2377],{"id":2376},"connect-a-platform","Connect a platform",[411,2379,2380,2388,2395,2398],{},[392,2381,2382,2383,140],{},"In AdKit, open ",[124,2384,2387],{"href":2385,"rel":2386},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fintegrations",[490],"Settings, then Integrations",[392,2389,2390,2391,2394],{},"Under ",[121,2392,2393],{},"Ad Platforms",", pick the platform you want to connect.",[392,2396,2397],{},"Sign in and authorize AdKit through the platform's secure sign-in flow.",[392,2399,2400],{},"Choose the ad account you want to manage. It is now available to your agent.",[87,2402,2403],{},"Repeat for each platform you advertise on.",[99,2405,2407],{"id":2406},"after-connecting","After connecting",[87,2409,2410],{},"Ask your agent to run the AdKit check-in and list the connected platforms and accounts. Once a platform shows up, its campaigns and metrics are ready to manage from the conversation.",[87,2412,2413,2414,2416],{},"Running ads for more than one brand or client? See ",[124,2415,73],{"href":74}," to keep each one in its own project.",{"title":116,"searchDepth":182,"depth":182,"links":2418},[2419,2420],{"id":2376,"depth":182,"text":2377},{"id":2406,"depth":182,"text":2407},"Connect your Meta, Google, TikTok, and Reddit ad accounts to AdKit so your AI agent can manage real campaigns.","fa6-solid:plug",{},"Connect ad accounts",[2426,2427],{"label":73,"to":74,"description":2226},{"label":69,"to":70,"description":2428},"Connect an agent, verify the connection, and start managing ads.",{"title":77,"description":2421},"R_D103azSLi-guPmuGGidNu48dl-vXBiBr07Edp6nSQ",1780919085098]