[{"data":1,"prerenderedAt":2935},["ShallowReactive",2],{"docs-search-nav":3,"docs:all":92},[4],{"title":5,"path":6,"stem":7,"children":8,"page":22},"Docs","\u002Fdocs","docs",[9,23,72,76,80,84,88],{"title":10,"path":11,"stem":12,"children":13,"page":22},"Agents","\u002Fdocs\u002Fagents","docs\u002Fagents",[14,18],{"title":15,"path":16,"stem":17},"Control what an AI agent can do (access levels)","\u002Fdocs\u002Fagents\u002Faccess-levels","docs\u002Fagents\u002Faccess-levels",{"title":19,"path":20,"stem":21},"Upload ad creatives from an AI agent","\u002Fdocs\u002Fagents\u002Fupload-creative-media","docs\u002Fagents\u002Fupload-creative-media",false,{"title":24,"path":25,"stem":26,"children":27,"page":22},"Clients","\u002Fdocs\u002Fclients","docs\u002Fclients",[28,32,36,40,44,48,52,56,60,64,68],{"title":29,"path":30,"stem":31},"Connect Claude to AdKit","\u002Fdocs\u002Fclients\u002Fclaude","docs\u002Fclients\u002F1.claude",{"title":33,"path":34,"stem":35},"Connect Hermes to AdKit","\u002Fdocs\u002Fclients\u002Fhermes","docs\u002Fclients\u002F10.hermes",{"title":37,"path":38,"stem":39},"Connect n8n to AdKit","\u002Fdocs\u002Fclients\u002Fn8n","docs\u002Fclients\u002F11.n8n",{"title":41,"path":42,"stem":43},"Connect Claude Cowork to AdKit","\u002Fdocs\u002Fclients\u002Fclaude-cowork","docs\u002Fclients\u002F2.claude-cowork",{"title":45,"path":46,"stem":47},"Connect ChatGPT to AdKit","\u002Fdocs\u002Fclients\u002Fchatgpt","docs\u002Fclients\u002F3.chatgpt",{"title":49,"path":50,"stem":51},"Connect Perplexity to AdKit","\u002Fdocs\u002Fclients\u002Fperplexity","docs\u002Fclients\u002F4.perplexity",{"title":53,"path":54,"stem":55},"Connect Claude Code to AdKit","\u002Fdocs\u002Fclients\u002Fclaude-code","docs\u002Fclients\u002F5.claude-code",{"title":57,"path":58,"stem":59},"Connect Codex to AdKit","\u002Fdocs\u002Fclients\u002Fcodex","docs\u002Fclients\u002F6.codex",{"title":61,"path":62,"stem":63},"Connect Cursor to AdKit","\u002Fdocs\u002Fclients\u002Fcursor","docs\u002Fclients\u002F7.cursor",{"title":65,"path":66,"stem":67},"Connect Gemini CLI to AdKit","\u002Fdocs\u002Fclients\u002Fgemini","docs\u002Fclients\u002F8.gemini",{"title":69,"path":70,"stem":71},"Connect OpenClaw to AdKit","\u002Fdocs\u002Fclients\u002Fopenclaw","docs\u002Fclients\u002F9.openclaw",{"title":73,"path":74,"stem":75},"Fix an agent connection to AdKit","\u002Fdocs\u002Fconnection-troubleshooting","docs\u002Fconnection-troubleshooting",{"title":77,"path":78,"stem":79},"Getting started with AdKit","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",{"title":81,"path":82,"stem":83},"Connecting multiple ad accounts","\u002Fdocs\u002Fmultiple-accounts","docs\u002Fmultiple-accounts",{"title":85,"path":86,"stem":87},"Use your own Google Ads API access","\u002Fdocs\u002Fown-google-ads-api","docs\u002Fown-google-ads-api",{"title":89,"path":90,"stem":91},"Connect your ad accounts","\u002Fdocs\u002Fplatforms","docs\u002Fplatforms",[93,312,569,871,1084,1168,1276,1420,1532,1628,1735,1885,1973,2138,2288,2396,2513,2854],{"id":94,"title":15,"body":95,"description":299,"extension":300,"icon":301,"iconInvert":22,"meta":302,"navTitle":303,"navigation":304,"path":16,"related":305,"section":306,"sectionOrder":307,"seo":308,"stem":17,"type":309,"updatedAt":310,"wip":22,"__hash__":311},"docs\u002Fdocs\u002Fagents\u002Faccess-levels.md",{"type":96,"value":97,"toc":290},"minimark",[98,107,114,119,178,187,191,220,224,227,246,249,253,260,264,274,281],[99,100,101,102,106],"p",{},"Every connection you create in AdKit, whether it's an AI agent, a CLI session, or a plain API key, has an ",[103,104,105],"strong",{},"access level",". The level decides what that connection can do with your ad accounts: pull reports, prepare drafts, or publish changes live. New connections get full access by default, and you can lower any of them whenever you want.",[99,108,109,110,113],{},"The most common reason to change it: give a reporting agent ",[103,111,112],{},"Read-only",", so it can pull combined reports with no way to edit, pause, or delete a live ad.",[115,116,118],"h2",{"id":117},"the-four-levels","The four levels",[120,121,122,135],"table",{},[123,124,125],"thead",{},[126,127,128,132],"tr",{},[129,130,131],"th",{},"Level",[129,133,134],{},"What the connection can do",[136,137,138,149,158,168],"tbody",{},[126,139,140,146],{},[141,142,143],"td",{},[103,144,145],{},"Disabled",[141,147,148],{},"Nothing, not even reading. Use it to switch a key off without deleting it.",[126,150,151,155],{},[141,152,153],{},[103,154,112],{},[141,156,157],{},"View your campaigns and pull reports. Cannot change anything in your ad accounts.",[126,159,160,165],{},[141,161,162],{},[103,163,164],{},"Draft only",[141,166,167],{},"Create and edit campaigns as drafts. Drafts can only be published from the dashboard, by you.",[126,169,170,175],{},[141,171,172],{},[103,173,174],{},"Draft + Publish",[141,176,177],{},"Create and edit campaigns as drafts, and publish them. This is the default for new connections.",[99,179,180,181,183,184,186],{},"Every level except Disabled can read your data. And every change an agent makes is saved as a draft first, so the only difference between ",[103,182,164],{}," and ",[103,185,174],{}," is who can push a draft live: you from the dashboard, or the agent itself.",[115,188,190],{"id":189},"set-the-level-when-you-create-a-key","Set the level when you create a key",[192,193,194,206,217],"ol",{},[195,196,197,198,205],"li",{},"Open ",[199,200,204],"a",{"href":201,"rel":202},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fdevices?new",[203],"nofollow","Devices & Keys"," in AdKit. The new-key dialog opens automatically.",[195,207,208,209,212,213,216],{},"Under ",[103,210,211],{},"Access level",", click ",[103,214,215],{},"Customize"," and pick a level.",[195,218,219],{},"Name the key and create it.",[115,221,223],{"id":222},"change-a-level-later","Change a level later",[99,225,226],{},"You don't have to recreate a key to change what it can do.",[192,228,229,236,243],{},[195,230,197,231,235],{},[199,232,204],{"href":233,"rel":234},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fdevices",[203]," in AdKit.",[195,237,238,239,242],{},"Find the connection in the list. Its current level shows in the ",[103,240,241],{},"Access"," column.",[195,244,245],{},"Click the access control on that row, pick a new level, and save.",[99,247,248],{},"The new level applies on the connection's next request.",[115,250,252],{"id":251},"what-a-read-only-agent-runs-into","What a read-only agent runs into",[99,254,255,256,259],{},"A read-only connection pulls reports and reads campaigns normally. The moment it tries to make a change, AdKit blocks the request and tells the agent that its connection doesn't have permission, with a link back to ",[199,257,204],{"href":233,"rel":258},[203],". Nothing reaches your ad accounts. To allow the change, raise the level on that page and have the agent try again.",[115,261,263],{"id":262},"agents-you-connect-by-login","Agents you connect by login",[99,265,266,267,269,270,273],{},"When you connect an agent through the in-app flow (\"Connect an agent\" or the OAuth login), it starts at ",[103,268,174],{},". To restrict it, open ",[199,271,204],{"href":233,"rel":272},[203]," afterward and lower its level. Picking the level during the connect flow is coming later.",[99,275,276,277,280],{},"New to connecting agents? Start with the ",[199,278,279],{"href":78},"getting started guide",".",[99,282,283,284,289],{},"Need a hand? ",[199,285,288],{"href":286,"rel":287},"https:\u002F\u002Fapp.adkit.so",[203],"Reach out"," and we'll help.",{"title":291,"searchDepth":292,"depth":292,"links":293},"",2,[294,295,296,297,298],{"id":117,"depth":292,"text":118},{"id":189,"depth":292,"text":190},{"id":222,"depth":292,"text":223},{"id":251,"depth":292,"text":252},{"id":262,"depth":292,"text":263},"Give an AI agent read-only access to your ad accounts, or let it publish. Set a permission level per connection so an agent can pull reports without touching live ads.","md","fa6-solid:lock",{},"Access levels",true,null,"Using agents",3,{"title":15,"description":299},"guide","2026-06-18","-AmKcZjjq2YLiV_6NVeNLu5e-XWz-NBxuYJd_mckV2k",{"id":313,"title":19,"body":314,"description":562,"extension":300,"icon":563,"iconInvert":22,"meta":564,"navTitle":565,"navigation":304,"path":20,"related":305,"section":306,"sectionOrder":292,"seo":566,"stem":21,"type":309,"updatedAt":567,"wip":22,"__hash__":568},"docs\u002Fdocs\u002Fagents\u002Fupload-creative-media.md",{"type":96,"value":315,"toc":558},[316,319,327,331,337,520,524,554],[99,317,318],{},"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.",[99,320,321,322,326],{},"For larger files, AdKit uses a direct upload flow that requires your agent to reach ",[323,324,325],"code",{},"*.adkit.so",". Most agents block unknown domains by default, so you'll need to allowlist it. Pick your agent below.",[115,328,330],{"id":329},"whitelist-adkits-upload-domain","Whitelist AdKit's upload domain",[99,332,333,334,336],{},"Add ",[323,335,325],{}," 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.",[338,339,341,372,469,496,507],"agent-tabs",{"default":340},"claude",[342,343,344,365],"template",{"v-slot:claude":291},[99,345,346,347,354,355,358,359,361,362,280],{},"Go to ",[103,348,349],{},[199,350,353],{"href":351,"target":352},"https:\u002F\u002Fclaude.ai\u002Fsettings\u002Fcapabilities#Code%20execution%20and%20file%20creation:~:text=Additional%20allowed%20domains","_blank","Settings > Capabilities",", turn on ",[103,356,357],{},"Allow network egress",", then add ",[323,360,325],{}," under ",[103,363,364],{},"Additional allowed domains",[99,366,367],{},[368,369],"img",{"alt":370,"src":371},"Claude settings showing *.adkit.so added to Additional allowed domains","\u002Fdocs\u002Fagents\u002Fclaude-domain-allowlist.png",[342,373,374,387,458],{"v-slot:claude-code":291},[99,375,333,376,378,379,382,383,386],{},[323,377,325],{}," to the ",[323,380,381],{},"allowedHosts"," array in your project's ",[323,384,385],{},".claude\u002Fsettings.json",":",[388,389,393],"pre",{"className":390,"code":391,"language":392,"meta":291,"style":291},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n    \"permissions\": {\n        \"allowedHosts\": [\"*.adkit.so\"]\n    }\n}\n","json",[323,394,395,404,421,446,452],{"__ignoreMap":291},[396,397,400],"span",{"class":398,"line":399},"line",1,[396,401,403],{"class":402},"sMK4o","{\n",[396,405,406,409,413,416,418],{"class":398,"line":292},[396,407,408],{"class":402},"    \"",[396,410,412],{"class":411},"spNyl","permissions",[396,414,415],{"class":402},"\"",[396,417,386],{"class":402},[396,419,420],{"class":402}," {\n",[396,422,423,426,429,431,433,436,438,441,443],{"class":398,"line":307},[396,424,425],{"class":402},"        \"",[396,427,381],{"class":428},"sBMFI",[396,430,415],{"class":402},[396,432,386],{"class":402},[396,434,435],{"class":402}," [",[396,437,415],{"class":402},[396,439,325],{"class":440},"sfazB",[396,442,415],{"class":402},[396,444,445],{"class":402},"]\n",[396,447,449],{"class":398,"line":448},4,[396,450,451],{"class":402},"    }\n",[396,453,455],{"class":398,"line":454},5,[396,456,457],{"class":402},"}\n",[99,459,460,461,464,465,468],{},"You can also add it to ",[323,462,463],{},"~\u002F.claude\u002Fsettings.json"," if you want it allowed across all projects, or to ",[323,466,467],{},".claude\u002Fsettings.local.json"," for just your machine.",[342,470,471,479],{"v-slot:codex":291},[99,472,333,473,475,476,386],{},[323,474,325],{}," to your network domain permissions in ",[323,477,478],{},".codex\u002Fconfig.toml",[388,480,484],{"className":481,"code":482,"language":483,"meta":291,"style":291},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[permissions.default.network.domains]\n\"*.adkit.so\" = \"allow\"\n","toml",[323,485,486,491],{"__ignoreMap":291},[396,487,488],{"class":398,"line":399},[396,489,490],{},"[permissions.default.network.domains]\n",[396,492,493],{"class":398,"line":292},[396,494,495],{},"\"*.adkit.so\" = \"allow\"\n",[342,497,498],{"v-slot:cursor":291},[99,499,333,500,502,503,506],{},[323,501,325],{}," to your MCP server's allowed hosts. In ",[323,504,505],{},".cursor\u002Fmcp.json",", make sure your AdKit server config includes the domain, or add it to your project's network allowlist in Cursor settings.",[342,508,509,512],{"v-slot:other":291},[99,510,511],{},"Paste this into your agent and it will figure out the best approach for your setup:",[388,513,518],{"className":514,"code":516,"language":517},[515],"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",[323,519,516],{"__ignoreMap":291},[115,521,523],{"id":522},"common-questions","Common questions",[525,526,528,536,542,548],"accordion",{"type":527},"single",[529,530,533],"accordion-item",{"icon":531,"label":532},"fa6-solid:circle-question","What if the agent says the upload link expired?",[99,534,535],{},"Upload links are temporary. Just ask the agent to start the upload again. It will request a new link automatically.",[529,537,539],{"icon":531,"label":538},"Which agents work with AdKit?",[99,540,541],{},"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.",[529,543,545],{"icon":531,"label":544},"What media formats are supported?",[99,546,547],{},"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.",[529,549,551],{"icon":531,"label":550},"How do I know the upload worked?",[99,552,553],{},"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.",[555,556,557],"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":291,"searchDepth":292,"depth":292,"links":559},[560,561],{"id":329,"depth":292,"text":330},{"id":522,"depth":292,"text":523},"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.","fa6-solid:cloud-arrow-up",{},"Upload creative media",{"title":19,"description":562},"2026-05-06","xo5KFCBfobmTFbqIueWZhX57RtsDxhSLDbfQ4P-WLOg",{"id":570,"title":29,"body":571,"description":857,"extension":300,"icon":858,"iconInvert":22,"meta":859,"navTitle":860,"navigation":304,"path":30,"related":861,"section":867,"sectionOrder":399,"seo":868,"stem":31,"type":309,"updatedAt":869,"wip":22,"__hash__":870},"docs\u002Fdocs\u002Fclients\u002F1.claude.md",{"type":96,"value":572,"toc":849},[573,580,591,596,622,626,682,691,695,709,713,716,746,750,753,779,786,790,796,802,808,812,821,834,840,846],[99,574,575,576,579],{},"Connect Claude to AdKit with one MCP connector and manage ",[103,577,578],{},"Meta, Google, TikTok, and Reddit"," ads from a normal conversation: pull campaigns, draft changes, generate creatives, and research competitors.",[99,581,582,583,586,587,590],{},"There is ",[103,584,585],{},"one AdKit connector for every platform",". You do not add a separate connector for Google or Meta. The same ",[323,588,589],{},"adkit_manage"," tool handles all of them once the ad account is connected in AdKit.",[99,592,593,594,280],{},"Using Claude Cowork instead? See ",[199,595,41],{"href":42},[597,598,600,605],"note",{"icon":599},"fa6-solid:circle-info",[99,601,602],{},[103,603,604],{},"Prerequisites",[606,607,608,615],"ul",{},[195,609,610,611,614],{},"A ",[103,612,613],{},"paid Claude plan"," (Pro, Max, Team, or Enterprise). Custom connectors are not available on the free tier.",[195,616,617,618,621],{},"An AdKit account with ",[199,619,620],{"href":90},"at least one ad account connected"," (Meta, Google, TikTok, or Reddit).",[115,623,625],{"id":624},"setup-2-minutes","Setup (2 minutes)",[192,627,628,660,672],{},[195,629,630,633,634,637,638,641,642,648,651,652,655,656,659],{},[103,631,632],{},"Add the connector."," In Claude, go to ",[103,635,636],{},"Customize → Connectors → Add Connector",". Name it ",[103,639,640],{},"AdKit"," and enter this URL:",[388,643,646],{"className":644,"code":645,"language":517,"meta":291},[515],"https:\u002F\u002Fmcp.adkit.so\n",[323,647,645],{"__ignoreMap":291},[649,650],"br",{},"Then enable it in a conversation: click ",[103,653,654],{},"+"," → ",[103,657,658],{},"Connectors"," → turn AdKit on.",[195,661,662,665,666],{},[103,663,664],{},"Ask Claude to connect."," Send this in a new chat:",[388,667,670],{"className":668,"code":669,"language":517,"meta":291},[515],"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",[323,671,669],{"__ignoreMap":291},[195,673,674,677,678,681],{},[103,675,676],{},"Done."," When Claude reports it's connected, you're ready. Ask it to ",[323,679,680],{},"list my ad accounts"," to confirm it can see them.",[683,684,685],"warning",{},[99,686,687,690],{},[103,688,689],{},"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.",[115,692,694],{"id":693},"optional-allow-file-uploads","Optional: allow file uploads",[99,696,697,698,700,701,706,707,280],{},"Only needed if you want to upload ad creatives through Claude. Add ",[323,699,325],{}," to your ",[199,702,705],{"href":703,"rel":704},"https:\u002F\u002Fclaude.ai\u002Fsettings\u002Fcapabilities",[203],"allowed domains"," so Claude can upload files directly. Full steps: ",[199,708,565],{"href":20},[115,710,712],{"id":711},"optional-install-ad-strategy-skills","Optional: install ad strategy skills",[99,714,715],{},"Teach Claude how to plan and run campaigns:",[388,717,721],{"className":718,"code":719,"language":720,"meta":291,"style":291},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx skills add adkit\u002Fskills --all -y -g\n","bash",[323,722,723],{"__ignoreMap":291},[396,724,725,728,731,734,737,740,743],{"class":398,"line":399},[396,726,727],{"class":428},"npx",[396,729,730],{"class":440}," skills",[396,732,733],{"class":440}," add",[396,735,736],{"class":440}," adkit\u002Fskills",[396,738,739],{"class":440}," --all",[396,741,742],{"class":440}," -y",[396,744,745],{"class":440}," -g\n",[115,747,749],{"id":748},"what-you-can-do","What you can do",[99,751,752],{},"Once connected, Claude can:",[606,754,755,761,767,773],{},[195,756,757,760],{},[103,758,759],{},"Manage campaigns:"," read live campaigns, draft budget, status, and targeting changes across Meta, Google, TikTok, and Reddit.",[195,762,763,766],{},[103,764,765],{},"Create ads:"," generate images and copy in AdKit Studio, then push them as drafts.",[195,768,769,772],{},[103,770,771],{},"Research competitors:"," search the ad library (500k+ ads, 1000+ advertisers).",[195,774,775,778],{},[103,776,777],{},"Analyze:"," pull performance and spot what needs attention.",[99,780,781,782,785],{},"Nothing goes live automatically. Every change is created as a ",[103,783,784],{},"draft"," for you to review and publish.",[115,787,789],{"id":788},"example-prompts","Example prompts",[388,791,794],{"className":792,"code":793,"language":517,"meta":291},[515],"Pull my active Meta campaigns and show me which ones are overspending this week.\n",[323,795,793],{"__ignoreMap":291},[388,797,800],{"className":798,"code":799,"language":517,"meta":291},[515],"Research my top 3 competitors' Facebook ads and summarize the angles they use.\n",[323,801,799],{"__ignoreMap":291},[388,803,806],{"className":804,"code":805,"language":517,"meta":291},[515],"Draft a new Google Search campaign for my SaaS, budget $30\u002Fday, and let me review before publishing.\n",[323,807,805],{"__ignoreMap":291},[115,809,811],{"id":810},"troubleshooting","Troubleshooting",[99,813,814,820],{},[103,815,816,817,819],{},"Claude only shows old or Meta-only tools (no ",[323,818,589],{},").","\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.",[99,822,823,826,827,829,830,833],{},[103,824,825],{},"Claude says a platform \"isn't connected\" even though it is.","\nThere is no separate per-platform connector. Google and Meta share ",[323,828,589],{},". Confirm the ad account is connected in AdKit (ask Claude to run ",[323,831,832],{},"adkit_status","), then retry. If tools are missing, reconnect as above.",[99,835,836,839],{},[103,837,838],{},"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.",[99,841,842,843,289],{},"Still stuck? ",[199,844,288],{"href":286,"rel":845},[203],[555,847,848],{},"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":291,"searchDepth":292,"depth":292,"links":850},[851,852,853,854,855,856],{"id":624,"depth":292,"text":625},{"id":693,"depth":292,"text":694},{"id":711,"depth":292,"text":712},{"id":748,"depth":292,"text":749},{"id":788,"depth":292,"text":789},{"id":810,"depth":292,"text":811},"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",[862,864],{"label":89,"to":90,"description":863},"Link Meta, Google, or TikTok so Claude has something to manage.",{"label":865,"to":78,"description":866},"Use AI agents with AdKit","What to do once the connector is set up.","Connect an agent",{"title":29,"description":857},"2026-06-07","-9nmERr0BiJjkSL58MBiFpzpuzh8hOvvEhWjiYmZjZM",{"id":872,"title":33,"body":873,"description":1072,"extension":300,"icon":1073,"iconInvert":304,"meta":1074,"navTitle":1075,"navigation":304,"path":34,"related":1076,"section":867,"sectionOrder":399,"seo":1081,"stem":35,"type":309,"updatedAt":1082,"wip":22,"__hash__":1083},"docs\u002Fdocs\u002Fclients\u002F10.hermes.md",{"type":96,"value":874,"toc":1066},[875,881,885,888,894,897,901,904,993,996,998,1051,1053,1058,1063],[99,876,877,878,880],{},"Connect Hermes to AdKit and manage ",[103,879,578],{}," ads. The CLI setup works whether Hermes runs locally or on a persistent server: Hermes sends you a public sign-in URL that you can open in your own browser.",[115,882,884],{"id":883},"recommended-let-hermes-set-it-up","Recommended: let Hermes set it up",[99,886,887],{},"Give Hermes this prompt:",[388,889,892],{"className":890,"code":891,"language":517,"meta":291},[515],"Help me set up AdKit.\n\n1. Install the CLI: npm i -g @adkit\u002Fcli\n2. Start `adkit setup` as a background process so it can keep waiting. Read its output and send me the login URL immediately.\n3. Wait for me to finish login in my browser, then wait for the background process to complete.\n4. Run `adkit status`.\n5. Run `adkit checkin --agent hermes`.\n6. Tell me if AdKit is connected and ready. If not, tell me what failed.\n\nIf you cannot install or run the AdKit CLI in this environment, stop and tell me to use the MCP setup instead.\n",[323,893,891],{"__ignoreMap":291},[99,895,896],{},"Open the URL Hermes sends you. After you approve access, the waiting CLI process stores the connection where Hermes runs.",[115,898,900],{"id":899},"alternative-mcp-with-an-api-key","Alternative: MCP with an API key",[99,902,903],{},"Use this when Hermes cannot run the CLI.",[192,905,906,913,983],{},[195,907,908,909,912],{},"Create a key under ",[199,910,204],{"href":201,"rel":911},[203],". It is shown once, so copy it immediately.",[195,914,915,916,919,920,386,923],{},"Add this to ",[323,917,918],{},"~\u002F.hermes\u002Fconfig.yaml",", replacing ",[323,921,922],{},"adk_your_key",[388,924,928],{"className":925,"code":926,"language":927,"meta":291,"style":291},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","mcp_servers:\n    adkit:\n        url: 'https:\u002F\u002Fmcp.adkit.so'\n        headers:\n            Authorization: 'Bearer adk_your_key'\n","yaml",[323,929,930,939,946,962,969],{"__ignoreMap":291},[396,931,932,936],{"class":398,"line":399},[396,933,935],{"class":934},"swJcz","mcp_servers",[396,937,938],{"class":402},":\n",[396,940,941,944],{"class":398,"line":292},[396,942,943],{"class":934},"    adkit",[396,945,938],{"class":402},[396,947,948,951,953,956,959],{"class":398,"line":307},[396,949,950],{"class":934},"        url",[396,952,386],{"class":402},[396,954,955],{"class":402}," '",[396,957,958],{"class":440},"https:\u002F\u002Fmcp.adkit.so",[396,960,961],{"class":402},"'\n",[396,963,964,967],{"class":398,"line":448},[396,965,966],{"class":934},"        headers",[396,968,938],{"class":402},[396,970,971,974,976,978,981],{"class":398,"line":454},[396,972,973],{"class":934},"            Authorization",[396,975,386],{"class":402},[396,977,955],{"class":402},[396,979,980],{"class":440},"Bearer adk_your_key",[396,982,961],{"class":402},[195,984,985,986,989,990,280],{},"Run ",[323,987,988],{},"\u002Freload-mcp"," in Hermes, then ask Hermes to run the AdKit check-in tool with ",[323,991,992],{},"agentId: \"hermes\"",[99,994,995],{},"Keep the key in Hermes's MCP configuration, not in an agent conversation.",[115,997,811],{"id":810},[525,999,1000,1015,1022,1038],{},[529,1001,1004],{"icon":1002,"label":1003},"fa6-solid:terminal","adkit: command not found",[99,1005,1006,1007,1010,1011,1014],{},"The CLI is not installed in that environment. Run ",[323,1008,1009],{},"npm i -g @adkit\u002Fcli",", then try ",[323,1012,1013],{},"adkit status"," again. On a server, make sure it is installed in the same environment Hermes runs in.",[529,1016,1019],{"icon":1017,"label":1018},"fa6-solid:clock","The setup command keeps waiting",[99,1020,1021],{},"Complete the sign-in URL Hermes sent you. The background process must remain running until browser authorization finishes.",[529,1023,1026],{"icon":1024,"label":1025},"gravity-ui:logo-mcp","MCP shows zero tools",[99,1027,1028,1029,1031,1032,1034,1035,1037],{},"Check that ",[323,1030,918],{}," points to ",[323,1033,958],{}," and carries a valid bearer key, then run ",[323,1036,988],{},". Verify the connection by invoking the AdKit check-in tool from an actual Hermes conversation.",[529,1039,1042],{"icon":1040,"label":1041},"fa6-solid:rotate","Rotate or revoke a key",[99,1043,346,1044,1047,1048,1050],{},[199,1045,204],{"href":233,"rel":1046},[203]," in AdKit to revoke a key and create a new one. Then update ",[323,1049,918],{}," with the new value.",[115,1052,749],{"id":748},[99,1054,1055,1056,785],{},"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 ",[103,1057,784],{},[99,1059,283,1060,289],{},[199,1061,288],{"href":286,"rel":1062},[203],[555,1064,1065],{},"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 .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":291,"searchDepth":292,"depth":292,"links":1067},[1068,1069,1070,1071],{"id":883,"depth":292,"text":884},{"id":899,"depth":292,"text":900},{"id":810,"depth":292,"text":811},{"id":748,"depth":292,"text":749},"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",[1077,1079],{"label":81,"to":82,"description":1078},"Give each brand its own project and tell Hermes which one to use.",{"label":865,"to":78,"description":1080},"What to do once everything is connected.",{"title":33,"description":1072},"2026-08-02","o6smxNNn7IeHR_-TOMoWKMVwOA-k-9sNGrwIWakhhS0",{"id":1085,"title":37,"body":1086,"description":1158,"extension":300,"icon":1159,"iconInvert":22,"meta":1160,"navTitle":1161,"navigation":304,"path":38,"related":1162,"section":867,"sectionOrder":399,"seo":1166,"stem":39,"type":309,"updatedAt":1082,"wip":22,"__hash__":1167},"docs\u002Fdocs\u002Fclients\u002F11.n8n.md",{"type":96,"value":1087,"toc":1153},[1088,1094,1098,1125,1128,1132,1135,1141,1143,1148],[99,1089,1090,1091,1093],{},"Use AdKit inside n8n to automate your ",[103,1092,578],{}," ad workflows through the MCP Client Tool.",[115,1095,1097],{"id":1096},"connect-the-mcp-client-tool","Connect the MCP Client Tool",[192,1099,1100,1106,1113,1122],{},[195,1101,1102,1103,912],{},"Create an API key under ",[199,1104,204],{"href":201,"rel":1105},[203],[195,1107,1108,1109,1112],{},"Add an ",[103,1110,1111],{},"MCP Client Tool"," node to your workflow.",[195,1114,1115,1116],{},"Configure it with these values:",[388,1117,1120],{"className":1118,"code":1119,"language":517,"meta":291},[515],"Endpoint: https:\u002F\u002Fmcp.adkit.so\nServer transport: HTTP Streamable\nAuthentication: Bearer Auth\nBearer token: adk_your_key\n",[323,1121,1119],{"__ignoreMap":291},[195,1123,1124],{},"Connect the MCP Client Tool to your AI Agent node and save the workflow.",[99,1126,1127],{},"Keep the key in the n8n credential, not in a workflow prompt or chat message.",[115,1129,1131],{"id":1130},"check-it-worked","Check it worked",[99,1133,1134],{},"Run the workflow with this test message:",[388,1136,1139],{"className":1137,"code":1138,"language":517,"meta":291},[515],"Use the AdKit checkin tool with agentId: \"n8n\", then list my connected ad accounts.\nTell me if AdKit is connected and ready. If not, tell me what failed.\n",[323,1140,1138],{"__ignoreMap":291},[115,1142,749],{"id":748},[99,1144,1145,1146,785],{},"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 ",[103,1147,784],{},[99,1149,283,1150,289],{},[199,1151,288],{"href":286,"rel":1152},[203],{"title":291,"searchDepth":292,"depth":292,"links":1154},[1155,1156,1157],{"id":1096,"depth":292,"text":1097},{"id":1130,"depth":292,"text":1131},{"id":748,"depth":292,"text":749},"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",[1163,1165],{"label":81,"to":82,"description":1164},"Give each brand its own project and tell n8n which one to use.",{"label":865,"to":78,"description":1080},{"title":37,"description":1158},"_SImOjMrVfGvDF0vcepx9iL5iYjTWWhek_O4ZeRPaCo",{"id":1169,"title":41,"body":1170,"description":1266,"extension":300,"icon":858,"iconInvert":22,"meta":1267,"navTitle":1268,"navigation":304,"path":42,"related":1269,"section":867,"sectionOrder":399,"seo":1274,"stem":43,"type":309,"updatedAt":869,"wip":22,"__hash__":1275},"docs\u002Fdocs\u002Fclients\u002F2.claude-cowork.md",{"type":96,"value":1171,"toc":1260},[1172,1178,1181,1185,1218,1226,1228,1231,1236,1238,1248,1250,1255],[99,1173,1174,1175,1177],{},"Connect Claude Cowork to AdKit and manage ",[103,1176,578],{}," ads from a normal conversation. The one connector covers every platform once your ad account is connected in AdKit.",[99,1179,1180],{},"Adding the AdKit connector takes about a minute.",[115,1182,1184],{"id":1183},"setup","Setup",[192,1186,1187,1195,1206],{},[195,1188,1189,1191,1192,1194],{},[103,1190,632],{}," Go to ",[103,1193,636],{}," in Claude.",[195,1196,1197,1200,1201],{},[103,1198,1199],{},"Name it AdKit"," and enter this address:",[388,1202,1204],{"className":1203,"code":645,"language":517,"meta":291},[515],[323,1205,645],{"__ignoreMap":291},[195,1207,1208,1211,1212,1214,1215,1217],{},[103,1209,1210],{},"Turn it on."," In a conversation, click ",[103,1213,654],{},", open ",[103,1216,658],{},", and switch AdKit on.",[683,1219,1220],{},[99,1221,1222,1225],{},[103,1223,1224],{},"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.",[115,1227,1131],{"id":1130},[99,1229,1230],{},"Send this in a new conversation. It confirms Cowork can actually use AdKit:",[388,1232,1234],{"className":1233,"code":669,"language":517,"meta":291},[515],[323,1235,669],{"__ignoreMap":291},[115,1237,694],{"id":693},[99,1239,1240,1241,700,1243,706,1246,280],{},"Only needed if you want to upload ad creatives through Cowork. Add ",[323,1242,325],{},[199,1244,705],{"href":703,"rel":1245},[203],[199,1247,565],{"href":20},[115,1249,749],{"id":748},[99,1251,1252,1253,785],{},"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 ",[103,1254,784],{},[99,1256,283,1257,289],{},[199,1258,288],{"href":286,"rel":1259},[203],{"title":291,"searchDepth":292,"depth":292,"links":1261},[1262,1263,1264,1265],{"id":1183,"depth":292,"text":1184},{"id":1130,"depth":292,"text":1131},{"id":693,"depth":292,"text":694},{"id":748,"depth":292,"text":749},"Connect Claude Cowork to AdKit by adding the MCP connector and manage Meta, Google, TikTok, and Reddit ads in natural language.",{},"Claude Cowork",[1270,1272],{"label":29,"to":30,"description":1271},"The standard Claude web and Desktop setup.",{"label":81,"to":82,"description":1273},"Give each brand its own project and tell Claude which one to use.",{"title":41,"description":1266},"baWhtNQlbJ3hLKH-8DqwVNTY_CV4AMWwqRBzVXftaMA",{"id":1277,"title":45,"body":1278,"description":1409,"extension":300,"icon":1410,"iconInvert":304,"meta":1411,"navTitle":1412,"navigation":304,"path":46,"related":1413,"section":867,"sectionOrder":399,"seo":1417,"stem":47,"type":309,"updatedAt":1418,"wip":22,"__hash__":1419},"docs\u002Fdocs\u002Fclients\u002F3.chatgpt.md",{"type":96,"value":1279,"toc":1402},[1280,1286,1288,1291,1328,1333,1336,1379,1381,1384,1390,1392,1397],[99,1281,1282,1283,1285],{},"Add AdKit to ChatGPT as an app, then manage ",[103,1284,578],{}," ads from a normal conversation. One app covers every platform once your ad account is connected in AdKit.",[115,1287,1184],{"id":1183},[99,1289,1290],{},"AdKit is an approved app in the ChatGPT app directory, so installing it takes one click:",[192,1292,1293,1304,1322],{},[195,1294,1295,1191,1298,1303],{},[103,1296,1297],{},"Open the AdKit app page.",[199,1299,1302],{"href":1300,"rel":1301},"https:\u002F\u002Fchatgpt.com\u002Fplugins\u002Fplugin_asdk_app_6a1e848decdc8191a4974b315c51661f",[203],"AdKit on ChatGPT"," and log in to ChatGPT if you are not already.",[195,1305,1306,1309,1310,1313,1314,1317,1318,1321],{},[103,1307,1308],{},"Install it."," Click ",[103,1311,1312],{},"Install plugin"," (or ",[103,1315,1316],{},"Connect","), review what AdKit can access, and pick ",[103,1319,1320],{},"Sign in with AdKit"," to link your account.",[195,1323,1324,1327],{},[103,1325,1326],{},"Add it to a chat."," Open a new chat and add AdKit from the tools or apps menu, or just start your prompt with \"AdKit\".",[1329,1330,1332],"h3",{"id":1331},"manual-setup","Manual setup",[99,1334,1335],{},"Use this if the one-click install is not available to you, for example when a workspace admin restricts app installs:",[192,1337,1338,1356,1369],{},[195,1339,1340,1191,1343,1348,1349,354,1352,1355],{},[103,1341,1342],{},"Open Apps.",[199,1344,1347],{"href":1345,"rel":1346},"https:\u002F\u002Fchatgpt.com\u002F#settings\u002FConnectors",[203],"Settings → Apps"," in ChatGPT. If you don't see ",[103,1350,1351],{},"New App",[103,1353,1354],{},"Developer mode"," first, or ask your workspace admin to turn it on.",[195,1357,1358,1309,1361,1363,1364],{},[103,1359,1360],{},"Create a new app.",[103,1362,1351],{}," and paste this address:",[388,1365,1367],{"className":1366,"code":645,"language":517,"meta":291},[515],[323,1368,645],{"__ignoreMap":291},[195,1370,1371,1374,1375,1378],{},[103,1372,1373],{},"Finish setup."," Set authentication to ",[103,1376,1377],{},"OAuth",", review the warning, and create the app. If ChatGPT opens a browser window, sign in to AdKit to finish.",[115,1380,1131],{"id":1130},[99,1382,1383],{},"Send this in a new chat. It confirms ChatGPT can actually use AdKit, not just see the app:",[388,1385,1388],{"className":1386,"code":1387,"language":517,"meta":291},[515],"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",[323,1389,1387],{"__ignoreMap":291},[115,1391,749],{"id":748},[99,1393,1394,1395,785],{},"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 ",[103,1396,784],{},[99,1398,283,1399,289],{},[199,1400,288],{"href":286,"rel":1401},[203],{"title":291,"searchDepth":292,"depth":292,"links":1403},[1404,1407,1408],{"id":1183,"depth":292,"text":1184,"children":1405},[1406],{"id":1331,"depth":307,"text":1332},{"id":1130,"depth":292,"text":1131},{"id":748,"depth":292,"text":749},"Add AdKit to ChatGPT as an app and manage Meta, Google, TikTok, and Reddit ads in plain language.","\u002Fimages\u002Flogos\u002Fopenai.png",{},"ChatGPT",[1414,1416],{"label":81,"to":82,"description":1415},"Give each brand its own project and tell ChatGPT which one to use.",{"label":865,"to":78,"description":1080},{"title":45,"description":1409},"2026-07-24","mtSKmN5zArDk07O2C-qWoRBdC_SlsfuR9jtuclvIEXo",{"id":1421,"title":49,"body":1422,"description":1522,"extension":300,"icon":1523,"iconInvert":22,"meta":1524,"navTitle":1525,"navigation":304,"path":50,"related":1526,"section":867,"sectionOrder":399,"seo":1530,"stem":51,"type":309,"updatedAt":869,"wip":22,"__hash__":1531},"docs\u002Fdocs\u002Fclients\u002F4.perplexity.md",{"type":96,"value":1423,"toc":1517},[1424,1430,1432,1494,1496,1499,1505,1507,1512],[99,1425,1426,1427,1429],{},"Add AdKit to Perplexity as a custom connector, then manage ",[103,1428,578],{}," ads from a normal conversation. One connector covers every platform once your ad account is connected in AdKit.",[115,1431,1184],{"id":1183},[192,1433,1434,1447,1489],{},[195,1435,1436,1191,1439,1442,1443,1446],{},[103,1437,1438],{},"Open Connectors.",[103,1440,1441],{},"Account settings → Connectors"," in Perplexity. If you don't see ",[103,1444,1445],{},"+ Custom connector",", remote connectors aren't turned on for your account or workspace yet.",[195,1448,1449,1309,1452,1454,1455,1458,1459,1484],{},[103,1450,1451],{},"Add a remote connector.",[103,1453,1445],{},", choose ",[103,1456,1457],{},"Remote",", then fill in:",[606,1460,1461,1467,1473,1479],{},[195,1462,1463,1466],{},[103,1464,1465],{},"Name:"," AdKit",[195,1468,1469,1472],{},[103,1470,1471],{},"Authentication:"," OAuth",[195,1474,1475,1478],{},[103,1476,1477],{},"Transport:"," Streamable HTTP",[195,1480,1481],{},[103,1482,1483],{},"URL:",[388,1485,1487],{"className":1486,"code":645,"language":517,"meta":291},[515],[323,1488,645],{"__ignoreMap":291},[195,1490,1491,1493],{},[103,1492,1210],{}," Add the connector, then click the AdKit card to sign in to AdKit and enable it.",[115,1495,1131],{"id":1130},[99,1497,1498],{},"Send this in a new chat. It confirms Perplexity can actually use AdKit:",[388,1500,1503],{"className":1501,"code":1502,"language":517,"meta":291},[515],"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",[323,1504,1502],{"__ignoreMap":291},[115,1506,749],{"id":748},[99,1508,1509,1510,785],{},"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 ",[103,1511,784],{},[99,1513,283,1514,289],{},[199,1515,288],{"href":286,"rel":1516},[203],{"title":291,"searchDepth":292,"depth":292,"links":1518},[1519,1520,1521],{"id":1183,"depth":292,"text":1184},{"id":1130,"depth":292,"text":1131},{"id":748,"depth":292,"text":749},"Add AdKit to Perplexity as a custom connector and manage Meta, Google, TikTok, and Reddit ads in plain language.","\u002Fimages\u002Flogos\u002Fperplexity.png",{},"Perplexity",[1527,1529],{"label":81,"to":82,"description":1528},"Give each brand its own project and tell Perplexity which one to use.",{"label":865,"to":78,"description":1080},{"title":49,"description":1522},"IJYHST4VQ1UvyIOijwY4R2fcuzduJZ2wXMBi2mj5sF0",{"id":1533,"title":53,"body":1534,"description":1618,"extension":300,"icon":1619,"iconInvert":22,"meta":1620,"navTitle":1621,"navigation":304,"path":54,"related":1622,"section":867,"sectionOrder":399,"seo":1626,"stem":55,"type":309,"updatedAt":869,"wip":22,"__hash__":1627},"docs\u002Fdocs\u002Fclients\u002F5.claude-code.md",{"type":96,"value":1535,"toc":1613},[1536,1542,1546,1549,1555,1559,1599,1601,1606,1611],[99,1537,1538,1539,1541],{},"Connect Claude Code to AdKit and manage ",[103,1540,578],{}," ads from the terminal. Pick the CLI path (recommended) or the MCP server.",[115,1543,1545],{"id":1544},"recommended-let-claude-code-set-it-up","Recommended: let Claude Code set it up",[99,1547,1548],{},"Paste this into Claude Code. It installs the AdKit CLI and connects it for you:",[388,1550,1553],{"className":1551,"code":1552,"language":517,"meta":291},[515],"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",[323,1554,1552],{"__ignoreMap":291},[115,1556,1558],{"id":1557},"alternative-mcp-server","Alternative: MCP server",[192,1560,1561,1590],{},[195,1562,1563,1564],{},"Add the server in Claude Code:",[388,1565,1567],{"className":718,"code":1566,"language":720,"meta":291,"style":291},"claude mcp add --transport http adkit https:\u002F\u002Fmcp.adkit.so\n",[323,1568,1569],{"__ignoreMap":291},[396,1570,1571,1573,1576,1578,1581,1584,1587],{"class":398,"line":399},[396,1572,340],{"class":428},[396,1574,1575],{"class":440}," mcp",[396,1577,733],{"class":440},[396,1579,1580],{"class":440}," --transport",[396,1582,1583],{"class":440}," http",[396,1585,1586],{"class":440}," adkit",[396,1588,1589],{"class":440}," https:\u002F\u002Fmcp.adkit.so\n",[195,1591,1592,1593],{},"Then paste this to confirm it works:",[388,1594,1597],{"className":1595,"code":1596,"language":517,"meta":291},[515],"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",[323,1598,1596],{"__ignoreMap":291},[115,1600,749],{"id":748},[99,1602,1603,1604,785],{},"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 ",[103,1605,784],{},[99,1607,283,1608,289],{},[199,1609,288],{"href":286,"rel":1610},[203],[555,1612,848],{},{"title":291,"searchDepth":292,"depth":292,"links":1614},[1615,1616,1617],{"id":1544,"depth":292,"text":1545},{"id":1557,"depth":292,"text":1558},{"id":748,"depth":292,"text":749},"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",[1623,1625],{"label":81,"to":82,"description":1624},"Give each brand its own project and tell Claude Code which one to use.",{"label":865,"to":78,"description":1080},{"title":53,"description":1618},"L1QEcVwaGFceU6L8QWwjLfMnFAPLsZOiojpd39uO0NM",{"id":1629,"title":57,"body":1630,"description":1725,"extension":300,"icon":1726,"iconInvert":22,"meta":1727,"navTitle":1728,"navigation":304,"path":58,"related":1729,"section":867,"sectionOrder":399,"seo":1733,"stem":59,"type":309,"updatedAt":869,"wip":22,"__hash__":1734},"docs\u002Fdocs\u002Fclients\u002F6.codex.md",{"type":96,"value":1631,"toc":1720},[1632,1637,1641,1644,1650,1652,1706,1708,1713,1718],[99,1633,1634,1635,1541],{},"Connect Codex to AdKit and manage ",[103,1636,578],{},[115,1638,1640],{"id":1639},"recommended-let-codex-set-it-up","Recommended: let Codex set it up",[99,1642,1643],{},"Paste this into Codex. It installs the AdKit CLI and connects it for you:",[388,1645,1648],{"className":1646,"code":1647,"language":517,"meta":291},[515],"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",[323,1649,1647],{"__ignoreMap":291},[115,1651,1558],{"id":1557},[192,1653,1654,1678,1698],{},[195,1655,1656,1657],{},"Add the server in Codex:",[388,1658,1660],{"className":718,"code":1659,"language":720,"meta":291,"style":291},"codex mcp add adkit --url https:\u002F\u002Fmcp.adkit.so\n",[323,1661,1662],{"__ignoreMap":291},[396,1663,1664,1667,1669,1671,1673,1676],{"class":398,"line":399},[396,1665,1666],{"class":428},"codex",[396,1668,1575],{"class":440},[396,1670,733],{"class":440},[396,1672,1586],{"class":440},[396,1674,1675],{"class":440}," --url",[396,1677,1589],{"class":440},[195,1679,1680,1681],{},"If Codex asks you to sign in:",[388,1682,1684],{"className":718,"code":1683,"language":720,"meta":291,"style":291},"codex mcp login adkit\n",[323,1685,1686],{"__ignoreMap":291},[396,1687,1688,1690,1692,1695],{"class":398,"line":399},[396,1689,1666],{"class":428},[396,1691,1575],{"class":440},[396,1693,1694],{"class":440}," login",[396,1696,1697],{"class":440}," adkit\n",[195,1699,1592,1700],{},[388,1701,1704],{"className":1702,"code":1703,"language":517,"meta":291},[515],"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",[323,1705,1703],{"__ignoreMap":291},[115,1707,749],{"id":748},[99,1709,1710,1711,785],{},"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 ",[103,1712,784],{},[99,1714,283,1715,289],{},[199,1716,288],{"href":286,"rel":1717},[203],[555,1719,848],{},{"title":291,"searchDepth":292,"depth":292,"links":1721},[1722,1723,1724],{"id":1639,"depth":292,"text":1640},{"id":1557,"depth":292,"text":1558},{"id":748,"depth":292,"text":749},"Connect Codex to AdKit through the CLI or the MCP server and manage Meta, Google, TikTok, and Reddit ads.","\u002Fimages\u002Flogos\u002Fcodex.svg",{},"Codex",[1730,1732],{"label":81,"to":82,"description":1731},"Give each brand its own project and tell Codex which one to use.",{"label":865,"to":78,"description":1080},{"title":57,"description":1725},"-D5RGFk3eJ98UJQv39FpZeFe1efnhkWM15_WjSYwi4Y",{"id":1736,"title":61,"body":1737,"description":1875,"extension":300,"icon":1876,"iconInvert":304,"meta":1877,"navTitle":1878,"navigation":304,"path":62,"related":1879,"section":867,"sectionOrder":399,"seo":1883,"stem":63,"type":309,"updatedAt":869,"wip":22,"__hash__":1884},"docs\u002Fdocs\u002Fclients\u002F7.cursor.md",{"type":96,"value":1738,"toc":1869},[1739,1745,1749,1752,1758,1762,1771,1843,1845,1848,1854,1856,1861,1866],[99,1740,1741,1742,1744],{},"Connect Cursor to AdKit and manage ",[103,1743,578],{}," ads while you work. The fastest way is the MCP server.",[115,1746,1748],{"id":1747},"recommended-one-click-install","Recommended: one-click install",[99,1750,1751],{},"Open this link to install AdKit straight into Cursor:",[99,1753,1754],{},[199,1755,1757],{"href":1756},"cursor:\u002F\u002Fanysphere.cursor-deeplink\u002Fmcp\u002Finstall?name=adkit&config=eyJ1cmwiOiJodHRwczovL21jcC5hZGtpdC5zbyJ9","Install with Cursor",[115,1759,1761],{"id":1760},"manual-install","Manual install",[99,1763,915,1764,1766,1767,1770],{},[323,1765,505],{}," in your project, or ",[323,1768,1769],{},"~\u002F.cursor\u002Fmcp.json"," for every project:",[388,1772,1774],{"className":390,"code":1773,"language":392,"meta":291,"style":291},"{\n  \"mcpServers\": {\n    \"adkit\": {\n      \"url\": \"https:\u002F\u002Fmcp.adkit.so\"\n    }\n  }\n}\n",[323,1775,1776,1780,1794,1807,1828,1832,1838],{"__ignoreMap":291},[396,1777,1778],{"class":398,"line":399},[396,1779,403],{"class":402},[396,1781,1782,1785,1788,1790,1792],{"class":398,"line":292},[396,1783,1784],{"class":402},"  \"",[396,1786,1787],{"class":411},"mcpServers",[396,1789,415],{"class":402},[396,1791,386],{"class":402},[396,1793,420],{"class":402},[396,1795,1796,1798,1801,1803,1805],{"class":398,"line":307},[396,1797,408],{"class":402},[396,1799,1800],{"class":428},"adkit",[396,1802,415],{"class":402},[396,1804,386],{"class":402},[396,1806,420],{"class":402},[396,1808,1809,1812,1816,1818,1820,1823,1825],{"class":398,"line":448},[396,1810,1811],{"class":402},"      \"",[396,1813,1815],{"class":1814},"sbssI","url",[396,1817,415],{"class":402},[396,1819,386],{"class":402},[396,1821,1822],{"class":402}," \"",[396,1824,958],{"class":440},[396,1826,1827],{"class":402},"\"\n",[396,1829,1830],{"class":398,"line":454},[396,1831,451],{"class":402},[396,1833,1835],{"class":398,"line":1834},6,[396,1836,1837],{"class":402},"  }\n",[396,1839,1841],{"class":398,"line":1840},7,[396,1842,457],{"class":402},[115,1844,1131],{"id":1130},[99,1846,1847],{},"Paste this in Cursor's chat. It confirms Cursor can actually use AdKit:",[388,1849,1852],{"className":1850,"code":1851,"language":517,"meta":291},[515],"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",[323,1853,1851],{"__ignoreMap":291},[115,1855,749],{"id":748},[99,1857,1858,1859,785],{},"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 ",[103,1860,784],{},[99,1862,283,1863,289],{},[199,1864,288],{"href":286,"rel":1865},[203],[555,1867,1868],{},"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":291,"searchDepth":292,"depth":292,"links":1870},[1871,1872,1873,1874],{"id":1747,"depth":292,"text":1748},{"id":1760,"depth":292,"text":1761},{"id":1130,"depth":292,"text":1131},{"id":748,"depth":292,"text":749},"Connect Cursor to AdKit through the MCP server and manage Meta, Google, TikTok, and Reddit ads.","\u002Fimages\u002Flogos\u002Fcursor.png",{},"Cursor",[1880,1882],{"label":81,"to":82,"description":1881},"Give each brand its own project and tell Cursor which one to use.",{"label":865,"to":78,"description":1080},{"title":61,"description":1875},"4p3A3RTN9q4Yakf5z19F_WX_K6zdlBVrDN6bhewxATg",{"id":1886,"title":65,"body":1887,"description":1963,"extension":300,"icon":1964,"iconInvert":22,"meta":1965,"navTitle":1966,"navigation":304,"path":66,"related":1967,"section":867,"sectionOrder":399,"seo":1971,"stem":67,"type":309,"updatedAt":869,"wip":22,"__hash__":1972},"docs\u002Fdocs\u002Fclients\u002F8.gemini.md",{"type":96,"value":1888,"toc":1958},[1889,1894,1898,1901,1907,1909,1944,1946,1951,1956],[99,1890,1891,1892,1541],{},"Connect Gemini CLI to AdKit and manage ",[103,1893,578],{},[115,1895,1897],{"id":1896},"recommended-let-gemini-set-it-up","Recommended: let Gemini set it up",[99,1899,1900],{},"Paste this into Gemini CLI. It installs the AdKit CLI and connects it for you:",[388,1902,1905],{"className":1903,"code":1904,"language":517,"meta":291},[515],"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",[323,1906,1904],{"__ignoreMap":291},[115,1908,1558],{"id":1557},[192,1910,1911,1936],{},[195,1912,1913,1914],{},"Add the server in Gemini CLI:",[388,1915,1917],{"className":718,"code":1916,"language":720,"meta":291,"style":291},"gemini mcp add --transport http adkit https:\u002F\u002Fmcp.adkit.so\n",[323,1918,1919],{"__ignoreMap":291},[396,1920,1921,1924,1926,1928,1930,1932,1934],{"class":398,"line":399},[396,1922,1923],{"class":428},"gemini",[396,1925,1575],{"class":440},[396,1927,733],{"class":440},[396,1929,1580],{"class":440},[396,1931,1583],{"class":440},[396,1933,1586],{"class":440},[396,1935,1589],{"class":440},[195,1937,1592,1938],{},[388,1939,1942],{"className":1940,"code":1941,"language":517,"meta":291},[515],"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",[323,1943,1941],{"__ignoreMap":291},[115,1945,749],{"id":748},[99,1947,1948,1949,785],{},"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 ",[103,1950,784],{},[99,1952,283,1953,289],{},[199,1954,288],{"href":286,"rel":1955},[203],[555,1957,848],{},{"title":291,"searchDepth":292,"depth":292,"links":1959},[1960,1961,1962],{"id":1896,"depth":292,"text":1897},{"id":1557,"depth":292,"text":1558},{"id":748,"depth":292,"text":749},"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",[1968,1970],{"label":81,"to":82,"description":1969},"Give each brand its own project and tell Gemini which one to use.",{"label":865,"to":78,"description":1080},{"title":65,"description":1963},"Dxta2fb3IrcqoIIZcgxkbUEOqKf5o5ycYLVCZOgMdew",{"id":1974,"title":69,"body":1975,"description":2128,"extension":300,"icon":2129,"iconInvert":22,"meta":2130,"navTitle":2131,"navigation":304,"path":70,"related":2132,"section":867,"sectionOrder":399,"seo":2136,"stem":71,"type":309,"updatedAt":1082,"wip":22,"__hash__":2137},"docs\u002Fdocs\u002Fclients\u002F9.openclaw.md",{"type":96,"value":1976,"toc":2122},[1977,1983,1987,1990,1996,1999,2001,2004,2065,2068,2070,2107,2109,2114,2119],[99,1978,1979,1980,1982],{},"Connect OpenClaw to AdKit and manage ",[103,1981,578],{}," ads. The CLI setup works whether OpenClaw runs locally or on a persistent server: OpenClaw sends you a public sign-in URL that you can open in your own browser.",[115,1984,1986],{"id":1985},"recommended-let-openclaw-set-it-up","Recommended: let OpenClaw set it up",[99,1988,1989],{},"Give OpenClaw this prompt:",[388,1991,1994],{"className":1992,"code":1993,"language":517,"meta":291},[515],"Help me set up AdKit.\n\n1. Install the CLI: npm i -g @adkit\u002Fcli\n2. Run `adkit setup`. Keep the command running in the background if needed, read its output, and send me the login URL immediately.\n3. Wait for me to finish login in my browser, then wait for the setup command to complete.\n4. Run `adkit status`.\n5. Run `adkit checkin --agent openclaw`.\n6. Tell me if AdKit is connected and ready. If not, tell me what failed.\n\nIf you cannot install or run the AdKit CLI in this environment, stop and tell me to use the MCP setup instead.\n",[323,1995,1993],{"__ignoreMap":291},[99,1997,1998],{},"Open the URL OpenClaw sends you. After you approve access, the waiting CLI process stores the connection where OpenClaw runs.",[115,2000,900],{"id":899},[99,2002,2003],{},"Use this when OpenClaw cannot run the CLI.",[192,2005,2006,2016,2021,2050,2059],{},[195,2007,985,2008,2011,2012,2015],{},[323,2009,2010],{},"openclaw --version",". Update OpenClaw if it is older than ",[103,2013,2014],{},"2026.5.12","; older versions do not include the live MCP verification commands below.",[195,2017,908,2018,912],{},[199,2019,204],{"href":201,"rel":2020},[203],[195,2022,2023,2024,386,2026],{},"Add AdKit to OpenClaw, replacing ",[323,2025,922],{},[388,2027,2029],{"className":718,"code":2028,"language":720,"meta":291,"style":291},"openclaw mcp set adkit '{\"url\":\"https:\u002F\u002Fmcp.adkit.so\",\"transport\":\"streamable-http\",\"headers\":{\"Authorization\":\"Bearer adk_your_key\"}}'\n",[323,2030,2031],{"__ignoreMap":291},[396,2032,2033,2036,2038,2041,2043,2045,2048],{"class":398,"line":399},[396,2034,2035],{"class":428},"openclaw",[396,2037,1575],{"class":440},[396,2039,2040],{"class":440}," set",[396,2042,1586],{"class":440},[396,2044,955],{"class":402},[396,2046,2047],{"class":440},"{\"url\":\"https:\u002F\u002Fmcp.adkit.so\",\"transport\":\"streamable-http\",\"headers\":{\"Authorization\":\"Bearer adk_your_key\"}}",[396,2049,961],{"class":402},[195,2051,985,2052,2055,2056,280],{},[323,2053,2054],{},"openclaw mcp reload",", followed by ",[323,2057,2058],{},"openclaw mcp doctor adkit --probe",[195,2060,2061,2062,280],{},"Ask OpenClaw to run the AdKit check-in tool with ",[323,2063,2064],{},"agentId: \"openclaw\"",[99,2066,2067],{},"Keep the key in OpenClaw's MCP configuration, not in an agent conversation.",[115,2069,811],{"id":810},[525,2071,2072,2081,2086,2099],{},[529,2073,2074],{"icon":1002,"label":1003},[99,2075,1006,2076,1010,2078,2080],{},[323,2077,1009],{},[323,2079,1013],{}," again. On a server, make sure it is installed in the same environment OpenClaw runs in.",[529,2082,2083],{"icon":1017,"label":1018},[99,2084,2085],{},"Complete the sign-in URL OpenClaw sent you. The remote command must remain running until browser authorization finishes.",[529,2087,2088],{"icon":1024,"label":1025},[99,2089,2090,2091,2094,2095,183,2097,280],{},"Re-run the ",[323,2092,2093],{},"openclaw mcp set adkit ..."," command above, check that the bearer key is valid, then run ",[323,2096,2054],{},[323,2098,2058],{},[529,2100,2101],{"icon":1040,"label":1041},[99,2102,346,2103,2106],{},[199,2104,204],{"href":233,"rel":2105},[203]," in AdKit to revoke a key and create a new one. Then update the MCP configuration with the new value.",[115,2108,749],{"id":748},[99,2110,2111,2112,785],{},"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 ",[103,2113,784],{},[99,2115,283,2116,289],{},[199,2117,288],{"href":286,"rel":2118},[203],[555,2120,2121],{},"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 pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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":291,"searchDepth":292,"depth":292,"links":2123},[2124,2125,2126,2127],{"id":1985,"depth":292,"text":1986},{"id":899,"depth":292,"text":900},{"id":810,"depth":292,"text":811},{"id":748,"depth":292,"text":749},"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",[2133,2135],{"label":81,"to":82,"description":2134},"Give each brand its own project and tell OpenClaw which one to use.",{"label":865,"to":78,"description":1080},{"title":69,"description":2128},"__Fri842eTtpE43OrejecJKzcDXNS3qQfJf5RDaJqvU",{"id":2139,"title":73,"body":2140,"description":2277,"extension":300,"icon":2278,"iconInvert":22,"meta":2279,"navTitle":2280,"navigation":304,"path":74,"related":2281,"section":867,"sectionOrder":399,"seo":2286,"stem":75,"type":309,"updatedAt":1082,"wip":22,"__hash__":2287},"docs\u002Fdocs\u002Fconnection-troubleshooting.md",{"type":96,"value":2141,"toc":2268},[2142,2145,2149,2160,2166,2170,2173,2178,2182,2189,2197,2201,2208,2217,2221,2224,2233,2237,2240,2257,2261],[99,2143,2144],{},"Most agent connections finish in under a minute. When one doesn't — or a connection that used to work stops — it's almost always one of the causes below. Work through them in order; each takes under a minute to check.",[115,2146,2148],{"id":2147},"_1-the-connector-is-not-enabled-in-this-conversation","1. The connector is not enabled in this conversation",[99,2150,2151,2152,655,2154,2156,2157,2159],{},"Installing AdKit once doesn't turn it on everywhere. In Claude, connectors are enabled per conversation: click ",[103,2153,654],{},[103,2155,658],{}," and check that ",[103,2158,640],{}," is switched on. In ChatGPT, the app must be selected for the current chat.",[99,2161,2162,2165],{},[103,2163,2164],{},"Fix:"," enable AdKit in the conversation, then ask your agent to try again.",[115,2167,2169],{"id":2168},"_2-youre-in-a-different-workspace-or-account","2. You're in a different workspace or account",[99,2171,2172],{},"If you installed AdKit in one workspace (or while logged into one account) and are now chatting in another, the connector isn't there.",[99,2174,2175,2177],{},[103,2176,2164],{}," switch to the workspace where you installed AdKit, or install it again in the one you're using.",[115,2179,2181],{"id":2180},"_3-your-company-workspace-needs-admin-approval","3. Your company workspace needs admin approval",[99,2183,2184,2185,2188],{},"On ",[103,2186,2187],{},"Claude Team and Enterprise"," plans, custom connectors must be approved by a workspace admin before anyone can use them. Until that happens, setup looks fine but the connection never completes.",[99,2190,2191,2193,2194,280],{},[103,2192,2164],{}," ask your admin to add the AdKit connector from the workspace admin settings. Send them this page or the ",[199,2195,2196],{"href":30},"Claude setup guide",[115,2198,2200],{"id":2199},"_4-the-authorization-expired","4. The authorization expired",[99,2202,2203,2204,2207],{},"An AdKit connection that goes ",[103,2205,2206],{},"unused for 30 days"," expires automatically. The agent still shows the connector, but calls stop working.",[99,2209,2210,2212,2213,2216],{},[103,2211,2164],{}," run the setup again from ",[103,2214,2215],{},"Dashboard → Connect Your Agent",". It takes a minute and replaces the expired authorization.",[115,2218,2220],{"id":2219},"_5-the-agent-is-holding-on-to-a-stale-session","5. The agent is holding on to a stale session",[99,2222,2223],{},"Agents sometimes cache a broken connection inside a long-running conversation.",[99,2225,2226,2228,2229,2232],{},[103,2227,2164],{}," start a ",[103,2230,2231],{},"new chat"," and try again. This resolves a surprising number of \"it stopped working\" cases.",[115,2234,2236],{"id":2235},"_6-start-clean-reconnect","6. Start clean: reconnect",[99,2238,2239],{},"If none of the above helped, reset the connection:",[192,2241,2242,2249,2252],{},[195,2243,2244,2245,2248],{},"In AdKit, go to ",[103,2246,2247],{},"Settings → Devices"," and revoke the old connection for your agent.",[195,2250,2251],{},"In your agent, remove the AdKit connector.",[195,2253,2254,2255,280],{},"Run setup again from ",[103,2256,2215],{},[115,2258,2260],{"id":2259},"still-stuck","Still stuck?",[99,2262,2263,2264,2267],{},"Use the ",[103,2265,2266],{},"Chat with us"," button in the dashboard — a human will look at it with you. Telling us which agent you're connecting and what the last step you completed was makes it faster.",{"title":291,"searchDepth":292,"depth":292,"links":2269},[2270,2271,2272,2273,2274,2275,2276],{"id":2147,"depth":292,"text":2148},{"id":2168,"depth":292,"text":2169},{"id":2180,"depth":292,"text":2181},{"id":2199,"depth":292,"text":2200},{"id":2219,"depth":292,"text":2220},{"id":2235,"depth":292,"text":2236},{"id":2259,"depth":292,"text":2260},"What to check when your agent won't connect to AdKit, stops responding, or lost access — from disabled connectors to expired authorizations.","fa6-solid:screwdriver-wrench",{},"Connection troubleshooting",[2282,2284],{"label":29,"to":30,"description":2283},"Full setup steps for Claude, including Team\u002FEnterprise notes.",{"label":89,"to":90,"description":2285},"Link Meta, Google, or TikTok so your agent has something to manage.",{"title":73,"description":2277},"S5k7QuGhcjhsFXs-jWszCIsDHxsUenW580ciuhZc4P0",{"id":2289,"title":77,"body":2290,"description":2378,"extension":300,"icon":2379,"iconInvert":22,"meta":2380,"navTitle":2381,"navigation":304,"path":78,"related":2382,"section":2390,"sectionOrder":2391,"seo":2392,"stem":79,"type":2393,"updatedAt":2394,"wip":22,"__hash__":2395},"docs\u002Fdocs\u002Fgetting-started.md",{"type":96,"value":2291,"toc":2372},[2292,2295,2299,2302],[99,2293,2294],{},"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.",[115,2296,2298],{"id":2297},"_1-connect-your-agent","1. Connect your agent",[99,2300,2301],{},"Pick your client and follow its setup guide:",[2303,2304,2305,2308,2312,2315,2321,2324,2328,2331,2345,2351,2355],"connect-agents",{},[99,2306,2307],{},"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.",[115,2309,2311],{"id":2310},"_2-verify-the-connection","2. Verify the connection",[99,2313,2314],{},"Once connected, have the agent run the AdKit check-in and list what it can see. Paste this:",[388,2316,2319],{"className":2317,"code":2318,"language":517,"meta":291},[515],"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",[323,2320,2318],{"__ignoreMap":291},[99,2322,2323],{},"If it reports your connected platforms and accounts, you are ready. If not, it will tell you what is missing.",[115,2325,2327],{"id":2326},"_3-start-managing-ads","3. Start managing ads",[99,2329,2330],{},"With AdKit connected, ask your agent to:",[606,2332,2333,2336,2339,2342],{},[195,2334,2335],{},"Pull performance for a campaign or account",[195,2337,2338],{},"Draft a new campaign, ad set, or ad",[195,2340,2341],{},"Generate ad creatives from a brief",[195,2343,2344],{},"Research competitor ads in the ad library",[99,2346,2347,2348,2350],{},"Everything you create starts as a ",[103,2349,784],{},". Nothing goes live until you review and approve it.",[115,2352,2354],{"id":2353},"next-steps","Next steps",[606,2356,2357,2364],{},[195,2358,2359,2363],{},[103,2360,2361],{},[199,2362,565],{"href":20}," when your agent has an image or video to turn into a Meta or Google ad asset.",[195,2365,2366,2371],{},[103,2367,2368],{},[199,2369,2370],{"href":82},"Connect multiple ad accounts"," when you run ads for more than one brand or client.",{"title":291,"searchDepth":292,"depth":292,"links":2373},[2374,2375,2376,2377],{"id":2297,"depth":292,"text":2298},{"id":2310,"depth":292,"text":2311},{"id":2326,"depth":292,"text":2327},{"id":2353,"depth":292,"text":2354},"Connect an AI agent to AdKit, verify the connection, and start managing your ads from a conversation.","fa6-solid:book-open",{},"Getting started",[2383,2385,2388],{"label":867,"to":30,"description":2384},"Pick your AI client and connect it to AdKit.",{"label":2386,"to":20,"description":2387},"Upload creative media with an AI agent","Move local images and videos from an agent session into Meta or Google Ads.",{"label":81,"to":82,"description":2389},"Give each brand its own project and tell your agent which one to use.","Start here",0,{"title":77,"description":2378},"overview","2026-06-08","0rtTKrV2pSuyrevTJNJMl6MIjZpo0OGxV6BRhu13s_w",{"id":2397,"title":81,"body":2398,"description":2502,"extension":300,"icon":2503,"iconInvert":22,"meta":2504,"navTitle":2505,"navigation":304,"path":82,"related":2506,"section":2510,"sectionOrder":307,"seo":2511,"stem":83,"type":309,"updatedAt":869,"wip":22,"__hash__":2512},"docs\u002Fdocs\u002Fmultiple-accounts.md",{"type":96,"value":2399,"toc":2496},[2400,2407,2411,2422,2429,2432,2435,2439,2446,2452,2455,2459,2462,2465,2471,2475,2482,2485,2491],[99,2401,2402,2403,2406],{},"Running ads for more than one business? Give each one its own ",[103,2404,2405],{},"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.",[115,2408,2410],{"id":2409},"adding-more-projects","Adding more projects",[99,2412,2413,2414,2417,2418,2421],{},"Click the ",[103,2415,2416],{},"project name"," at the top of the dashboard, then ",[103,2419,2420],{},"Add Website",". Give it a name and the website address, and you're done.",[99,2423,2424],{},[368,2425],{"alt":2426,"src":2427,"width":2428},"The project menu, where you add a project or switch between them","\u002Fdocs\u002Faccounts\u002Fswitcher-add.png",460,[99,2430,2431],{},"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.",[99,2433,2434],{},"A new project starts empty. Next you'll connect that brand's ad accounts.",[115,2436,2438],{"id":2437},"each-brand-keeps-its-own-accounts","Each brand keeps its own accounts",[99,2440,2441,2442,2445],{},"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 ",[103,2443,2444],{},"Settings → Integrations",", and connect that brand's accounts there.",[99,2447,2448],{},[368,2449],{"alt":2450,"src":2451},"Each project has its own Integrations page, with Connect buttons for Meta, Google, TikTok, and Reddit","\u002Fdocs\u002Faccounts\u002Fconnect-integrations.png",[99,2453,2454],{},"The step-by-step for connecting each platform is its own guide.",[115,2456,2458],{"id":2457},"using-projects-with-ai-agents","Using projects with AI agents",[99,2460,2461],{},"If you run AdKit through an AI agent like Claude, it connects once and can reach every project.",[99,2463,2464],{},"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:",[388,2466,2469],{"className":2467,"code":2468,"language":517,"meta":291},[515],"List my AdKit projects, then use [your brand] and show its active campaigns.\n",[323,2470,2468],{"__ignoreMap":291},[115,2472,2474],{"id":2473},"projects-vs-workspaces","Projects vs workspaces",[99,2476,2477,2478,2481],{},"Most people can skip this. A ",[103,2479,2480],{},"workspace"," groups your projects together with the people you invite, and everyone in it can see every project inside.",[99,2483,2484],{},"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.",[99,2486,2487,2488,280],{},"To invite teammates, go to ",[103,2489,2490],{},"Settings → Members",[99,2492,283,2493,289],{},[199,2494,288],{"href":286,"rel":2495},[203],{"title":291,"searchDepth":292,"depth":292,"links":2497},[2498,2499,2500,2501],{"id":2409,"depth":292,"text":2410},{"id":2437,"depth":292,"text":2438},{"id":2457,"depth":292,"text":2458},{"id":2473,"depth":292,"text":2474},"Run several brands in AdKit by giving each its own project, and switch between them from one place.","fa6-solid:briefcase",{},"Multiple ad accounts",[2507,2509],{"label":29,"to":30,"description":2508},"Set up the chat assistant you use across all your brands.",{"label":865,"to":78,"description":1080},"Accounts & projects",{"title":81,"description":2502},"cZ_7wypN1haSkzXELs9NoFHJpuyf8ZaSrDCy68ZR7x0",{"id":2514,"title":85,"body":2515,"description":2844,"extension":300,"icon":2845,"iconInvert":22,"meta":2846,"navTitle":2847,"navigation":304,"path":86,"related":2848,"section":2510,"sectionOrder":448,"seo":2851,"stem":87,"type":309,"updatedAt":2852,"wip":22,"__hash__":2853},"docs\u002Fdocs\u002Fown-google-ads-api.md",{"type":96,"value":2516,"toc":2837},[2517,2520,2523,2526,2533,2556,2559,2563,2570,2579,2586,2592,2599,2603,2611,2703,2707,2714,2772,2776,2788,2791,2795,2827,2834],[99,2518,2519],{},"If you're reading this, you probably hit a \"rate limit\" error in AdKit. Sorry about that. Google caps how many requests our API access can make per day, and we've asked them for a much higher limit. Their approval can take a while, and we'd rather not make you wait.",[99,2521,2522],{},"Until it lands, here's how to fix it on your side today: plug in your own Google Ads API access. It takes about 15 minutes of clicking through Google's consoles, there's nothing to wait for, and from then on your AdKit usage runs on your own quota.",[99,2524,2525],{},"And if you get stuck anywhere in this guide, message me on the live chat. I'll walk you through it, or we can hop on a quick call and do the setup together.",[99,2527,2528,2529,2532],{},"You'll collect ",[103,2530,2531],{},"four codes"," from Google and paste them into AdKit:",[192,2534,2535,2541,2550],{},[195,2536,610,2537,2540],{},[103,2538,2539],{},"developer token",": your personal Google Ads API key",[195,2542,610,2543,183,2546,2549],{},[103,2544,2545],{},"Client ID",[103,2547,2548],{},"Client secret",": your own \"app\" registered with Google",[195,2551,610,2552,2555],{},[103,2553,2554],{},"refresh token",": proof that your Google account gave that app permission",[99,2557,2558],{},"Two things you need before starting: your Google Ads accounts already connected to AdKit (if you've been using AdKit, they are), and a Google account with access to those ad accounts (the one you use to manage them is perfect).",[115,2560,2562],{"id":2561},"step-1-get-your-developer-token","Step 1: Get your developer token",[99,2564,2565,2566,2569],{},"The developer token lives in a Google Ads ",[103,2567,2568],{},"manager account"," (also called an MCC). If you already have one, skip to the second paragraph.",[99,2571,2572,2573,2578],{},"No manager account yet? Create one free at ",[199,2574,2577],{"href":2575,"rel":2576},"https:\u002F\u002Fads.google.com\u002Fhome\u002Ftools\u002Fmanager-accounts\u002F",[203],"ads.google.com\u002Fhome\u002Ftools\u002Fmanager-accounts",". It's instant, and it doesn't change anything about your existing ad accounts.",[99,2580,2581,2582,2585],{},"In your manager account, go to ",[103,2583,2584],{},"Tools & settings → Setup → API Center",". Accept the terms, and your developer token appears right there. Copy it somewhere safe.",[99,2587,2588],{},[368,2589],{"alt":2590,"src":2591},"Google Ads API Center showing the developer token and its access level","\u002Fimages\u002Fblog\u002Fgoogle-mcp-setup\u002Fapi-center-token.png",[99,2593,2594,2595,2598],{},"Google activates new tokens immediately with \"Explorer\" access, which is enough for AdKit to work on your real accounts today. One limit: keyword idea tools stay locked until you also apply for ",[103,2596,2597],{},"Basic access",", a short form in the same API Center page, usually approved in about a week. Submit it now and forget about it; everything else works in the meantime.",[115,2600,2602],{"id":2601},"step-2-create-your-app-in-google-cloud","Step 2: Create your app in Google Cloud",[99,2604,2605,2606,280],{},"Google only accepts API requests that come from a registered \"app\". You'll register your own. It's free, and it's just clicking through forms at ",[199,2607,2610],{"href":2608,"rel":2609},"https:\u002F\u002Fconsole.cloud.google.com",[203],"console.cloud.google.com",[192,2612,2613,2629,2644,2660,2674,2695],{},[195,2614,2615,2618,2619,2622,2623,2625],{},[103,2616,2617],{},"Create a project",": click the project picker at the top, then ",[103,2620,2621],{},"New project",". Name it anything (\"AdKit Access\" works).",[649,2624],{},[368,2626],{"alt":2627,"src":2628},"Google Cloud New Project page showing the project name and project ID","\u002Fimages\u002Fblog\u002Fgoogle-mcp-setup\u002Fgcp-project-created.png",[195,2630,2631,2634,2635,280,2638,2640],{},[103,2632,2633],{},"Enable the API",": search \"Google Ads API\" in the top search bar, open it, click ",[103,2636,2637],{},"Enable",[649,2639],{},[368,2641],{"alt":2642,"src":2643},"Google Ads API library page with the Enable button","\u002Fimages\u002Fblog\u002Fgoogle-mcp-setup\u002Fenable-google-ads-api.png",[195,2645,2646,2649,2650,2653,2654,2656],{},[103,2647,2648],{},"Set up the consent screen",": search \"OAuth consent screen\". Pick ",[103,2651,2652],{},"External",", fill in an app name and your email, and save through the remaining steps. Defaults are fine.",[649,2655],{},[368,2657],{"alt":2658,"src":2659},"Google Cloud OAuth branding page showing the app name and support email","\u002Fimages\u002Fblog\u002Fgoogle-mcp-setup\u002Foauth-consent-branding.png",[195,2661,2662,2665,2666,2669,2670,2673],{},[103,2663,2664],{},"Publish the app",": on the consent screen page, click ",[103,2667,2668],{},"Publish app"," so the status says ",[103,2671,2672],{},"In production"," (the screenshot above still shows \"Testing\", that's the status you're changing). Don't skip this: if the app stays in \"Testing\", Google kills your connection after 7 days and AdKit will stop working until you redo step 3 of this guide.",[195,2675,2676,2679,2680,2683,2684,2687,2688,2691,2692],{},[103,2677,2678],{},"Create the credentials",": search \"Credentials\", click ",[103,2681,2682],{},"Create credentials → OAuth client ID",". Application type: ",[103,2685,2686],{},"Web application",". Under ",[103,2689,2690],{},"Authorized redirect URIs",", add exactly this address: ",[323,2693,2694],{},"https:\u002F\u002Fdevelopers.google.com\u002Foauthplayground",[195,2696,2697,2698,183,2700,2702],{},"Google shows you a ",[103,2699,2545],{},[103,2701,2548],{},". Copy both.",[115,2704,2706],{"id":2705},"step-3-get-your-refresh-token","Step 3: Get your refresh token",[99,2708,2709,2710,2713],{},"Now you log in through your own app once, and Google hands you the refresh token. You'll use Google's ",[103,2711,2712],{},"OAuth Playground",", a free tool made for exactly this.",[192,2715,2716,2722,2732,2742,2761],{},[195,2717,197,2718,280],{},[199,2719,2721],{"href":2694,"rel":2720},[203],"developers.google.com\u002Foauthplayground",[195,2723,2413,2724,2727,2728,2731],{},[103,2725,2726],{},"gear icon"," (top right), tick ",[103,2729,2730],{},"Use your own OAuth credentials",", and paste your Client ID and Client secret.",[195,2733,2734,2735,2738,2739,280],{},"In the box on the left that says \"Input your own scopes\", paste: ",[323,2736,2737],{},"https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Fadwords"," and click ",[103,2740,2741],{},"Authorize APIs",[195,2743,2744,2745,2748,2749,2754,2755,2757],{},"Sign in with the Google account that has access to your ad accounts. Google will warn that it \"hasn't verified this app\". That's expected, the app is yours from Step 2. Click ",[103,2746,2747],{},"Advanced",", then ",[103,2750,346,2751],{},[396,2752,2753],{},"your app name",", and allow access.",[649,2756],{},[368,2758],{"alt":2759,"src":2760},"Browser warning that Google hasn't verified this app, with the Advanced link","\u002Fimages\u002Fblog\u002Fgoogle-mcp-setup\u002Funverified-app-warning.png",[195,2762,2763,2764,2767,2768,2771],{},"Back in the Playground, click ",[103,2765,2766],{},"Exchange authorization code for tokens",". Copy the ",[103,2769,2770],{},"Refresh token"," it shows you.",[115,2773,2775],{"id":2774},"step-4-paste-everything-into-adkit","Step 4: Paste everything into AdKit",[99,2777,2778,2779,2784,2785,280],{},"Open your ",[199,2780,2783],{"href":2781,"rel":2782},"https:\u002F\u002Fapp.adkit.so\u002Fsettings\u002Fapi-access",[203],"Google Ads API access page"," (you can also reach it from the link we sent you). Paste the four codes (Client ID, Client secret, Developer token, Refresh token) and hit ",[103,2786,2787],{},"Save",[99,2789,2790],{},"AdKit immediately makes a test call to Google with your codes. If something's off, you'll get an error telling you which code to double-check. If it saves, you're done: every project in your workspace now runs on your own quota, including projects you add later.",[115,2792,2794],{"id":2793},"if-something-goes-wrong","If something goes wrong",[606,2796,2797,2803,2809,2821],{},[195,2798,2799,2802],{},[103,2800,2801],{},"\"Check your Client ID, Client secret, or refresh token\"",": one of the three OAuth codes doesn't match. The most common cause: the refresh token was created with a different Client ID than the one you pasted. Redo Step 3 using the exact credentials from Step 2.",[195,2804,2805,2808],{},[103,2806,2807],{},"\"Check your developer token\"",": the token is mistyped, or it's still at test-only level. Open the API Center (Step 1) and confirm the token shows Explorer or Basic access.",[195,2810,2811,2814,2815,2817],{},[103,2812,2813],{},"AdKit stopped working after a week",", or Google blocks the sign-in with a \"403 access_denied, app is being tested\" screen: your app is still in \"Testing\". Publish it (Step 2.4), then redo Step 3 and paste the new refresh token.",[649,2816],{},[368,2818],{"alt":2819,"src":2820},"The 403 access_denied 'app is being tested' block screen","\u002Fimages\u002Fblog\u002Fgoogle-mcp-setup\u002F403-access-denied.png",[195,2822,2823,2826],{},[103,2824,2825],{},"Keyword tools return errors",": Explorer access doesn't include keyword ideas. Apply for Basic access in the API Center (Step 1). Everything else keeps working while you wait.",[99,2828,2829,2830,2833],{},"Want to go back to the shared access? Hit ",[103,2831,2832],{},"Remove"," in the same page. Your ad account connections stay untouched either way.",[99,2835,2836],{},"Still stuck? Ping me on the live chat and I'll sort it out with you.",{"title":291,"searchDepth":292,"depth":292,"links":2838},[2839,2840,2841,2842,2843],{"id":2561,"depth":292,"text":2562},{"id":2601,"depth":292,"text":2602},{"id":2705,"depth":292,"text":2706},{"id":2774,"depth":292,"text":2775},{"id":2793,"depth":292,"text":2794},"Connect your own Google Ads developer token so your AdKit usage runs on your own Google quota instead of the shared one.","fa6-solid:key",{},"Your own Google API access",[2849],{"label":81,"to":82,"description":2850},"Give each brand its own project before connecting accounts.",{"title":85,"description":2844},"2026-06-12","Rrk1H6FA4UKaoHzsmtHhbG8sX19867MSePlnx2j4TD0",{"id":2855,"title":89,"body":2856,"description":2925,"extension":300,"icon":2926,"iconInvert":22,"meta":2927,"navTitle":2928,"navigation":304,"path":90,"related":2929,"section":2510,"sectionOrder":307,"seo":2933,"stem":91,"type":309,"updatedAt":2394,"wip":22,"__hash__":2934},"docs\u002Fdocs\u002Fplatforms.md",{"type":96,"value":2857,"toc":2921},[2858,2861,2879,2883,2905,2908,2912,2915],[99,2859,2860],{},"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.",[99,2862,2863,2864,2867,2868,2871,2872,2875,2876,280],{},"AdKit supports ",[103,2865,2866],{},"Meta"," (Facebook and Instagram), ",[103,2869,2870],{},"Google Ads",", ",[103,2873,2874],{},"TikTok",", and ",[103,2877,2878],{},"Reddit",[115,2880,2882],{"id":2881},"connect-a-platform","Connect a platform",[192,2884,2885,2893,2899,2902],{},[195,2886,2887,2888,280],{},"In AdKit, open ",[199,2889,2892],{"href":2890,"rel":2891},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fintegrations",[203],"Settings, then Integrations",[195,2894,208,2895,2898],{},[103,2896,2897],{},"Ad Platforms",", pick the platform you want to connect.",[195,2900,2901],{},"Sign in and authorize AdKit through the platform's secure sign-in flow.",[195,2903,2904],{},"Choose the ad account you want to manage. It is now available to your agent.",[99,2906,2907],{},"Repeat for each platform you advertise on.",[115,2909,2911],{"id":2910},"after-connecting","After connecting",[99,2913,2914],{},"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.",[99,2916,2917,2918,2920],{},"Running ads for more than one brand or client? See ",[199,2919,81],{"href":82}," to keep each one in its own project.",{"title":291,"searchDepth":292,"depth":292,"links":2922},[2923,2924],{"id":2881,"depth":292,"text":2882},{"id":2910,"depth":292,"text":2911},"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",[2930,2931],{"label":81,"to":82,"description":2389},{"label":77,"to":78,"description":2932},"Connect an agent, verify the connection, and start managing ads.",{"title":89,"description":2925},"R_D103azSLi-guPmuGGidNu48dl-vXBiBr07Edp6nSQ",1785666655552]