[{"data":1,"prerenderedAt":3621},["ShallowReactive",2],{"docs-search-nav":3,"docs:all":88},[4],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Docs","\u002Fdocs","docs",[9,13,17,21,35,84],{"title":10,"path":11,"stem":12},"Connect your ad accounts","\u002Fdocs\u002Fplatforms","docs\u002F1.platforms",{"title":14,"path":15,"stem":16},"Connecting multiple ad accounts","\u002Fdocs\u002Fmultiple-accounts","docs\u002F2.multiple-accounts",{"title":18,"path":19,"stem":20},"Team members and access levels","\u002Fdocs\u002Fteam-access","docs\u002F3.team-access",{"title":22,"path":23,"stem":24,"children":25,"page":34},"Agents","\u002Fdocs\u002Fagents","docs\u002Fagents",[26,30],{"title":27,"path":28,"stem":29},"Control what an AI agent can do (access levels)","\u002Fdocs\u002Fagents\u002Faccess-levels","docs\u002Fagents\u002Faccess-levels",{"title":31,"path":32,"stem":33},"Upload ad creatives from an AI agent","\u002Fdocs\u002Fagents\u002Fupload-creative-media","docs\u002Fagents\u002Fupload-creative-media",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Clients","\u002Fdocs\u002Fclients","docs\u002Fclients",[40,44,48,52,56,60,64,68,72,76,80],{"title":41,"path":42,"stem":43},"Connect Claude to AdKit","\u002Fdocs\u002Fclients\u002Fclaude","docs\u002Fclients\u002F1.claude",{"title":45,"path":46,"stem":47},"Connect Hermes to AdKit","\u002Fdocs\u002Fclients\u002Fhermes","docs\u002Fclients\u002F10.hermes",{"title":49,"path":50,"stem":51},"Connect n8n to AdKit","\u002Fdocs\u002Fclients\u002Fn8n","docs\u002Fclients\u002F11.n8n",{"title":53,"path":54,"stem":55},"Connect Grok Bot to AdKit","\u002Fdocs\u002Fclients\u002Fgrok-bot","docs\u002Fclients\u002F12.grok-bot",{"title":57,"path":58,"stem":59},"Connect ChatGPT to AdKit","\u002Fdocs\u002Fclients\u002Fchatgpt","docs\u002Fclients\u002F3.chatgpt",{"title":61,"path":62,"stem":63},"Connect Perplexity to AdKit","\u002Fdocs\u002Fclients\u002Fperplexity","docs\u002Fclients\u002F4.perplexity",{"title":65,"path":66,"stem":67},"Connect Claude Code to AdKit","\u002Fdocs\u002Fclients\u002Fclaude-code","docs\u002Fclients\u002F5.claude-code",{"title":69,"path":70,"stem":71},"Connect Codex to AdKit","\u002Fdocs\u002Fclients\u002Fcodex","docs\u002Fclients\u002F6.codex",{"title":73,"path":74,"stem":75},"Connect Cursor to AdKit","\u002Fdocs\u002Fclients\u002Fcursor","docs\u002Fclients\u002F7.cursor",{"title":77,"path":78,"stem":79},"Connect Gemini CLI to AdKit","\u002Fdocs\u002Fclients\u002Fgemini","docs\u002Fclients\u002F8.gemini",{"title":81,"path":82,"stem":83},"Connect OpenClaw to AdKit","\u002Fdocs\u002Fclients\u002Fopenclaw","docs\u002Fclients\u002F9.openclaw",{"title":85,"path":86,"stem":87},"Getting started with AdKit","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[89,522,672,898,1115,1539,1941,2152,2275,2421,2599,2742,2882,3016,3200,3346,3514],{"id":90,"title":10,"body":91,"description":505,"extension":506,"icon":507,"iconInvert":34,"meta":508,"navTitle":509,"navigation":510,"path":11,"related":511,"section":516,"sectionOrder":517,"seo":518,"stem":12,"type":519,"updatedAt":520,"wip":34,"__hash__":521},"docs\u002Fdocs\u002F1.platforms.md",{"type":92,"value":93,"toc":495},"minimark",[94,107,110,113,118,124,130,136,140,143,246,253,257,260,271,274,300,303,309,313,316,351,362,365,368,372,375,378,384,390,393,397,400,421,428,431,434,440,444,450,456,462,476,486],[95,96,97,98,102,103,106],"p",{},"Connecting a platform takes two steps: sign in to the platform once, then choose the ad accounts AdKit should manage. AdKit saves each sign-in as a ",[99,100,101],"strong",{},"login",", and one login can cover many ad accounts. Each ad account then goes to a ",[99,104,105],{},"project",", which is one brand or client.",[95,108,109],{},"The sign-in is the only part you have to do yourself. Your agent can do the rest on every platform, including connecting dozens of accounts in one go.",[95,111,112],{},"You never type a platform password into AdKit. The sign-in happens in the platform's own window, and AdKit gets permission to act for you (an access token, never your password).",[114,115,117],"h2",{"id":116},"before-you-start","Before you start",[95,119,120,123],{},[99,121,122],{},"You need to be a workspace admin."," Your workspace is your team's shared space in AdKit, and whoever created it is an admin. Only admins can add logins and assign ad accounts, because one login opens every ad account behind it. A teammate who has to connect their own login can be made admin for a few minutes, then switched back. The login stays connected.",[95,125,126,129],{},[99,127,128],{},"You need an ad account on each platform first."," AdKit connects to the ad accounts you already have and can't create them, because each platform has to verify you and your payment method.",[95,131,132,135],{},[99,133,134],{},"Sign in with the login that already has access."," AdKit can only see the ad accounts your login can see on the platform. If your own profile can open the client's account in Meta Business Manager, that's enough. You don't need the client's password.",[114,137,139],{"id":138},"supported-platforms","Supported platforms",[95,141,142],{},"AdKit connects to eight ad platforms. On all of them, your agent can connect the ad accounts for you once the login is added.",[144,145,146,159],"table",{},[147,148,149],"thead",{},[150,151,152,156],"tr",{},[153,154,155],"th",{},"Platform",[153,157,158],{},"Status",[160,161,162,175,185,195,205,216,226,236],"tbody",{},[150,163,164,172],{},[165,166,167,171],"td",{},[168,169],"icon",{"name":170},"logos:meta-icon"," Meta (Facebook and Instagram)",[165,173,174],{},"Live",[150,176,177,183],{},[165,178,179,182],{},[168,180],{"name":181},"logos:google-ads"," Google Ads",[165,184,174],{},[150,186,187,193],{},[165,188,189,192],{},[168,190],{"name":191},"logos:tiktok-icon"," TikTok",[165,194,174],{},[150,196,197,203],{},[165,198,199,202],{},[168,200],{"name":201},"logos:linkedin-icon"," LinkedIn",[165,204,174],{},[150,206,207,213],{},[165,208,209,212],{},[168,210],{"name":211},"logos:reddit-icon"," Reddit",[165,214,215],{},"Beta",[150,217,218,224],{},[165,219,220,223],{},[168,221],{"name":222},"logos:microsoft-icon"," Microsoft",[165,225,215],{},[150,227,228,234],{},[165,229,230,233],{},[168,231],{"name":232},"logos:x"," X",[165,235,215],{},[150,237,238,244],{},[165,239,240,243],{},[168,241],{"name":242},"logos:openai-icon"," ChatGPT Ads",[165,245,215],{},[95,247,248,249,252],{},"Beta platforms are newer in AdKit, so tell us if something looks off. Two differences to know: ChatGPT Ads connects with an API key you paste in the dashboard instead of a sign-in, and on Microsoft and ChatGPT Ads your agent manages campaigns through direct platform API calls, which you switch on under ",[99,250,251],{},"Agent Permissions"," (Advanced Platform Access).",[114,254,256],{"id":255},"let-your-agent-do-the-setup","Let your agent do the setup",[95,258,259],{},"Tell your agent what you want connected. If you have several projects, name the one it's for:",[261,262,268],"pre",{"className":263,"code":265,"language":266,"meta":267},[264],"language-text","Connect my Meta and Google ad accounts to AdKit.\n","text","",[269,270,265],"code",{"__ignoreMap":267},[95,272,273],{},"What happens next:",[275,276,277,284,294],"ol",{},[278,279,280,283],"li",{},[99,281,282],{},"The agent sends you a connect link."," It opens the AdKit Integrations page with the right platform already selected.",[278,285,286,289,290,293],{},[99,287,288],{},"You sign in."," Click ",[99,291,292],{},"Add login"," for the platform and approve access in the platform's sign-in window. Platforms only grant access to a person signed in on their own page, so no agent can do this step.",[278,295,296,299],{},[99,297,298],{},"The agent connects the accounts."," Tell it the sign-in is done. It lists every ad account your login can access and connects the ones you name.",[95,301,302],{},"To see what's connected at any point, ask for a check-in, the agent's report of your platforms and accounts:",[261,304,307],{"className":305,"code":306,"language":266,"meta":267},[264],"Run an AdKit check-in and list my connected platforms and ad accounts.\n",[269,308,306],{"__ignoreMap":267},[114,310,312],{"id":311},"connect-in-the-dashboard","Connect in the dashboard",[95,314,315],{},"Use the dashboard if you prefer clicking through it yourself.",[275,317,318,329,340,343],{},[278,319,320,321,328],{},"Open ",[322,323,327],"a",{"href":324,"rel":325},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fworkspace-integrations",[326],"nofollow","Settings, then Integrations",".",[278,330,331,332,335,336,339],{},"Find the platform under ",[99,333,334],{},"Ad platforms"," and click ",[99,337,338],{},"+"," (Add login).",[278,341,342],{},"Approve access in the platform's sign-in window.",[278,344,320,345,350],{},[322,346,349],{"href":347,"rel":348},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fad-accounts",[326],"Ad accounts",". Your projects are on the left, every ad account your logins can see is on the right. Drag an account onto a project to connect it there. Select several with Shift or Cmd and drag them together.",[95,352,353,354,357,358,361],{},"To take an account out of a project, hover over it in the project and click the ",[99,355,356],{},"x",". If an account you just got access to isn't in the list, click ",[99,359,360],{},"Refresh"," at the top of the right column.",[95,363,364],{},"Logins belong to the whole workspace. Connect a platform once, and every project can use the accounts behind that login.",[95,366,367],{},"To remove a login later, first unassign its ad accounts, then remove it on the Integrations page. You can reconnect it any time.",[114,369,371],{"id":370},"connecting-lots-of-client-accounts","Connecting lots of client accounts",[95,373,374],{},"You sign in once per platform, and that sign-in covers every ad account your profile can see there. Access to 40 client accounts in Meta Business Manager means one sign-in and 40 accounts to connect.",[95,376,377],{},"Give each client its own project, so their campaigns and reporting stay apart. Then tell your agent to sort the accounts into them:",[261,379,382],{"className":380,"code":381,"language":266,"meta":267},[264],"List every Meta ad account my login can access, then connect each one to\nits client's project.\n",[269,383,381],{"__ignoreMap":267},[95,385,386,387,389],{},"Your agent can create the missing projects along the way. See ",[322,388,14],{"href":15}," for how projects work.",[95,391,392],{},"Two limits to know. On the Base plan, you get one project with one ad account per platform, so an agency needs Pro or Scale, which have no limit. And a second login for the same platform is only needed when some client accounts sit under a different profile than yours. Each project then takes its accounts from whichever login can see them.",[114,394,396],{"id":395},"after-connecting","After connecting",[95,398,399],{},"Set the account defaults once, and your agent won't have to ask for them with every campaign. These are the things each campaign on that account reuses:",[401,402,403,409,415],"ul",{},[278,404,405,408],{},[99,406,407],{},"Meta:"," the Facebook Page, the Instagram account, and the pixel.",[278,410,411,414],{},[99,412,413],{},"TikTok:"," the TikTok profile your ads run under, and the pixel.",[278,416,417,420],{},[99,418,419],{},"X and Reddit:"," the profile, the pixel, and the funding source.",[95,422,423,424,427],{},"Google, LinkedIn, Microsoft, and ChatGPT Ads don't need any. Ask your agent to set them, or click an account on the ",[322,425,349],{"href":347,"rel":426},[326]," page.",[95,429,430],{},"AdKit reads the pixels and conversion settings you already have. Creating a pixel, installing tracking code on your website, and billing stay in the platform's own interface (Meta Events Manager, Google Ads billing).",[95,432,433],{},"Once a platform shows up in your agent's check-in, you can manage it from the conversation:",[261,435,438],{"className":436,"code":437,"language":266,"meta":267},[264],"Show me this week's spend and results by campaign.\n",[269,439,437],{"__ignoreMap":267},[114,441,443],{"id":442},"troubleshooting","Troubleshooting",[95,445,446,449],{},[99,447,448],{},"An ad account is missing from the list.","\nThe login you connected can't see that account. Access is granted on the platform's side (Meta Business Manager, Google Ads account access). Get your login added to the account there, or add the login that already has access on the Integrations page.",[95,451,452,455],{},[99,453,454],{},"A new TikTok advertiser account doesn't show up.","\nA TikTok sign-in only covers the advertiser accounts TikTok shared when you approved it. Accounts added to your Business Center later may not be included. Reconnect the login once on the Integrations page, then check the list again.",[95,457,458,461],{},[99,459,460],{},"Google says the account was \"not found\".","\nThis usually means the Google Ads account is inactive or cancelled. Check its status at ads.google.com. If it was cancelled, reactivate it there first, then reconnect.",[95,463,464,467,468,471,472,475],{},[99,465,466],{},"Microsoft says \"You must use a different identity type to sign in\".","\nThis happens when your Microsoft Advertising login is a work email that signs in through Google. On Microsoft's sign-in screen, pick ",[99,469,470],{},"Microsoft account"," instead of ",[99,473,474],{},"Sign in with Google",", and enter your work email. Microsoft then sends you to Google to log in as usual. Remove any failed Microsoft logins on the Integrations page first.",[95,477,478,481,482,328],{},[99,479,480],{},"A platform that worked before now fails.","\nSign-ins expire or get cancelled (the access token stops working), for example when the platform password changes. Your agent hands you a reconnect link when this happens, or you can reconnect the login yourself on the ",[322,483,485],{"href":324,"rel":484},[326],"Integrations page",[95,487,488,489,494],{},"Still stuck? ",[322,490,493],{"href":491,"rel":492},"https:\u002F\u002Fapp.adkit.so",[326],"Reach out"," and we'll help.",{"title":267,"searchDepth":496,"depth":496,"links":497},2,[498,499,500,501,502,503,504],{"id":116,"depth":496,"text":117},{"id":138,"depth":496,"text":139},{"id":255,"depth":496,"text":256},{"id":311,"depth":496,"text":312},{"id":370,"depth":496,"text":371},{"id":395,"depth":496,"text":396},{"id":442,"depth":496,"text":443},"Link your Meta, Google, TikTok, Reddit, LinkedIn, Microsoft, X, and ChatGPT Ads accounts to AdKit, in the dashboard or with your AI agent doing most of the work.","md","fa6-solid:plug",{},"Connect ad accounts",true,[512,514],{"label":14,"to":15,"description":513},"Give each brand its own project and tell your agent which one to use.",{"label":85,"to":86,"description":515},"Connect an agent, verify the connection, and start managing ads.","Accounts & projects",3,{"title":10,"description":505},"guide","2026-09-17","Rh7VIV9PFVjGIaptPl7E3TvjZB6_dfSXX7ZDXg5MRZo",{"id":523,"title":14,"body":524,"description":658,"extension":506,"icon":659,"iconInvert":34,"meta":660,"navTitle":661,"navigation":510,"path":15,"related":662,"section":516,"sectionOrder":517,"seo":670,"stem":16,"type":519,"updatedAt":520,"wip":34,"__hash__":671},"docs\u002Fdocs\u002F2.multiple-accounts.md",{"type":92,"value":525,"toc":652},[526,531,534,537,541,552,560,563,569,572,575,579,582,589,596,601,605,608,611,617,621,628,631,638,643,646],[95,527,528,529,328],{},"Running ads for more than one business? Give each one its own ",[99,530,105],{},[95,532,533],{},"A project is one brand or client, usually one website, with its own ad accounts, creatives, and competitors. That way a campaign for the coffee brand can't be created in the SaaS app's ad account.",[95,535,536],{},"Your plan sets how many projects you get: one on the Base plan, unlimited on Pro and Scale.",[114,538,540],{"id":539},"adding-more-projects","Adding more projects",[95,542,543,544,547,548,551],{},"Click the ",[99,545,546],{},"project name"," at the top of the dashboard, then ",[99,549,550],{},"Add Project",". Give it a name and the website address.",[95,553,554],{},[555,556],"img",{"alt":557,"src":558,"width":559},"The project menu, where you add a project or switch between them","\u002Fdocs\u002Faccounts\u002Fswitcher-add.png",460,[95,561,562],{},"Your agent can create one too:",[261,564,567],{"className":565,"code":566,"language":266,"meta":267},[264],"Create an AdKit project for Northwind, website northwind.com.\n",[269,568,566],{"__ignoreMap":267},[95,570,571],{},"That same menu is how you switch later: open it and pick another project. Campaigns, Studio, and the ad library then all show the project you picked.",[95,573,574],{},"A new project starts empty. Next you'll give it that brand's ad accounts.",[114,576,578],{"id":577},"each-brand-keeps-its-own-accounts","Each brand keeps its own accounts",[95,580,581],{},"Every project has its own list of ad accounts, so each brand's campaigns and reporting stay separate.",[95,583,584,585,588],{},"You sign in to each ad platform once for the whole workspace (the shared space that holds all your projects, more on it below), under ",[99,586,587],{},"Settings → Integrations",". AdKit saves that sign-in as a login.",[95,590,591,592,595],{},"Then, under ",[99,593,594],{},"Settings → Ad accounts",", you choose which of the accounts behind that login belong to which project. One Meta login with access to five client accounts can cover five projects.",[95,597,598,599,328],{},"Both steps need a workspace admin. The step-by-step, including how to let your agent do it, is in ",[322,600,10],{"href":11},[114,602,604],{"id":603},"using-projects-with-ai-agents","Using projects with AI agents",[95,606,607],{},"If you run AdKit through an AI agent like Claude, it connects once and can reach every project you can open yourself.",[95,609,610],{},"With one project, the agent just uses it. Once you have several, it needs to know which one. It'll usually ask, but naming the brand yourself saves the back-and-forth:",[261,612,615],{"className":613,"code":614,"language":266,"meta":267},[264],"List my AdKit projects, then use [your brand] and show its active campaigns.\n",[269,616,614],{"__ignoreMap":267},[114,618,620],{"id":619},"workspaces-and-teammates","Workspaces and teammates",[95,622,623,624,627],{},"One workspace is enough for most teams, agencies included. A ",[99,625,626],{},"workspace"," holds your projects, your platform logins, and the people you invite.",[95,629,630],{},"AdKit creates a workspace for you when you sign up, named after you. It works exactly like any other workspace, so a team can rename it under Settings and invite people into it. There's no need to create a separate company one.",[95,632,633,634,637],{},"Teammates don't have to see every client. When you invite someone under ",[99,635,636],{},"Settings → Members",", you choose which projects they can open. New invites start on \"All projects\", so change that for anyone who should only work on certain clients.",[95,639,640,641,328],{},"An agent connected by that teammate gets the same limits. Roles and the full setup order are in ",[322,642,18],{"href":19},[95,644,645],{},"Logins are shared by the whole workspace. Create a second workspace only when two teams must not see each other's logins.",[95,647,648,649,494],{},"Need a hand? ",[322,650,493],{"href":491,"rel":651},[326],{"title":267,"searchDepth":496,"depth":496,"links":653},[654,655,656,657],{"id":539,"depth":496,"text":540},{"id":577,"depth":496,"text":578},{"id":603,"depth":496,"text":604},{"id":619,"depth":496,"text":620},"Run several brands in AdKit by giving each its own project, and switch between them from one place.","fa6-solid:briefcase",{},"Multiple ad accounts",[663,665,667],{"label":10,"to":11,"description":664},"Sign in to each ad platform once, then let your agent connect the accounts.",{"label":41,"to":42,"description":666},"Set up the chat assistant you use across all your brands.",{"label":668,"to":86,"description":669},"Use AI agents with AdKit","What to do once everything is connected.",{"title":14,"description":658},"Pdn-PyTOvRIQhBMH5wTGSkBoYemLekx5Eu7sF5xM2Kk",{"id":673,"title":18,"body":674,"description":886,"extension":506,"icon":887,"iconInvert":34,"meta":888,"navTitle":889,"navigation":510,"path":19,"related":890,"section":516,"sectionOrder":517,"seo":895,"stem":20,"type":519,"updatedAt":896,"wip":34,"__hash__":897},"docs\u002Fdocs\u002F3.team-access.md",{"type":92,"value":675,"toc":881},[676,688,695,698,702,709,763,766,774,777,781,784,820,823,827,834,837,840,846,861,875],[95,677,678,679,681,682,684,685,687],{},"Admins decide who sees what. Your ",[99,680,626],{}," is your team's shared space in AdKit. Inside it, each client or brand is a ",[99,683,105],{}," with its own ad accounts, and those accounts come from a platform ",[99,686,101],{},", the Meta or Google sign-in an admin added once.",[95,689,690,691,694],{},"Every teammate gets an ",[99,692,693],{},"access level"," and a list of projects, and works only inside those.",[95,696,697],{},"This matters most for agencies: a teammate assigned to two clients can't open the other twenty, or see their ads.",[114,699,701],{"id":700},"roles","Roles",[95,703,704,705,328],{},"Every member of a workspace has one of four levels, set under ",[322,706,636],{"href":707,"rel":708},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fmembers",[326],[144,710,711,721],{},[147,712,713],{},[150,714,715,718],{},[153,716,717],{},"Level",[153,719,720],{},"What they can do",[160,722,723,733,743,753],{},[150,724,725,730],{},[165,726,727],{},[99,728,729],{},"Owner",[165,731,732],{},"Everything an Admin can, plus remove admins. The person who created the workspace.",[150,734,735,740],{},[165,736,737],{},[99,738,739],{},"Admin",[165,741,742],{},"Add platform logins, assign ad accounts to projects, invite and remove members, set anyone's access level and projects. Sees every project.",[150,744,745,750],{},[165,746,747],{},[99,748,749],{},"Write",[165,751,752],{},"Create, edit, and publish campaigns and drafts inside their assigned projects. Can't add logins or assign ad accounts.",[150,754,755,760],{},[165,756,757],{},[99,758,759],{},"Read only",[165,761,762],{},"View campaigns, results, and drafts inside their assigned projects. Can't change anything or publish.",[95,764,765],{},"Pick Write for anyone who runs campaigns, and Read only for clients or reviewers who only check results.",[95,767,768,769,773],{},"Two guardrails. Admins can't lower their own access, so nobody locks themselves out of Settings by accident. And only the owner can remove an admin, so one admin can't lock the others out. The owner's role can't be changed or transferred yet. If the owner leaves your company, ",[322,770,772],{"href":491,"rel":771},[326],"reach out"," and we'll move it.",[95,775,776],{},"With the levels clear, here is the order to set the team up.",[114,778,780],{"id":779},"set-up-your-team","Set up your team",[95,782,783],{},"Logins first, then accounts, then people. A member invited before their project has ad accounts lands in an empty project.",[275,785,786,798,807],{},[278,787,788,791,792,795,796,328],{},[99,789,790],{},"Add the platform logins."," Under ",[322,793,587],{"href":324,"rel":794},[326],", sign in to Meta, Google, and the other platforms once. Only admins can do this, because one login opens every ad account behind it. See ",[322,797,10],{"href":11},[278,799,800,791,803,806],{},[99,801,802],{},"Assign ad accounts to projects.",[322,804,594],{"href":347,"rel":805},[326],", give each project the accounts it should manage. One project per client keeps campaigns and reporting apart.",[278,808,809,791,812,815,816,819],{},[99,810,811],{},"Invite the member.",[322,813,636],{"href":707,"rel":814},[326],", enter their email, pick Write or Read only, and pick their projects. New invites start on ",[99,817,818],{},"All projects",", which also includes any project created later, so change it for anyone who should only work on certain clients. You can also give someone no projects at all, for example while their client is still being set up.",[95,821,822],{},"When they sign in, they see only the projects you picked, with the accounts you assigned. Nothing else in the workspace is open to them.",[114,824,826],{"id":825},"change-or-remove-access","Change or remove access",[95,828,829,830,833],{},"To change someone's level or projects, open ",[322,831,636],{"href":707,"rel":832},[326]," and edit their row.",[95,835,836],{},"Changes apply immediately. Remove someone from a project, or switch them from Write to Read only, and their next click gets refused. If they had a tab open, it may keep showing the old screen until they reload, but nothing they do in it goes through.",[95,838,839],{},"The same goes for their AI agents. An agent connects with an AdKit key tied to the member's own account, so it gets that member's level and projects, whatever the member asks it to do. If Jade can only open the KPMG project, her Claude can only manage KPMG's campaigns.",[95,841,842,843,328],{},"Removing Jade from the workspace ends her access to every project, and her agents' access with it. How keys work is in ",[322,844,845],{"href":28},"Control what an AI agent can do",[847,848,850,855,858],"note",{"icon":849},"fa6-solid:lightbulb",[95,851,852],{},[99,853,854],{},"Let a Write member add a platform login",[95,856,857],{},"Make them an admin for a few minutes. Sometimes the right login belongs to a Write member, for example a teammate who manages a client's Microsoft Advertising account under their own email. Change their level under Settings → Members, let them add the login under Integrations, then switch them back to Write.",[95,859,860],{},"While they're admin they can open every client and change any member, so do it while you're with them. The login stays connected after the switch. Assign its accounts to projects under Settings → Ad accounts like any other.",[847,862,864,869,872],{"icon":863},"fa6-solid:circle-info",[95,865,866],{},[99,867,868],{},"Personal and company workspaces",[95,870,871],{},"They're the same thing. AdKit creates a workspace for you when you sign up, named after you. Rename it under Settings, invite your team, and that's your company workspace.",[95,873,874],{},"A second workspace is only useful when two teams must not see each other's logins at all. It runs on the same plan if you own both, but it needs its own logins, so you sign in to each platform again.",[95,876,877,878,494],{},"Questions? ",[322,879,493],{"href":491,"rel":880},[326],{"title":267,"searchDepth":496,"depth":496,"links":882},[883,884,885],{"id":700,"depth":496,"text":701},{"id":779,"depth":496,"text":780},{"id":825,"depth":496,"text":826},"Invite teammates to AdKit, limit each one to specific projects, and control who can add logins, assign ad accounts, and publish.","fa6-solid:users",{},"Team members & access",[891,892,893],{"label":10,"to":11,"description":664},{"label":14,"to":15,"description":513},{"label":845,"to":28,"description":894},"The access levels for agent keys, from read-only to draft and publish.",{"title":18,"description":886},"2026-09-18","mBn_l_lo0ZxaO0YwNcG9X5MTArdB2D8J9dOOHCcHeoc",{"id":899,"title":27,"body":900,"description":1107,"extension":506,"icon":1108,"iconInvert":34,"meta":1109,"navTitle":1110,"navigation":510,"path":28,"related":1111,"section":1112,"sectionOrder":517,"seo":1113,"stem":29,"type":519,"updatedAt":896,"wip":34,"__hash__":1114},"docs\u002Fdocs\u002Fagents\u002Faccess-levels.md",{"type":92,"value":901,"toc":1101},[902,905,908,912,915,973,976,980,983,986,1006,1009,1013,1016,1043,1049,1052,1056,1062,1096],[95,903,904],{},"An access level is what an agent is allowed to do in your ad accounts: read, prepare drafts, or publish. It applies to anything connected to AdKit, whether that's Claude, the AdKit CLI (the command-line version coding agents use), or an API key you created for a script.",[95,906,907],{},"You set one default per project, and you can give any single agent a different level. Your own role in the workspace sets the maximum for both (more on that at the end).",[114,909,911],{"id":910},"the-four-access-levels","The four access levels",[95,913,914],{},"Every agent sits on one of these:",[144,916,917,926],{},[147,918,919],{},[150,920,921,923],{},[153,922,717],{},[153,924,925],{},"What the agent can do",[160,927,928,938,948,963],{},[150,929,930,935],{},[165,931,932],{},[99,933,934],{},"Disabled",[165,936,937],{},"Nothing, not even viewing. Use it to pause an agent without deleting it.",[150,939,940,945],{},[165,941,942],{},[99,943,944],{},"Read-only",[165,946,947],{},"View campaigns and pull reports. If it tries to change something, AdKit refuses and tells it why.",[150,949,950,955],{},[165,951,952],{},[99,953,954],{},"Draft only",[165,956,957,958,328],{},"Create and edit campaigns as drafts. If it tries to publish, AdKit saves a draft instead, for you to publish from ",[322,959,962],{"href":960,"rel":961},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fmanage\u002Fdrafts",[326],"Drafts",[150,964,965,970],{},[165,966,967],{},[99,968,969],{},"Draft + Publish",[165,971,972],{},"Create and edit campaigns as drafts, and publish them when you ask.",[95,974,975],{},"On Draft only and Draft + Publish, every change is saved as a draft first. The only difference is who pushes it live: you, or the agent when you tell it to.",[114,977,979],{"id":978},"set-the-project-default-level","Set the project default level",[95,981,982],{},"The project default applies to every agent in that project, including ones you connect later. An agent with its own level (next section) keeps it when you change the default.",[95,984,985],{},"New projects start on Draft + Publish, so an agent can finish a job without you opening the dashboard. The trade-off is that a misread request can go live with real spend behind it. Draft only costs you one click per change in the dashboard, and nothing goes live without you. Pick Draft only if you're new to running ads through an agent.",[275,987,988,995],{},[278,989,320,990,994],{},[322,991,251],{"href":992,"rel":993},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fpermissions",[326]," with the right project selected.",[278,996,997,998,1001,1002,1005],{},"Under ",[99,999,1000],{},"Default Agent Access",", click ",[99,1003,1004],{},"Change access",", pick a level, and save.",[95,1007,1008],{},"Only workspace admins can change this, because it affects every agent in the project at once.",[114,1010,1012],{"id":1011},"set-a-level-for-one-agent","Set a level for one agent",[95,1014,1015],{},"Any agent can have its own level instead of the project default. The usual case is a reporting agent: put it on Read-only so it can pull numbers but never touch a live ad, while your other agents keep publishing.",[275,1017,1018,1026,1037],{},[278,1019,320,1020,1025],{},[322,1021,1024],{"href":1022,"rel":1023},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fdevices",[326],"Devices & Keys",". It lists everything connected to AdKit.",[278,1027,1028,1029,1032,1033,1036],{},"Find the agent. Its level is in the ",[99,1030,1031],{},"Access"," column. ",[99,1034,1035],{},"Default"," means it follows the project default.",[278,1038,1039,1040,1005],{},"Click the sliders icon on that row, turn on ",[99,1041,1042],{},"Custom access",[95,1044,1045,1046,1048],{},"The new level applies from the agent's next action. To put it back on the project default, open the same dialog and turn ",[99,1047,1042],{}," off. API keys you created by hand on that page, for the CLI or your own scripts, work the same way.",[95,1050,1051],{},"Set a level and the agent is still refused? Your own role is probably the cap.",[114,1053,1055],{"id":1054},"your-workspace-role-sets-the-maximum","Your workspace role sets the maximum",[95,1057,1058,1059,1061],{},"An agent connects through your account, so it can never do more than you can. Your role is set under Settings → Members (see ",[322,1060,18],{"href":19},"), and it limits every agent you connect, whatever level you picked for it:",[144,1063,1064,1074],{},[147,1065,1066],{},[150,1067,1068,1071],{},[153,1069,1070],{},"Your role in the workspace",[153,1072,1073],{},"Highest level your agents can get",[160,1075,1076,1083,1089],{},[150,1077,1078,1080],{},[165,1079,759],{},[165,1081,1082],{},"Read-only (agents can't change anything either)",[150,1084,1085,1087],{},[165,1086,749],{},[165,1088,969],{},[150,1090,1091,1094],{},[165,1092,1093],{},"Admin or Owner",[165,1095,969],{},[95,1097,877,1098,494],{},[322,1099,493],{"href":491,"rel":1100},[326],{"title":267,"searchDepth":496,"depth":496,"links":1102},[1103,1104,1105,1106],{"id":910,"depth":496,"text":911},{"id":978,"depth":496,"text":979},{"id":1011,"depth":496,"text":1012},{"id":1054,"depth":496,"text":1055},"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.","fa6-solid:lock",{},"Access levels",null,"Using agents",{"title":27,"description":1107},"-32bRJXkuNR6HdI-Y_yi3LIt0IrYuGSXVcNhkHFLZek",{"id":1116,"title":31,"body":1117,"description":1533,"extension":506,"icon":1534,"iconInvert":34,"meta":1535,"navTitle":1536,"navigation":510,"path":32,"related":1111,"section":1112,"sectionOrder":496,"seo":1537,"stem":33,"type":519,"updatedAt":896,"wip":34,"__hash__":1538},"docs\u002Fdocs\u002Fagents\u002Fupload-creative-media.md",{"type":92,"value":1118,"toc":1527},[1119,1122,1125,1129,1136,1139,1147,1150,1437,1441,1444,1450,1456,1459,1462,1466,1469,1489,1492,1496,1523],[95,1120,1121],{},"Give your agent an image or video and ask it to upload the file to Meta, Google, TikTok, LinkedIn, X, or AdKit Studio. The file lands in that platform's media library, ready to use in an ad.",[95,1123,1124],{},"Most agents need a one-time setup before the first upload works. That comes first, then the formats and sizes each platform accepts.",[114,1126,1128],{"id":1127},"allow-your-agent-to-upload-to-adkit","Allow your agent to upload to AdKit",[95,1130,1131,1132,1135],{},"To upload, the agent sends the file to a temporary AdKit upload link. Most agents block that by default: they run in a sandbox that can only contact sites you've approved, so your data can't be sent somewhere you didn't expect. Claude on the web, Claude Code, Codex, and Cursor all block it until you allow ",[269,1133,1134],{},"*.adkit.so"," (any address ending in adkit.so).",[95,1137,1138],{},"Two cases skip the setup:",[401,1140,1141,1144],{},[278,1142,1143],{},"The file is already online, at a public link. The agent gives AdKit the link and AdKit downloads it.",[278,1145,1146],{},"You use ChatGPT. It passes the file you attached straight through to AdKit.",[95,1148,1149],{},"Everyone else, once per agent:",[1151,1152,1154,1200,1321,1360,1426],"agent-tabs",{"default":1153},"claude",[1155,1156,1157,1168,1185,1194],"template",{"v-slot:claude":267},[95,1158,1159,1160,1167],{},"Go to ",[99,1161,1162],{},[322,1163,1166],{"href":1164,"target":1165},"https:\u002F\u002Fclaude.ai\u002Fsettings\u002Fcapabilities#Code%20execution%20and%20file%20creation:~:text=in%20the%20conversation.-,Code%20execution%20and%20file%20creation,-Code%20execution%20and","_blank","Settings > Capabilities",":",[275,1169,1170,1176],{},[278,1171,1172,1173,328],{},"Turn on ",[99,1174,1175],{},"Allow network egress",[278,1177,1178,1179,1181,1182,328],{},"Add ",[269,1180,1134],{}," under ",[99,1183,1184],{},"Additional allowed domains",[95,1186,1187,1188,328],{},"On Claude Team or Enterprise, this is an organization setting: an admin adds it at ",[99,1189,1190],{},[322,1191,1193],{"href":1192,"target":1165},"https:\u002F\u002Fclaude.ai\u002Fadmin-settings\u002Fcapabilities","Admin settings > Capabilities",[95,1195,1196],{},[555,1197],{"alt":1198,"src":1199},"Claude settings showing *.adkit.so added to Additional allowed domains","\u002Fdocs\u002Fagents\u002Fclaude-domain-allowlist.png",[1155,1201,1202,1208,1221,1314],{"v-slot:claude-code":267},[95,1203,1204,1205,328],{},"Without the sandbox, there's nothing to set up: Claude Code asks you to approve the domain the first time. Pick ",[99,1206,1207],{},"Yes, and don't ask again",[95,1209,1210,1211,1214,1215,1217,1218,1167],{},"If you turned on Claude Code's sandbox (",[269,1212,1213],{},"\u002Fsandbox","), add ",[269,1216,1134],{}," to its allowed domains in your project's ",[269,1219,1220],{},".claude\u002Fsettings.json",[261,1222,1226],{"className":1223,"code":1224,"language":1225,"meta":267,"style":267},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n    \"sandbox\": {\n        \"network\": {\n            \"allowedDomains\": [\"*.adkit.so\"]\n        }\n    }\n}\n","json",[269,1227,1228,1237,1254,1269,1296,1302,1308],{"__ignoreMap":267},[1229,1230,1233],"span",{"class":1231,"line":1232},"line",1,[1229,1234,1236],{"class":1235},"sMK4o","{\n",[1229,1238,1239,1242,1246,1249,1251],{"class":1231,"line":496},[1229,1240,1241],{"class":1235},"    \"",[1229,1243,1245],{"class":1244},"spNyl","sandbox",[1229,1247,1248],{"class":1235},"\"",[1229,1250,1167],{"class":1235},[1229,1252,1253],{"class":1235}," {\n",[1229,1255,1256,1259,1263,1265,1267],{"class":1231,"line":517},[1229,1257,1258],{"class":1235},"        \"",[1229,1260,1262],{"class":1261},"sBMFI","network",[1229,1264,1248],{"class":1235},[1229,1266,1167],{"class":1235},[1229,1268,1253],{"class":1235},[1229,1270,1272,1275,1279,1281,1283,1286,1288,1291,1293],{"class":1231,"line":1271},4,[1229,1273,1274],{"class":1235},"            \"",[1229,1276,1278],{"class":1277},"sbssI","allowedDomains",[1229,1280,1248],{"class":1235},[1229,1282,1167],{"class":1235},[1229,1284,1285],{"class":1235}," [",[1229,1287,1248],{"class":1235},[1229,1289,1134],{"class":1290},"sfazB",[1229,1292,1248],{"class":1235},[1229,1294,1295],{"class":1235},"]\n",[1229,1297,1299],{"class":1231,"line":1298},5,[1229,1300,1301],{"class":1235},"        }\n",[1229,1303,1305],{"class":1231,"line":1304},6,[1229,1306,1307],{"class":1235},"    }\n",[1229,1309,1311],{"class":1231,"line":1310},7,[1229,1312,1313],{"class":1235},"}\n",[95,1315,1316,1317,1320],{},"The same block in ",[269,1318,1319],{},"~\u002F.claude\u002Fsettings.json"," allows it for every project.",[1155,1322,1323,1334,1351],{"v-slot:codex":267},[95,1324,1325,1326,1329,1330,1333],{},"Codex blocks all network access in its sandbox by default. Turn it on in ",[269,1327,1328],{},"~\u002F.codex\u002Fconfig.toml",", or in ",[269,1331,1332],{},".codex\u002Fconfig.toml"," for one project:",[261,1335,1339],{"className":1336,"code":1337,"language":1338,"meta":267,"style":267},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[sandbox_workspace_write]\nnetwork_access = true\n","toml",[269,1340,1341,1346],{"__ignoreMap":267},[1229,1342,1343],{"class":1231,"line":1232},[1229,1344,1345],{},"[sandbox_workspace_write]\n",[1229,1347,1348],{"class":1231,"line":496},[1229,1349,1350],{},"network_access = true\n",[95,1352,1353,1354,1359],{},"This opens the network for every site, not just AdKit. Codex can also allow single domains, but that feature is still experimental. See ",[322,1355,1358],{"href":1356,"rel":1357},"https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpermissions",[326],"Codex permissions"," if you need it.",[1155,1361,1362,1375],{"v-slot:cursor":267},[95,1363,1178,1364,1366,1367,1370,1371,1374],{},[269,1365,1134],{}," to the network allowlist in ",[269,1368,1369],{},".cursor\u002Fsandbox.json"," in your project (or ",[269,1372,1373],{},"~\u002F.cursor\u002Fsandbox.json"," for every project):",[261,1376,1378],{"className":1223,"code":1377,"language":1225,"meta":267,"style":267},"{\n    \"networkPolicy\": {\n        \"allow\": [\"*.adkit.so\"]\n    }\n}\n",[269,1379,1380,1384,1397,1418,1422],{"__ignoreMap":267},[1229,1381,1382],{"class":1231,"line":1232},[1229,1383,1236],{"class":1235},[1229,1385,1386,1388,1391,1393,1395],{"class":1231,"line":496},[1229,1387,1241],{"class":1235},[1229,1389,1390],{"class":1244},"networkPolicy",[1229,1392,1248],{"class":1235},[1229,1394,1167],{"class":1235},[1229,1396,1253],{"class":1235},[1229,1398,1399,1401,1404,1406,1408,1410,1412,1414,1416],{"class":1231,"line":517},[1229,1400,1258],{"class":1235},[1229,1402,1403],{"class":1261},"allow",[1229,1405,1248],{"class":1235},[1229,1407,1167],{"class":1235},[1229,1409,1285],{"class":1235},[1229,1411,1248],{"class":1235},[1229,1413,1134],{"class":1290},[1229,1415,1248],{"class":1235},[1229,1417,1295],{"class":1235},[1229,1419,1420],{"class":1231,"line":1271},[1229,1421,1307],{"class":1235},[1229,1423,1424],{"class":1231,"line":1298},[1229,1425,1313],{"class":1235},[1155,1427,1428,1431],{"v-slot:other":267},[95,1429,1430],{},"Paste this into your agent. It works out which case applies to it and tells you if something needs allowing:",[261,1432,1435],{"className":1433,"code":1434,"language":266},[264],"AdKit's MCP tool adkit_upload_file takes a file from a host attachment, a\npublic HTTPS URL, or a temporary upload link. It does not accept base64 or\nlocal file paths.\n\nIf you can't attach the file and it has no public URL: call adkit_upload_file\nwith action \"request_upload_url\", PUT the file bytes to the returned uploadUrl\n(a curl command is included), then call it again with action \"upload\" and the\nuploadId. The PUT needs outbound access to *.adkit.so.\n\nWhich path works for you, and do I need to allowlist *.adkit.so for it?\n",[269,1436,1434],{"__ignoreMap":267},[114,1438,1440],{"id":1439},"ask-for-the-upload","Ask for the upload",[95,1442,1443],{},"Attach the files to your message and say where they go:",[261,1445,1448],{"className":1446,"code":1447,"language":266,"meta":267},[264],"Upload those ads to Meta and create an ad for each one in the most recent campaign\n",[269,1449,1447],{"__ignoreMap":267},[95,1451,1452],{},[555,1453],{"alt":1454,"src":1455},"Claude chat with a video and two images attached, asking to upload them to Meta","\u002Fdocs\u002Fagents\u002Fupload-attach-files.png",[95,1457,1458],{},"If your agent has access to your computer (Claude Code, Codex, Cursor), you can also give it the path to a file or folder instead of attaching.",[95,1460,1461],{},"AdKit hands the agent the platform's ID for the file, and the agent uses it when it builds the ad. You don't need the ID yourself.",[114,1463,1465],{"id":1464},"what-you-can-upload","What you can upload",[95,1467,1468],{},"AdKit accepts JPEG, PNG, GIF, and WebP images, and MP4, MOV, and WebM videos, up to 512 MB per file. Three platforms have their own rules:",[401,1470,1471,1477,1483],{},[278,1472,1473,1476],{},[99,1474,1475],{},"X"," takes JPEG and PNG images only, up to 5 MB each.",[278,1478,1479,1482],{},[99,1480,1481],{},"LinkedIn"," takes JPEG, PNG, and GIF images, and MP4 videos.",[278,1484,1485,1488],{},[99,1486,1487],{},"Google Ads"," takes JPEG, PNG, and GIF images. For video, Google uses YouTube, so give the agent the YouTube link instead of a file.",[95,1490,1491],{},"The file goes to the platform as it is, so the platform's own rules still apply. An image too small for a placement is refused by Meta or Google, not by AdKit. The agent gets that error and tells you.",[114,1493,1495],{"id":1494},"common-questions","Common questions",[1497,1498,1500,1508,1514],"accordion",{"type":1499},"single",[1501,1502,1505],"accordion-item",{"icon":1503,"label":1504},"fa6-solid:circle-question","The agent says the upload link expired",[95,1506,1507],{},"An upload link works once and expires after 30 minutes, because the link itself is what authorizes the upload. Ask the agent to start the upload again. It requests a fresh link on its own.",[1501,1509,1511],{"icon":1503,"label":1510},"I can't allow the domain in my agent",[95,1512,1513],{},"Some setups give you no way to allow a domain, for example Claude Team or Enterprise when you're not the admin. Put the file somewhere public and give the agent a direct link to the file, one that opens the image or video itself rather than a preview page.",[1501,1515,1517],{"icon":1503,"label":1516},"The upload failed. Is that a bug?",[95,1518,1519,1520,1522],{},"Check three things first: the agent is allowed to reach ",[269,1521,1134],{}," (setup above), the file is in a format and size the platform takes, and the platform itself didn't refuse it. If none of those is it, the upload tool is in beta, so possibly. Ask the agent to send us the error (it has an AdKit feedback tool for that), then retry with a public link if you have one.",[1524,1525,1526],"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 .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":267,"searchDepth":496,"depth":496,"links":1528},[1529,1530,1531,1532],{"id":1127,"depth":496,"text":1128},{"id":1439,"depth":496,"text":1440},{"id":1464,"depth":496,"text":1465},{"id":1494,"depth":496,"text":1495},"Upload images and videos to Meta, Google, TikTok, LinkedIn, X, or AdKit Studio from Claude, ChatGPT, Codex, or any AI agent using AdKit. Includes the domain setup each agent needs.","fa6-solid:cloud-arrow-up",{},"Upload creative media",{"title":31,"description":1533},"YSFmuGrw7Oon-csySE7_tSMSzai6juI1ddSgxmiYso8",{"id":1540,"title":41,"body":1541,"description":1929,"extension":506,"icon":1930,"iconInvert":34,"meta":1931,"navTitle":1932,"navigation":510,"path":42,"related":1933,"section":1938,"sectionOrder":1232,"seo":1939,"stem":43,"type":519,"updatedAt":896,"wip":34,"__hash__":1940},"docs\u002Fdocs\u002Fclients\u002F1.claude.md",{"type":92,"value":1542,"toc":1919},[1543,1550,1561,1564,1586,1590,1656,1665,1670,1680,1686,1692,1699,1703,1721,1725,1728,1761,1765,1768,1794,1801,1805,1811,1817,1823,1825,1831,1853,1856,1867,1876,1882,1895,1901,1911,1916],[95,1544,1545,1546,1549],{},"Connect Claude to AdKit with one MCP connector and manage ",[99,1547,1548],{},"Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads"," ads from a normal conversation: pull campaigns, draft changes, generate creatives, and research competitors.",[95,1551,1552,1553,1556,1557,1560],{},"There is ",[99,1554,1555],{},"one AdKit connector for every platform",". You do not add a separate connector for Google or Meta. The same ",[269,1558,1559],{},"adkit_manage"," tool handles all of them once the ad account is connected in AdKit.",[95,1562,1563],{},"The steps are the same for Claude on the web, the Desktop app, and Claude Cowork.",[847,1565,1566,1571],{"icon":863},[95,1567,1568],{},[99,1569,1570],{},"Prerequisites",[401,1572,1573,1580],{},[278,1574,1575,1576,1579],{},"A ",[99,1577,1578],{},"paid Claude plan"," (Pro, Max, Team, or Enterprise). Custom connectors are not available on the free tier.",[278,1581,1582,1583,328],{},"An AdKit account with ",[322,1584,1585],{"href":11},"at least one ad account connected",[114,1587,1589],{"id":1588},"setup-2-minutes","Setup (2 minutes)",[275,1591,1592,1614,1634,1646],{},[278,1593,1594,1597,1598,335,1603,1606,1607,1610,1611,328],{},[99,1595,1596],{},"Add AdKit from the connector directory."," Open the ",[322,1599,1602],{"href":1600,"rel":1601},"https:\u002F\u002Fclaude.ai\u002Fdirectory\u002Fconnectors\u002Fadkit",[326],"AdKit listing",[99,1604,1605],{},"Connect",". You can also find it in Claude under ",[99,1608,1609],{},"Customize → Connectors"," by searching for ",[99,1612,1613],{},"AdKit",[278,1615,1616,1619,1620,1622,1623,1626,1627,1630],{},[99,1617,1618],{},"Turn it on."," In a conversation, click ",[99,1621,338],{}," → ",[99,1624,1625],{},"Connectors"," → turn AdKit on.",[1628,1629],"br",{},[555,1631],{"alt":1632,"src":1633},"The + menu in a Claude conversation with the Connectors submenu open and AdKit toggled on","\u002Fdocs\u002Fclients\u002Fclaude-enable-connector.png",[278,1635,1636,1639,1640],{},[99,1637,1638],{},"Ask Claude to connect."," Send this in a new chat:",[261,1641,1644],{"className":1642,"code":1643,"language":266,"meta":267},[264],"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",[269,1645,1643],{"__ignoreMap":267},[278,1647,1648,1651,1652,1655],{},[99,1649,1650],{},"Done."," When Claude reports it's connected, you're ready. Ask it to ",[269,1653,1654],{},"list my ad accounts"," to confirm it can see them.",[1657,1658,1659],"warning",{},[95,1660,1661,1664],{},[99,1662,1663],{},"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.",[1666,1667,1669],"h3",{"id":1668},"add-it-manually-instead","Add it manually instead",[95,1671,1672,1673,1676,1677,1679],{},"In Claude, go to ",[99,1674,1675],{},"Customize → Connectors → Add Connector",". Name it ",[99,1678,1613],{}," and enter this URL:",[261,1681,1684],{"className":1682,"code":1683,"language":266,"meta":267},[264],"https:\u002F\u002Fmcp.adkit.so\n",[269,1685,1683],{"__ignoreMap":267},[95,1687,1688],{},[555,1689],{"alt":1690,"src":1691},"The Add custom connector dialog in Claude settings, with the name AdKit and the URL mcp.adkit.so filled in","\u002Fdocs\u002Fclients\u002Fclaude-add-connector.png",[95,1693,1694,1695,1622,1697,1626],{},"Then enable it in a conversation: click ",[99,1696,338],{},[99,1698,1625],{},[114,1700,1702],{"id":1701},"optional-allow-file-uploads","Optional: allow file uploads",[95,1704,1705,1706,1708,1709,1713,1714,1718,1719,328],{},"Only needed if you want to upload ad creatives through Claude. Add ",[269,1707,1134],{}," to your ",[322,1710,1712],{"href":1164,"rel":1711},[326],"allowed domains"," so Claude can upload files directly. On Team or Enterprise, an admin adds it in the ",[322,1715,1717],{"href":1192,"rel":1716},[326],"organization capabilities settings"," instead. Full steps: ",[322,1720,1536],{"href":32},[114,1722,1724],{"id":1723},"optional-install-ad-strategy-skills","Optional: install ad strategy skills",[95,1726,1727],{},"Teach Claude how to plan and run campaigns:",[261,1729,1733],{"className":1730,"code":1731,"language":1732,"meta":267,"style":267},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx skills add adkit\u002Fads-skills --skill '*'\n","bash",[269,1734,1735],{"__ignoreMap":267},[1229,1736,1737,1740,1743,1746,1749,1752,1755,1758],{"class":1231,"line":1232},[1229,1738,1739],{"class":1261},"npx",[1229,1741,1742],{"class":1290}," skills",[1229,1744,1745],{"class":1290}," add",[1229,1747,1748],{"class":1290}," adkit\u002Fads-skills",[1229,1750,1751],{"class":1290}," --skill",[1229,1753,1754],{"class":1235}," '",[1229,1756,1757],{"class":1290},"*",[1229,1759,1760],{"class":1235},"'\n",[114,1762,1764],{"id":1763},"what-you-can-do","What you can do",[95,1766,1767],{},"Once connected, Claude can:",[401,1769,1770,1776,1782,1788],{},[278,1771,1772,1775],{},[99,1773,1774],{},"Manage campaigns:"," read live campaigns, draft budget, status, and targeting changes across Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads.",[278,1777,1778,1781],{},[99,1779,1780],{},"Create ads:"," generate images and copy in AdKit Studio, then push them as drafts.",[278,1783,1784,1787],{},[99,1785,1786],{},"Research competitors:"," search the ad library (500k+ ads, 1000+ advertisers).",[278,1789,1790,1793],{},[99,1791,1792],{},"Analyze:"," pull performance and spot what needs attention.",[95,1795,1796,1797,1800],{},"Nothing goes live automatically. Every change is created as a ",[99,1798,1799],{},"draft"," for you to review and publish.",[114,1802,1804],{"id":1803},"example-prompts","Example prompts",[261,1806,1809],{"className":1807,"code":1808,"language":266,"meta":267},[264],"Pull my active Meta campaigns and show me which ones are overspending this week.\n",[269,1810,1808],{"__ignoreMap":267},[261,1812,1815],{"className":1813,"code":1814,"language":266,"meta":267},[264],"Research my top 3 competitors' Facebook ads and summarize the angles they use.\n",[269,1816,1814],{"__ignoreMap":267},[261,1818,1821],{"className":1819,"code":1820,"language":266,"meta":267},[264],"Draft a new Google Search campaign for my SaaS, budget $30\u002Fday, and let me review before publishing.\n",[269,1822,1820],{"__ignoreMap":267},[114,1824,443],{"id":442},[95,1826,1827,1830],{},[99,1828,1829],{},"AdKit shows as connected, but Claude says its tools aren't available, or the connection times out.","\nClaude sometimes keeps a broken copy of AdKit's tool list, and clicking Reconnect doesn't clear it. A new chat won't help either. Do a full reset:",[275,1832,1833,1842,1845],{},[278,1834,1672,1835,335,1838,1841],{},[99,1836,1837],{},"Settings → Connectors → AdKit",[99,1839,1840],{},"Remove"," (not Disconnect).",[278,1843,1844],{},"Quit the Claude desktop app completely (Cmd+Q on Mac). Closing the window isn't enough.",[278,1846,1847,1848,1852],{},"Reopen Claude and add AdKit again from the ",[322,1849,1851],{"href":1600,"rel":1850},[326],"connector directory",", then start a new chat.",[95,1854,1855],{},"Your ad accounts and projects stay connected in AdKit, so nothing needs to be set up again on that side.",[95,1857,1858,1861,1862,1622,1864,1866],{},[99,1859,1860],{},"Claude doesn't see AdKit at all.","\nConnectors are enabled per conversation: click ",[99,1863,338],{},[99,1865,1625],{}," and check AdKit is switched on. If it's not in the list, you installed it on a different workspace (personal vs. org), so add it in the one you're chatting in. On Team\u002FEnterprise, an admin must add it first.",[95,1868,1869,1875],{},[99,1870,1871,1872,1874],{},"Claude only shows old or Meta-only tools (no ",[269,1873,1559],{},").","\nClaude is showing a cached tool list from a previous connection. Remove the AdKit connector, add it again, and start a new chat. Also check the connector's tool permissions in Claude's settings: a tool category blocked there never reaches Claude.",[95,1877,1878,1881],{},[99,1879,1880],{},"In Cowork, tools are missing or vanish mid-session.","\nCowork sometimes loads only part of the tool list, and it has no screen for connector permissions. Start a new session so it fetches the full list again. If one tool is still missing, open Claude on the web and check the connector's tool permissions there: a category blocked on the web never reaches Cowork. If every AdKit tool is gone, do the full reset above.",[95,1883,1884,1887,1888,1890,1891,1894],{},[99,1885,1886],{},"Claude says a platform \"isn't connected\" even though it is.","\nThere is no separate per-platform connector. Google and Meta share ",[269,1889,1559],{},". Confirm the ad account is connected in AdKit (ask Claude to run ",[269,1892,1893],{},"adkit_status","), then retry. If tools are missing, reconnect as above.",[95,1896,1897,1900],{},[99,1898,1899],{},"Another ads tool answers instead, or results mix up advertisers.","\nTwo ads connectors running side by side confuse Claude about which one to call. Disable the other one, remove any older AdKit connector that has a long URL, and start a new chat.",[95,1902,1903,1906,1907,1910],{},[99,1904,1905],{},"It worked before and stopped.","\nThe authorization expires after 90 days without use. Reset it: revoke the old connection under ",[322,1908,1024],{"href":1022,"rel":1909},[326],", remove the connector in Claude, and run the setup above again.",[95,1912,488,1913,494],{},[322,1914,493],{"href":491,"rel":1915},[326],[1524,1917,1918],{},"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":267,"searchDepth":496,"depth":496,"links":1920},[1921,1924,1925,1926,1927,1928],{"id":1588,"depth":496,"text":1589,"children":1922},[1923],{"id":1668,"depth":517,"text":1669},{"id":1701,"depth":496,"text":1702},{"id":1723,"depth":496,"text":1724},{"id":1763,"depth":496,"text":1764},{"id":1803,"depth":496,"text":1804},{"id":442,"depth":496,"text":443},"Connect Claude (web, Desktop, or Cowork) to AdKit via the MCP connector and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads in natural language.","\u002Fimages\u002Flogos\u002Fclaude.svg",{},"Claude and Cowork",[1934,1936],{"label":10,"to":11,"description":1935},"Link your ad accounts so Claude has something to manage.",{"label":668,"to":86,"description":1937},"What to do once the connector is set up.","Connect an agent",{"title":41,"description":1929},"O2eymbPzX0aPIzvRnqWZ1t9L6Ykk2cfW4qA3ebSZRzI",{"id":1942,"title":45,"body":1943,"description":2141,"extension":506,"icon":2142,"iconInvert":510,"meta":2143,"navTitle":2144,"navigation":510,"path":46,"related":2145,"section":1938,"sectionOrder":1232,"seo":2149,"stem":47,"type":519,"updatedAt":2150,"wip":34,"__hash__":2151},"docs\u002Fdocs\u002Fclients\u002F10.hermes.md",{"type":92,"value":1944,"toc":2135},[1945,1951,1955,1958,1964,1967,1971,1974,2062,2065,2067,2083,2089,2107,2120,2122,2127,2132],[95,1946,1947,1948,1950],{},"Connect Hermes to AdKit and manage ",[99,1949,1548],{}," 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.",[114,1952,1954],{"id":1953},"recommended-let-hermes-set-it-up","Recommended: let Hermes set it up",[95,1956,1957],{},"Give Hermes this prompt:",[261,1959,1962],{"className":1960,"code":1961,"language":266,"meta":267},[264],"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",[269,1963,1961],{"__ignoreMap":267},[95,1965,1966],{},"Open the URL Hermes sends you. After you approve access, the waiting CLI process stores the connection where Hermes runs.",[114,1968,1970],{"id":1969},"alternative-mcp-with-an-api-key","Alternative: MCP with an API key",[95,1972,1973],{},"Use this when Hermes cannot run the CLI.",[275,1975,1976,1984,2052],{},[278,1977,1978,1979,1983],{},"Create a key under ",[322,1980,1024],{"href":1981,"rel":1982},"https:\u002F\u002Fapp.adkit.so\u002Fdashboard\u002Fsettings\u002Fdevices?new",[326],". It is shown once, so copy it immediately.",[278,1985,1986,1987,1990,1991,1167,1994],{},"Add this to ",[269,1988,1989],{},"~\u002F.hermes\u002Fconfig.yaml",", replacing ",[269,1992,1993],{},"adk_your_key",[261,1995,1999],{"className":1996,"code":1997,"language":1998,"meta":267,"style":267},"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",[269,2000,2001,2010,2017,2031,2038],{"__ignoreMap":267},[1229,2002,2003,2007],{"class":1231,"line":1232},[1229,2004,2006],{"class":2005},"swJcz","mcp_servers",[1229,2008,2009],{"class":1235},":\n",[1229,2011,2012,2015],{"class":1231,"line":496},[1229,2013,2014],{"class":2005},"    adkit",[1229,2016,2009],{"class":1235},[1229,2018,2019,2022,2024,2026,2029],{"class":1231,"line":517},[1229,2020,2021],{"class":2005},"        url",[1229,2023,1167],{"class":1235},[1229,2025,1754],{"class":1235},[1229,2027,2028],{"class":1290},"https:\u002F\u002Fmcp.adkit.so",[1229,2030,1760],{"class":1235},[1229,2032,2033,2036],{"class":1231,"line":1271},[1229,2034,2035],{"class":2005},"        headers",[1229,2037,2009],{"class":1235},[1229,2039,2040,2043,2045,2047,2050],{"class":1231,"line":1298},[1229,2041,2042],{"class":2005},"            Authorization",[1229,2044,1167],{"class":1235},[1229,2046,1754],{"class":1235},[1229,2048,2049],{"class":1290},"Bearer adk_your_key",[1229,2051,1760],{"class":1235},[278,2053,2054,2055,2058,2059,328],{},"Run ",[269,2056,2057],{},"\u002Freload-mcp"," in Hermes, then ask Hermes to run the AdKit check-in tool with ",[269,2060,2061],{},"agentId: \"hermes\"",[95,2063,2064],{},"Keep the key in Hermes's MCP configuration, not in an agent conversation.",[114,2066,443],{"id":442},[95,2068,2069,2074,2075,2078,2079,2082],{},[99,2070,2071,328],{},[269,2072,2073],{},"adkit: command not found","\nThe CLI is not installed in that environment. Run ",[269,2076,2077],{},"npm i -g @adkit\u002Fcli",", then try ",[269,2080,2081],{},"adkit status"," again. On a server, make sure it is installed in the same environment Hermes runs in.",[95,2084,2085,2088],{},[99,2086,2087],{},"The setup command keeps waiting.","\nComplete the sign-in URL Hermes sent you. The background process must remain running until browser authorization finishes.",[95,2090,2091,2094,2095,2097,2098,2100,2101,2103,2104,2106],{},[99,2092,2093],{},"MCP shows zero tools.","\nCheck that ",[269,2096,1989],{}," points to ",[269,2099,2028],{}," and the header value is exactly ",[269,2102,2049],{}," (capital B, one space), then run ",[269,2105,2057],{},". Verify by invoking the AdKit check-in tool from an actual Hermes conversation.",[95,2108,2109,2112,2113,2116,2117,2119],{},[99,2110,2111],{},"Rotate or revoke a key.","\nGo to ",[322,2114,1024],{"href":1022,"rel":2115},[326]," in AdKit to revoke a key and create a new one, then update ",[269,2118,1989],{},". API keys don't expire on their own.",[114,2121,1764],{"id":1763},[95,2123,2124,2125,1800],{},"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 ",[99,2126,1799],{},[95,2128,648,2129,494],{},[322,2130,493],{"href":491,"rel":2131},[326],[1524,2133,2134],{},"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":267,"searchDepth":496,"depth":496,"links":2136},[2137,2138,2139,2140],{"id":1953,"depth":496,"text":1954},{"id":1969,"depth":496,"text":1970},{"id":442,"depth":496,"text":443},{"id":1763,"depth":496,"text":1764},"Connect Hermes to AdKit with the CLI or an API key and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads, whether Hermes runs locally or on a server.","\u002Fimages\u002Flogos\u002Fhermes.png",{},"Hermes",[2146,2148],{"label":14,"to":15,"description":2147},"Give each brand its own project and tell Hermes which one to use.",{"label":668,"to":86,"description":669},{"title":45,"description":2141},"2026-08-02","td27Jm1kn5Xysblu0jrcujGT0hpEyYYEGZ8ojRudlXQ",{"id":2153,"title":49,"body":2154,"description":2265,"extension":506,"icon":2266,"iconInvert":34,"meta":2267,"navTitle":2268,"navigation":510,"path":50,"related":2269,"section":1938,"sectionOrder":1232,"seo":2273,"stem":51,"type":519,"updatedAt":2150,"wip":34,"__hash__":2274},"docs\u002Fdocs\u002Fclients\u002F11.n8n.md",{"type":92,"value":2155,"toc":2259},[2156,2162,2166,2193,2196,2200,2203,2209,2211,2216,2218,2232,2245,2254],[95,2157,2158,2159,2161],{},"Use AdKit inside n8n to automate your ",[99,2160,1548],{}," ad workflows through the MCP Client Tool.",[114,2163,2165],{"id":2164},"connect-the-mcp-client-tool","Connect the MCP Client Tool",[275,2167,2168,2174,2181,2190],{},[278,2169,2170,2171,1983],{},"Create an API key under ",[322,2172,1024],{"href":1981,"rel":2173},[326],[278,2175,2176,2177,2180],{},"Add an ",[99,2178,2179],{},"MCP Client Tool"," node to your workflow.",[278,2182,2183,2184],{},"Configure it with these values:",[261,2185,2188],{"className":2186,"code":2187,"language":266,"meta":267},[264],"Endpoint: https:\u002F\u002Fmcp.adkit.so\nServer transport: HTTP Streamable\nAuthentication: Bearer Auth\nBearer token: adk_your_key\n",[269,2189,2187],{"__ignoreMap":267},[278,2191,2192],{},"Connect the MCP Client Tool to your AI Agent node and save the workflow.",[95,2194,2195],{},"Keep the key in the n8n credential, not in a workflow prompt or chat message.",[114,2197,2199],{"id":2198},"check-it-worked","Check it worked",[95,2201,2202],{},"Run the workflow with this test message:",[261,2204,2207],{"className":2205,"code":2206,"language":266,"meta":267},[264],"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",[269,2208,2206],{"__ignoreMap":267},[114,2210,1764],{"id":1763},[95,2212,2213,2214,1800],{},"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 ",[99,2215,1799],{},[114,2217,443],{"id":442},[95,2219,2220,2223,2224,2227,2228,2231],{},[99,2221,2222],{},"The node connects but calls fail with an auth error.","\nThe Bearer token must be the full key starting with ",[269,2225,2226],{},"adk_",", nothing else around it. If the key was revoked or lost, create a new one under ",[322,2229,1024],{"href":1981,"rel":2230},[326],": it is shown once.",[95,2233,2234,2237,2238,2240,2241,2244],{},[99,2235,2236],{},"The tool lists zero AdKit tools.","\nCheck the endpoint is exactly ",[269,2239,2028],{}," and the transport is ",[99,2242,2243],{},"HTTP Streamable",", then re-save the credential and run the workflow again.",[95,2246,2247,2249,2250,2253],{},[99,2248,2111],{},"\nRevoke the old key under ",[322,2251,1024],{"href":1022,"rel":2252},[326],", create a new one, and update the n8n credential. API keys don't expire on their own.",[95,2255,648,2256,494],{},[322,2257,493],{"href":491,"rel":2258},[326],{"title":267,"searchDepth":496,"depth":496,"links":2260},[2261,2262,2263,2264],{"id":2164,"depth":496,"text":2165},{"id":2198,"depth":496,"text":2199},{"id":1763,"depth":496,"text":1764},{"id":442,"depth":496,"text":443},"Connect n8n workflows to AdKit through the MCP server or an API key and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads.","\u002Fimages\u002Flogos\u002Fn8n.svg",{},"n8n",[2270,2272],{"label":14,"to":15,"description":2271},"Give each brand its own project and tell n8n which one to use.",{"label":668,"to":86,"description":669},{"title":49,"description":2265},"OZX9WRrgzs0cRuCZr_3slWXNqEkatYSTMoXOU4i0-18",{"id":2276,"title":53,"body":2277,"description":2411,"extension":506,"icon":2412,"iconInvert":510,"meta":2413,"navTitle":2414,"navigation":510,"path":54,"related":2415,"section":1938,"sectionOrder":1232,"seo":2419,"stem":55,"type":519,"updatedAt":520,"wip":34,"__hash__":2420},"docs\u002Fdocs\u002Fclients\u002F12.grok-bot.md",{"type":92,"value":2278,"toc":2405},[2279,2285,2288,2292,2349,2351,2354,2360,2362,2367,2369,2383,2392,2400],[95,2280,2281,2282,2284],{},"Add AdKit to Grok Bot as a custom MCP server, then manage ",[99,2283,1548],{}," ads from a normal conversation. Connectors are account-wide, so every Bot you run can use AdKit once it is added.",[95,2286,2287],{},"Grok Bot is the desktop and mobile app you sign in to with a X account. It is not the same as Grok chat on grok.com, which has its own connectors page.",[114,2289,2291],{"id":2290},"setup","Setup",[275,2293,2294,2310,2333,2339],{},[278,2295,2296,2299,2300,2303,2304,2309],{},[99,2297,2298],{},"Open Plugins."," In the Grok Bot app, go to ",[99,2301,2302],{},"Settings → Plugins",". If you haven't installed the app yet, get it from ",[322,2305,2308],{"href":2306,"rel":2307},"https:\u002F\u002Fx.ai\u002Fbot",[326],"x.ai\u002Fbot"," and sign in with your X account.",[278,2311,2312,2315,2316,2318,2319,2324,2326,2327],{},[99,2313,2314],{},"Add AdKit as a custom MCP server."," Use the name ",[99,2317,1613],{}," and this URL:",[261,2320,2322],{"className":2321,"code":1683,"language":266,"meta":267},[264],[269,2323,1683],{"__ignoreMap":267},[1628,2325],{},"You can also ask your Bot to do it. Send this in a chat and confirm when it shows you the name and URL:",[261,2328,2331],{"className":2329,"code":2330,"language":266,"meta":267},[264],"Add a custom MCP server called adkit at https:\u002F\u002Fmcp.adkit.so\n",[269,2332,2330],{"__ignoreMap":267},[278,2334,2335,2338],{},[99,2336,2337],{},"Authorize."," Grok Bot opens a browser window. Sign in to AdKit and allow access. No API key needed.",[278,2340,2341,2344,2345,2348],{},[99,2342,2343],{},"Attach it to a task."," In a chat, type ",[269,2346,2347],{},"@"," and pick AdKit so the Bot uses it for that task.",[114,2350,2199],{"id":2198},[95,2352,2353],{},"Send this in a new chat. It confirms Grok Bot can actually use AdKit:",[261,2355,2358],{"className":2356,"code":2357,"language":266,"meta":267},[264],"Use the AdKit connector you just added and run the AdKit checkin tool with agentId: \"grok\".\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",[269,2359,2357],{"__ignoreMap":267},[114,2361,1764],{"id":1763},[95,2363,2364,2365,1800],{},"Once connected, Grok Bot can pull your live campaigns, draft budget and targeting changes, generate ad creatives, and research competitors. It also runs scheduled routines, so you can have a Bot send you a performance recap every Monday. Nothing goes live on its own: every change is saved as a ",[99,2366,1799],{},[114,2368,443],{"id":442},[95,2370,2371,2374,2375,2379,2380,2382],{},[99,2372,2373],{},"You connected the wrong AdKit account.","\nThe sign-in step uses whoever is already logged in to AdKit in that browser. If you use several browsers or AdKit accounts, log in to the right one at ",[322,2376,2378],{"href":491,"rel":2377},[326],"app.adkit.so"," first. Then remove AdKit under ",[99,2381,2302],{}," and add it again.",[95,2384,2385,2388,2389,2391],{},[99,2386,2387],{},"AdKit is added but the Bot doesn't use it.","\nType ",[269,2390,2347],{}," and attach AdKit to the task, or name it in your message (\"use the AdKit connector\"). Long chats sometimes hold on to a broken session, so try a new chat too.",[95,2393,2394,1906,2396,2399],{},[99,2395,1905],{},[322,2397,1024],{"href":1022,"rel":2398},[326],", remove AdKit in Grok Bot, and add it again.",[95,2401,648,2402,494],{},[322,2403,493],{"href":491,"rel":2404},[326],{"title":267,"searchDepth":496,"depth":496,"links":2406},[2407,2408,2409,2410],{"id":2290,"depth":496,"text":2291},{"id":2198,"depth":496,"text":2199},{"id":1763,"depth":496,"text":1764},{"id":442,"depth":496,"text":443},"Add AdKit to Grok Bot as a custom MCP server and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads in plain language.","\u002Fimages\u002Flogos\u002Fgrok.svg",{},"Grok Bot",[2416,2418],{"label":14,"to":15,"description":2417},"Give each brand its own project and tell Grok Bot which one to use.",{"label":668,"to":86,"description":669},{"title":53,"description":2411},"R4xoPL5j35nXMHH7YnClslYFcq7tByRw9f-LzJbOBhM",{"id":2422,"title":57,"body":2423,"description":2589,"extension":506,"icon":2590,"iconInvert":510,"meta":2591,"navTitle":2592,"navigation":510,"path":58,"related":2593,"section":1938,"sectionOrder":1232,"seo":2597,"stem":59,"type":519,"updatedAt":2150,"wip":34,"__hash__":2598},"docs\u002Fdocs\u002Fclients\u002F3.chatgpt.md",{"type":92,"value":2424,"toc":2581},[2425,2431,2433,2436,2472,2476,2479,2523,2525,2528,2534,2536,2541,2543,2549,2559,2568,2576],[95,2426,2427,2428,2430],{},"Add AdKit to ChatGPT as an app, then manage ",[99,2429,1548],{}," ads from a normal conversation. One app covers every platform once your ad account is connected in AdKit.",[114,2432,2291],{"id":2290},[95,2434,2435],{},"AdKit is an approved app in the ChatGPT app directory, so installing it takes one click:",[275,2437,2438,2450,2466],{},[278,2439,2440,2443,2444,2449],{},[99,2441,2442],{},"Open the AdKit app page."," Go to ",[322,2445,2448],{"href":2446,"rel":2447},"https:\u002F\u002Fchatgpt.com\u002Fplugins\u002Fplugin_asdk_app_6a1e848decdc8191a4974b315c51661f",[326],"AdKit on ChatGPT"," and log in to ChatGPT if you are not already.",[278,2451,2452,289,2455,2458,2459,2461,2462,2465],{},[99,2453,2454],{},"Install it.",[99,2456,2457],{},"Install plugin"," (or ",[99,2460,1605],{},"), review what AdKit can access, and pick ",[99,2463,2464],{},"Sign in with AdKit"," to link your account.",[278,2467,2468,2471],{},[99,2469,2470],{},"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\".",[1666,2473,2475],{"id":2474},"manual-setup","Manual setup",[95,2477,2478],{},"Use this if the one-click install is not available to you, for example when a workspace admin restricts app installs:",[275,2480,2481,2500,2513],{},[278,2482,2483,2443,2486,2491,2492,2495,2496,2499],{},[99,2484,2485],{},"Open Apps.",[322,2487,2490],{"href":2488,"rel":2489},"https:\u002F\u002Fchatgpt.com\u002F#settings\u002FConnectors",[326],"Settings → Apps"," in ChatGPT. If you don't see ",[99,2493,2494],{},"New App",", turn on ",[99,2497,2498],{},"Developer mode"," first, or ask your workspace admin to turn it on.",[278,2501,2502,289,2505,2507,2508],{},[99,2503,2504],{},"Create a new app.",[99,2506,2494],{}," and paste this address:",[261,2509,2511],{"className":2510,"code":1683,"language":266,"meta":267},[264],[269,2512,1683],{"__ignoreMap":267},[278,2514,2515,2518,2519,2522],{},[99,2516,2517],{},"Finish setup."," Set authentication to ",[99,2520,2521],{},"OAuth",", review the warning, and create the app. If ChatGPT opens a browser window, sign in to AdKit to finish.",[114,2524,2199],{"id":2198},[95,2526,2527],{},"Send this in a new chat. It confirms ChatGPT can actually use AdKit, not just see the app:",[261,2529,2532],{"className":2530,"code":2531,"language":266,"meta":267},[264],"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",[269,2533,2531],{"__ignoreMap":267},[114,2535,1764],{"id":1763},[95,2537,2538,2539,1800],{},"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 ",[99,2540,1799],{},[114,2542,443],{"id":442},[95,2544,2545,2548],{},[99,2546,2547],{},"AdKit is installed but ChatGPT doesn't use it.","\nApps are enabled per chat. Add AdKit from the tools or apps menu, or start your prompt with \"AdKit\", then retry in a new conversation.",[95,2550,2551,2554,2555,2558],{},[99,2552,2553],{},"Sign-in finished but nothing is connected.","\nSome flows show two screens: a sign-in first, then a separate ",[99,2556,2557],{},"Authorize"," button. If the window was closed after the first screen, AdKit never got access. Run the sign-in again and complete both steps.",[95,2560,2561,2564,2565,2567],{},[99,2562,2563],{},"The app is stuck half-installed or tools keep failing.","\nRemove the AdKit app under ",[99,2566,2490],{},", add it again, then start a new chat. This is the reliable fix when the app shows up but calls fail.",[95,2569,2570,1906,2572,2575],{},[99,2571,1905],{},[322,2573,1024],{"href":1022,"rel":2574},[326],", remove the app in ChatGPT, and run the setup above again.",[95,2577,648,2578,494],{},[322,2579,493],{"href":491,"rel":2580},[326],{"title":267,"searchDepth":496,"depth":496,"links":2582},[2583,2586,2587,2588],{"id":2290,"depth":496,"text":2291,"children":2584},[2585],{"id":2474,"depth":517,"text":2475},{"id":2198,"depth":496,"text":2199},{"id":1763,"depth":496,"text":1764},{"id":442,"depth":496,"text":443},"Add AdKit to ChatGPT as an app and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads in plain language.","\u002Fimages\u002Flogos\u002Fopenai.png",{},"ChatGPT",[2594,2596],{"label":14,"to":15,"description":2595},"Give each brand its own project and tell ChatGPT which one to use.",{"label":668,"to":86,"description":669},{"title":57,"description":2589},"J-J152zMLW5HijsK6eEQWTGqTQI4vwyWkNbT0CiFVRg",{"id":2600,"title":61,"body":2601,"description":2732,"extension":506,"icon":2733,"iconInvert":34,"meta":2734,"navTitle":2735,"navigation":510,"path":62,"related":2736,"section":1938,"sectionOrder":1232,"seo":2740,"stem":63,"type":519,"updatedAt":2150,"wip":34,"__hash__":2741},"docs\u002Fdocs\u002Fclients\u002F4.perplexity.md",{"type":92,"value":2602,"toc":2726},[2603,2609,2611,2673,2675,2678,2684,2686,2691,2693,2699,2707,2713,2721],[95,2604,2605,2606,2608],{},"Add AdKit to Perplexity as a custom connector, then manage ",[99,2607,1548],{}," ads from a normal conversation. One connector covers every platform once your ad account is connected in AdKit.",[114,2610,2291],{"id":2290},[275,2612,2613,2626,2668],{},[278,2614,2615,2443,2618,2621,2622,2625],{},[99,2616,2617],{},"Open Connectors.",[99,2619,2620],{},"Account settings → Connectors"," in Perplexity. If you don't see ",[99,2623,2624],{},"+ Custom connector",", remote connectors aren't turned on for your account or workspace yet.",[278,2627,2628,289,2631,2633,2634,2637,2638,2663],{},[99,2629,2630],{},"Add a remote connector.",[99,2632,2624],{},", choose ",[99,2635,2636],{},"Remote",", then fill in:",[401,2639,2640,2646,2652,2658],{},[278,2641,2642,2645],{},[99,2643,2644],{},"Name:"," AdKit",[278,2647,2648,2651],{},[99,2649,2650],{},"Authentication:"," OAuth",[278,2653,2654,2657],{},[99,2655,2656],{},"Transport:"," Streamable HTTP",[278,2659,2660],{},[99,2661,2662],{},"URL:",[261,2664,2666],{"className":2665,"code":1683,"language":266,"meta":267},[264],[269,2667,1683],{"__ignoreMap":267},[278,2669,2670,2672],{},[99,2671,1618],{}," Add the connector, then click the AdKit card to sign in to AdKit and enable it.",[114,2674,2199],{"id":2198},[95,2676,2677],{},"Send this in a new chat. It confirms Perplexity can actually use AdKit:",[261,2679,2682],{"className":2680,"code":2681,"language":266,"meta":267},[264],"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",[269,2683,2681],{"__ignoreMap":267},[114,2685,1764],{"id":1763},[95,2687,2688,2689,1800],{},"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 ",[99,2690,1799],{},[114,2692,443],{"id":442},[95,2694,2695,2698],{},[99,2696,2697],{},"There is no \"+ Custom connector\" option.","\nRemote connectors aren't enabled for your Perplexity account or workspace yet. Ask your workspace admin, or check that your plan includes custom connectors.",[95,2700,2701,2374,2703,2706],{},[99,2702,2373],{},[322,2704,2378],{"href":491,"rel":2705},[326]," first. Then redo the sign-in from the connector card.",[95,2708,2709,2712],{},[99,2710,2711],{},"The connector is on but Perplexity stops using it.","\nLong threads sometimes hold on to a broken session. Start a new thread and try again.",[95,2714,2715,1906,2717,2720],{},[99,2716,1905],{},[322,2718,1024],{"href":1022,"rel":2719},[326],", remove the connector in Perplexity, and add it again.",[95,2722,648,2723,494],{},[322,2724,493],{"href":491,"rel":2725},[326],{"title":267,"searchDepth":496,"depth":496,"links":2727},[2728,2729,2730,2731],{"id":2290,"depth":496,"text":2291},{"id":2198,"depth":496,"text":2199},{"id":1763,"depth":496,"text":1764},{"id":442,"depth":496,"text":443},"Add AdKit to Perplexity as a custom connector and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads in plain language.","\u002Fimages\u002Flogos\u002Fperplexity.png",{},"Perplexity",[2737,2739],{"label":14,"to":15,"description":2738},"Give each brand its own project and tell Perplexity which one to use.",{"label":668,"to":86,"description":669},{"title":61,"description":2732},"DMwq7bXKt1nLQt1cpyN3xpEX4q7OO3gsYG2qwnIxr2E",{"id":2743,"title":65,"body":2744,"description":2872,"extension":506,"icon":2873,"iconInvert":34,"meta":2874,"navTitle":2875,"navigation":510,"path":66,"related":2876,"section":1938,"sectionOrder":1232,"seo":2880,"stem":67,"type":519,"updatedAt":2150,"wip":34,"__hash__":2881},"docs\u002Fdocs\u002Fclients\u002F5.claude-code.md",{"type":92,"value":2745,"toc":2866},[2746,2752,2756,2759,2765,2769,2809,2811,2816,2818,2828,2837,2847,2858,2863],[95,2747,2748,2749,2751],{},"Connect Claude Code to AdKit and manage ",[99,2750,1548],{}," ads from the terminal. Pick the CLI path (recommended) or the MCP server.",[114,2753,2755],{"id":2754},"recommended-let-claude-code-set-it-up","Recommended: let Claude Code set it up",[95,2757,2758],{},"Paste this into Claude Code. It installs the AdKit CLI and connects it for you:",[261,2760,2763],{"className":2761,"code":2762,"language":266,"meta":267},[264],"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",[269,2764,2762],{"__ignoreMap":267},[114,2766,2768],{"id":2767},"alternative-mcp-server","Alternative: MCP server",[275,2770,2771,2800],{},[278,2772,2773,2774],{},"Add the server in Claude Code:",[261,2775,2777],{"className":1730,"code":2776,"language":1732,"meta":267,"style":267},"claude mcp add --transport http adkit https:\u002F\u002Fmcp.adkit.so\n",[269,2778,2779],{"__ignoreMap":267},[1229,2780,2781,2783,2786,2788,2791,2794,2797],{"class":1231,"line":1232},[1229,2782,1153],{"class":1261},[1229,2784,2785],{"class":1290}," mcp",[1229,2787,1745],{"class":1290},[1229,2789,2790],{"class":1290}," --transport",[1229,2792,2793],{"class":1290}," http",[1229,2795,2796],{"class":1290}," adkit",[1229,2798,2799],{"class":1290}," https:\u002F\u002Fmcp.adkit.so\n",[278,2801,2802,2803],{},"Then paste this to confirm it works:",[261,2804,2807],{"className":2805,"code":2806,"language":266,"meta":267},[264],"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",[269,2808,2806],{"__ignoreMap":267},[114,2810,1764],{"id":1763},[95,2812,2813,2814,1800],{},"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 ",[99,2815,1799],{},[114,2817,443],{"id":442},[95,2819,2820,2823,2824,2827],{},[99,2821,2822],{},"AdKit is not in the plugin or MCP directory.","\nCorrect, it isn't listed there yet. Use the setup prompt above or the ",[269,2825,2826],{},"claude mcp add"," command instead.",[95,2829,2830,2074,2834,2836],{},[99,2831,2832,328],{},[269,2833,2073],{},[269,2835,2077],{}," and try again.",[95,2838,2839,2842,2843,2846],{},[99,2840,2841],{},"The MCP server is added but tools fail or ask for auth.","\nRun ",[269,2844,2845],{},"\u002Fmcp"," in Claude Code, complete the browser sign-in for adkit, then retry in a fresh session.",[95,2848,2849,2852,2853,2855,2856,328],{},[99,2850,2851],{},"It worked before and stopped (MCP path).","\nThe MCP authorization expires after 90 days without use. Run ",[269,2854,2845],{}," and re-authenticate. CLI connections use an API key that doesn't expire; check them with ",[269,2857,2081],{},[95,2859,648,2860,494],{},[322,2861,493],{"href":491,"rel":2862},[326],[1524,2864,2865],{},"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":267,"searchDepth":496,"depth":496,"links":2867},[2868,2869,2870,2871],{"id":2754,"depth":496,"text":2755},{"id":2767,"depth":496,"text":2768},{"id":1763,"depth":496,"text":1764},{"id":442,"depth":496,"text":443},"Connect Claude Code to AdKit through the CLI or the MCP server and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads.","\u002Fimages\u002Flogos\u002Fclaude-code.svg",{},"Claude Code",[2877,2879],{"label":14,"to":15,"description":2878},"Give each brand its own project and tell Claude Code which one to use.",{"label":668,"to":86,"description":669},{"title":65,"description":2872},"AnHlU8u-QhBHL_JtW3Z5gqX9iTmWkaC5wTlYOVC4W1E",{"id":2883,"title":69,"body":2884,"description":3006,"extension":506,"icon":3007,"iconInvert":34,"meta":3008,"navTitle":3009,"navigation":510,"path":70,"related":3010,"section":1938,"sectionOrder":1232,"seo":3014,"stem":71,"type":519,"updatedAt":2150,"wip":34,"__hash__":3015},"docs\u002Fdocs\u002Fclients\u002F6.codex.md",{"type":92,"value":2885,"toc":3000},[2886,2891,2895,2898,2904,2906,2960,2962,2967,2969,2978,2984,2993,2998],[95,2887,2888,2889,2751],{},"Connect Codex to AdKit and manage ",[99,2890,1548],{},[114,2892,2894],{"id":2893},"recommended-let-codex-set-it-up","Recommended: let Codex set it up",[95,2896,2897],{},"Paste this into Codex. It installs the AdKit CLI and connects it for you:",[261,2899,2902],{"className":2900,"code":2901,"language":266,"meta":267},[264],"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",[269,2903,2901],{"__ignoreMap":267},[114,2905,2768],{"id":2767},[275,2907,2908,2932,2952],{},[278,2909,2910,2911],{},"Add the server in Codex:",[261,2912,2914],{"className":1730,"code":2913,"language":1732,"meta":267,"style":267},"codex mcp add adkit --url https:\u002F\u002Fmcp.adkit.so\n",[269,2915,2916],{"__ignoreMap":267},[1229,2917,2918,2921,2923,2925,2927,2930],{"class":1231,"line":1232},[1229,2919,2920],{"class":1261},"codex",[1229,2922,2785],{"class":1290},[1229,2924,1745],{"class":1290},[1229,2926,2796],{"class":1290},[1229,2928,2929],{"class":1290}," --url",[1229,2931,2799],{"class":1290},[278,2933,2934,2935],{},"If Codex asks you to sign in:",[261,2936,2938],{"className":1730,"code":2937,"language":1732,"meta":267,"style":267},"codex mcp login adkit\n",[269,2939,2940],{"__ignoreMap":267},[1229,2941,2942,2944,2946,2949],{"class":1231,"line":1232},[1229,2943,2920],{"class":1261},[1229,2945,2785],{"class":1290},[1229,2947,2948],{"class":1290}," login",[1229,2950,2951],{"class":1290}," adkit\n",[278,2953,2802,2954],{},[261,2955,2958],{"className":2956,"code":2957,"language":266,"meta":267},[264],"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",[269,2959,2957],{"__ignoreMap":267},[114,2961,1764],{"id":1763},[95,2963,2964,2965,1800],{},"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 ",[99,2966,1799],{},[114,2968,443],{"id":442},[95,2970,2971,2842,2974,2977],{},[99,2972,2973],{},"Codex asks to sign in, or tool calls fail with an auth error.",[269,2975,2976],{},"codex mcp login adkit"," and finish the browser sign-in.",[95,2979,2980,2983],{},[99,2981,2982],{},"The server is added but tools don't show up.","\nRestart the Codex session so it reloads the server's tool list.",[95,2985,2986,2852,2988,2990,2991,328],{},[99,2987,2851],{},[269,2989,2976],{}," again. CLI connections use an API key that doesn't expire; check them with ",[269,2992,2081],{},[95,2994,648,2995,494],{},[322,2996,493],{"href":491,"rel":2997},[326],[1524,2999,2865],{},{"title":267,"searchDepth":496,"depth":496,"links":3001},[3002,3003,3004,3005],{"id":2893,"depth":496,"text":2894},{"id":2767,"depth":496,"text":2768},{"id":1763,"depth":496,"text":1764},{"id":442,"depth":496,"text":443},"Connect Codex to AdKit through the CLI or the MCP server and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads.","\u002Fimages\u002Flogos\u002Fcodex.svg",{},"Codex",[3011,3013],{"label":14,"to":15,"description":3012},"Give each brand its own project and tell Codex which one to use.",{"label":668,"to":86,"description":669},{"title":69,"description":3006},"sOYD7wGV19xjDAi14qxMbFrIGf3OekdsnmeMgDO2RVM",{"id":3017,"title":73,"body":3018,"description":3190,"extension":506,"icon":3191,"iconInvert":510,"meta":3192,"navTitle":3193,"navigation":510,"path":74,"related":3194,"section":1938,"sectionOrder":1232,"seo":3198,"stem":75,"type":519,"updatedAt":2150,"wip":34,"__hash__":3199},"docs\u002Fdocs\u002Fclients\u002F7.cursor.md",{"type":92,"value":3019,"toc":3183},[3020,3026,3030,3033,3039,3043,3053,3122,3124,3127,3133,3135,3140,3142,3152,3161,3167,3176,3181],[95,3021,3022,3023,3025],{},"Connect Cursor to AdKit and manage ",[99,3024,1548],{}," ads while you work. The fastest way is the MCP server.",[114,3027,3029],{"id":3028},"recommended-one-click-install","Recommended: one-click install",[95,3031,3032],{},"Open this link to install AdKit straight into Cursor:",[95,3034,3035],{},[322,3036,3038],{"href":3037},"cursor:\u002F\u002Fanysphere.cursor-deeplink\u002Fmcp\u002Finstall?name=adkit&config=eyJ1cmwiOiJodHRwczovL21jcC5hZGtpdC5zbyJ9","Install with Cursor",[114,3040,3042],{"id":3041},"manual-install","Manual install",[95,3044,1986,3045,3048,3049,3052],{},[269,3046,3047],{},".cursor\u002Fmcp.json"," in your project, or ",[269,3050,3051],{},"~\u002F.cursor\u002Fmcp.json"," for every project:",[261,3054,3056],{"className":1223,"code":3055,"language":1225,"meta":267,"style":267},"{\n  \"mcpServers\": {\n    \"adkit\": {\n      \"url\": \"https:\u002F\u002Fmcp.adkit.so\"\n    }\n  }\n}\n",[269,3057,3058,3062,3076,3089,3109,3113,3118],{"__ignoreMap":267},[1229,3059,3060],{"class":1231,"line":1232},[1229,3061,1236],{"class":1235},[1229,3063,3064,3067,3070,3072,3074],{"class":1231,"line":496},[1229,3065,3066],{"class":1235},"  \"",[1229,3068,3069],{"class":1244},"mcpServers",[1229,3071,1248],{"class":1235},[1229,3073,1167],{"class":1235},[1229,3075,1253],{"class":1235},[1229,3077,3078,3080,3083,3085,3087],{"class":1231,"line":517},[1229,3079,1241],{"class":1235},[1229,3081,3082],{"class":1261},"adkit",[1229,3084,1248],{"class":1235},[1229,3086,1167],{"class":1235},[1229,3088,1253],{"class":1235},[1229,3090,3091,3094,3097,3099,3101,3104,3106],{"class":1231,"line":1271},[1229,3092,3093],{"class":1235},"      \"",[1229,3095,3096],{"class":1277},"url",[1229,3098,1248],{"class":1235},[1229,3100,1167],{"class":1235},[1229,3102,3103],{"class":1235}," \"",[1229,3105,2028],{"class":1290},[1229,3107,3108],{"class":1235},"\"\n",[1229,3110,3111],{"class":1231,"line":1298},[1229,3112,1307],{"class":1235},[1229,3114,3115],{"class":1231,"line":1304},[1229,3116,3117],{"class":1235},"  }\n",[1229,3119,3120],{"class":1231,"line":1310},[1229,3121,1313],{"class":1235},[114,3123,2199],{"id":2198},[95,3125,3126],{},"Paste this in Cursor's chat. It confirms Cursor can actually use AdKit:",[261,3128,3131],{"className":3129,"code":3130,"language":266,"meta":267},[264],"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",[269,3132,3130],{"__ignoreMap":267},[114,3134,1764],{"id":1763},[95,3136,3137,3138,1800],{},"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 ",[99,3139,1799],{},[114,3141,443],{"id":442},[95,3143,3144,3147,3148,3151],{},[99,3145,3146],{},"The one-click link does nothing.","\nYour browser has to allow opening ",[269,3149,3150],{},"cursor:\u002F\u002F"," links. If nothing happens, use the manual install above instead.",[95,3153,3154,2094,3157,3160],{},[99,3155,3156],{},"The server shows an error or no tools in Cursor's MCP settings.",[269,3158,3159],{},"mcp.json"," matches the block above exactly, save, and restart Cursor. A typo in the URL or a stray comma is the usual cause.",[95,3162,3163,3166],{},[99,3164,3165],{},"Cursor never asked you to sign in.","\nRemove the adkit server, add it again, and complete the browser sign-in when it appears.",[95,3168,3169,3171,3172,3175],{},[99,3170,1905],{},"\nThe authorization expires after 90 days without use. Sign in again when Cursor prompts, or revoke the old connection under ",[322,3173,1024],{"href":1022,"rel":3174},[326]," and reconnect.",[95,3177,648,3178,494],{},[322,3179,493],{"href":491,"rel":3180},[326],[1524,3182,1526],{},{"title":267,"searchDepth":496,"depth":496,"links":3184},[3185,3186,3187,3188,3189],{"id":3028,"depth":496,"text":3029},{"id":3041,"depth":496,"text":3042},{"id":2198,"depth":496,"text":2199},{"id":1763,"depth":496,"text":1764},{"id":442,"depth":496,"text":443},"Connect Cursor to AdKit through the MCP server and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads.","\u002Fimages\u002Flogos\u002Fcursor.png",{},"Cursor",[3195,3197],{"label":14,"to":15,"description":3196},"Give each brand its own project and tell Cursor which one to use.",{"label":668,"to":86,"description":669},{"title":73,"description":3190},"e7XHZ0HiGSkLVZnWi0QbPr5tiaPeY901t1AuY8fS5AQ",{"id":3201,"title":77,"body":3202,"description":3336,"extension":506,"icon":3337,"iconInvert":34,"meta":3338,"navTitle":3339,"navigation":510,"path":78,"related":3340,"section":1938,"sectionOrder":1232,"seo":3344,"stem":79,"type":519,"updatedAt":2150,"wip":34,"__hash__":3345},"docs\u002Fdocs\u002Fclients\u002F8.gemini.md",{"type":92,"value":3203,"toc":3330},[3204,3209,3213,3216,3222,3224,3272,3274,3279,3281,3291,3305,3314,3323,3328],[95,3205,3206,3207,2751],{},"Connect Gemini CLI to AdKit and manage ",[99,3208,1548],{},[114,3210,3212],{"id":3211},"recommended-let-gemini-set-it-up","Recommended: let Gemini set it up",[95,3214,3215],{},"Paste this into Gemini CLI. It installs the AdKit CLI and connects it for you:",[261,3217,3220],{"className":3218,"code":3219,"language":266,"meta":267},[264],"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",[269,3221,3219],{"__ignoreMap":267},[114,3223,2768],{"id":2767},[275,3225,3226,3251,3263],{},[278,3227,3228,3229],{},"Add the server in Gemini CLI:",[261,3230,3232],{"className":1730,"code":3231,"language":1732,"meta":267,"style":267},"gemini mcp add --transport http adkit https:\u002F\u002Fmcp.adkit.so\n",[269,3233,3234],{"__ignoreMap":267},[1229,3235,3236,3239,3241,3243,3245,3247,3249],{"class":1231,"line":1232},[1229,3237,3238],{"class":1261},"gemini",[1229,3240,2785],{"class":1290},[1229,3242,1745],{"class":1290},[1229,3244,2790],{"class":1290},[1229,3246,2793],{"class":1290},[1229,3248,2796],{"class":1290},[1229,3250,2799],{"class":1290},[278,3252,3253,3254,3260,3262],{},"Authenticate the server inside Gemini CLI:",[261,3255,3258],{"className":3256,"code":3257,"language":266,"meta":267},[264],"\u002Fmcp auth adkit\n",[269,3259,3257],{"__ignoreMap":267},[1628,3261],{},"Finish signing in through the browser before continuing.",[278,3264,3265,3266],{},"Paste this to confirm it works:",[261,3267,3270],{"className":3268,"code":3269,"language":266,"meta":267},[264],"Use the AdKit MCP server you just added and run the AdKit checkin tool with agentId: \"gemini\".\nTell me if AdKit is connected and ready. If not, tell me what failed.\n",[269,3271,3269],{"__ignoreMap":267},[114,3273,1764],{"id":1763},[95,3275,3276,3277,1800],{},"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 ",[99,3278,1799],{},[114,3280,443],{"id":442},[95,3282,3283,3286,3287,3290],{},[99,3284,3285],{},"Zero AdKit tools, or every call fails with an auth error.","\nThe step people skip: run ",[269,3288,3289],{},"\u002Fmcp auth adkit"," and finish the browser sign-in. Adding the server alone is not enough.",[95,3292,3293,3298,3299,3302,3303,328],{},[99,3294,3295,3297],{},[269,3296,2845],{}," doesn't list adkit.","\nRe-run the ",[269,3300,3301],{},"gemini mcp add"," command above, then ",[269,3304,3289],{},[95,3306,3307,2074,3312,2836],{},[99,3308,3309,3311],{},[269,3310,2073],{}," (CLI path).",[269,3313,2077],{},[95,3315,3316,3318,3319,2990,3321,328],{},[99,3317,2851],{},"\nThe authorization expires after 90 days without use. Run ",[269,3320,3289],{},[269,3322,2081],{},[95,3324,648,3325,494],{},[322,3326,493],{"href":491,"rel":3327},[326],[1524,3329,2865],{},{"title":267,"searchDepth":496,"depth":496,"links":3331},[3332,3333,3334,3335],{"id":3211,"depth":496,"text":3212},{"id":2767,"depth":496,"text":2768},{"id":1763,"depth":496,"text":1764},{"id":442,"depth":496,"text":443},"Connect Gemini CLI to AdKit through the CLI or the MCP server and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads.","\u002Fimages\u002Flogos\u002Fgemini.png",{},"Gemini CLI",[3341,3343],{"label":14,"to":15,"description":3342},"Give each brand its own project and tell Gemini which one to use.",{"label":668,"to":86,"description":669},{"title":77,"description":3336},"ijz8-NBiBJL8aeekckGPdFozWMKSeZFu640JHdqELBc",{"id":3347,"title":81,"body":3348,"description":3504,"extension":506,"icon":3505,"iconInvert":34,"meta":3506,"navTitle":3507,"navigation":510,"path":82,"related":3508,"section":1938,"sectionOrder":1232,"seo":3512,"stem":83,"type":519,"updatedAt":2150,"wip":34,"__hash__":3513},"docs\u002Fdocs\u002Fclients\u002F9.openclaw.md",{"type":92,"value":3349,"toc":3498},[3350,3356,3360,3363,3369,3372,3374,3377,3438,3441,3443,3454,3459,3476,3484,3486,3491,3496],[95,3351,3352,3353,3355],{},"Connect OpenClaw to AdKit and manage ",[99,3354,1548],{}," 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.",[114,3357,3359],{"id":3358},"recommended-let-openclaw-set-it-up","Recommended: let OpenClaw set it up",[95,3361,3362],{},"Give OpenClaw this prompt:",[261,3364,3367],{"className":3365,"code":3366,"language":266,"meta":267},[264],"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",[269,3368,3366],{"__ignoreMap":267},[95,3370,3371],{},"Open the URL OpenClaw sends you. After you approve access, the waiting CLI process stores the connection where OpenClaw runs.",[114,3373,1970],{"id":1969},[95,3375,3376],{},"Use this when OpenClaw cannot run the CLI.",[275,3378,3379,3389,3394,3423,3432],{},[278,3380,2054,3381,3384,3385,3388],{},[269,3382,3383],{},"openclaw --version",". Update OpenClaw if it is older than ",[99,3386,3387],{},"2026.5.12","; older versions do not include the live MCP verification commands below.",[278,3390,1978,3391,1983],{},[322,3392,1024],{"href":1981,"rel":3393},[326],[278,3395,3396,3397,1167,3399],{},"Add AdKit to OpenClaw, replacing ",[269,3398,1993],{},[261,3400,3402],{"className":1730,"code":3401,"language":1732,"meta":267,"style":267},"openclaw mcp set adkit '{\"url\":\"https:\u002F\u002Fmcp.adkit.so\",\"transport\":\"streamable-http\",\"headers\":{\"Authorization\":\"Bearer adk_your_key\"}}'\n",[269,3403,3404],{"__ignoreMap":267},[1229,3405,3406,3409,3411,3414,3416,3418,3421],{"class":1231,"line":1232},[1229,3407,3408],{"class":1261},"openclaw",[1229,3410,2785],{"class":1290},[1229,3412,3413],{"class":1290}," set",[1229,3415,2796],{"class":1290},[1229,3417,1754],{"class":1235},[1229,3419,3420],{"class":1290},"{\"url\":\"https:\u002F\u002Fmcp.adkit.so\",\"transport\":\"streamable-http\",\"headers\":{\"Authorization\":\"Bearer adk_your_key\"}}",[1229,3422,1760],{"class":1235},[278,3424,2054,3425,3428,3429,328],{},[269,3426,3427],{},"openclaw mcp reload",", followed by ",[269,3430,3431],{},"openclaw mcp doctor adkit --probe",[278,3433,3434,3435,328],{},"Ask OpenClaw to run the AdKit check-in tool with ",[269,3436,3437],{},"agentId: \"openclaw\"",[95,3439,3440],{},"Keep the key in OpenClaw's MCP configuration, not in an agent conversation.",[114,3442,443],{"id":442},[95,3444,3445,2074,3449,2078,3451,3453],{},[99,3446,3447,328],{},[269,3448,2073],{},[269,3450,2077],{},[269,3452,2081],{}," again. On a server, make sure it is installed in the same environment OpenClaw runs in.",[95,3455,3456,3458],{},[99,3457,2087],{},"\nComplete the sign-in URL OpenClaw sent you. The remote command must remain running until browser authorization finishes.",[95,3460,3461,3298,3463,3466,3467,3470,3471,3473,3474,328],{},[99,3462,2093],{},[269,3464,3465],{},"openclaw mcp set adkit ..."," command above and check the header is exactly ",[269,3468,3469],{},"Authorization: Bearer adk_your_key"," (capital B, one space). Then run ",[269,3472,3427],{}," and ",[269,3475,3431],{},[95,3477,3478,2112,3480,3483],{},[99,3479,2111],{},[322,3481,1024],{"href":1022,"rel":3482},[326]," in AdKit to revoke a key and create a new one, then update the MCP configuration. API keys don't expire on their own.",[114,3485,1764],{"id":1763},[95,3487,3488,3489,1800],{},"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 ",[99,3490,1799],{},[95,3492,648,3493,494],{},[322,3494,493],{"href":491,"rel":3495},[326],[1524,3497,1918],{},{"title":267,"searchDepth":496,"depth":496,"links":3499},[3500,3501,3502,3503],{"id":3358,"depth":496,"text":3359},{"id":1969,"depth":496,"text":1970},{"id":442,"depth":496,"text":443},{"id":1763,"depth":496,"text":1764},"Connect OpenClaw to AdKit with the CLI or an API key and manage Meta, Google, TikTok, LinkedIn, Reddit, X, Microsoft, and ChatGPT Ads ads, whether OpenClaw runs locally or on a server.","\u002Fimages\u002Flogos\u002Fopenclaw.png",{},"OpenClaw",[3509,3511],{"label":14,"to":15,"description":3510},"Give each brand its own project and tell OpenClaw which one to use.",{"label":668,"to":86,"description":669},{"title":81,"description":3504},"HFoCpYugENKbsDyIP20Ev8w0KUXdSK7IJo49SIOz1ys",{"id":3515,"title":85,"body":3516,"description":3604,"extension":506,"icon":3605,"iconInvert":34,"meta":3606,"navTitle":3607,"navigation":510,"path":86,"related":3608,"section":3615,"sectionOrder":3616,"seo":3617,"stem":87,"type":3618,"updatedAt":3619,"wip":34,"__hash__":3620},"docs\u002Fdocs\u002Fgetting-started.md",{"type":92,"value":3517,"toc":3598},[3518,3521,3525,3528],[95,3519,3520],{},"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.",[114,3522,3524],{"id":3523},"_1-connect-your-agent","1. Connect your agent",[95,3526,3527],{},"Pick your client and follow its setup guide:",[3529,3530,3531,3534,3538,3541,3547,3550,3554,3557,3571,3577,3581],"connect-agents",{},[95,3532,3533],{},"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.",[114,3535,3537],{"id":3536},"_2-verify-the-connection","2. Verify the connection",[95,3539,3540],{},"Once connected, have the agent run the AdKit check-in and list what it can see. Paste this:",[261,3542,3545],{"className":3543,"code":3544,"language":266,"meta":267},[264],"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",[269,3546,3544],{"__ignoreMap":267},[95,3548,3549],{},"If it reports your connected platforms and accounts, you are ready. If not, it will tell you what is missing.",[114,3551,3553],{"id":3552},"_3-start-managing-ads","3. Start managing ads",[95,3555,3556],{},"With AdKit connected, ask your agent to:",[401,3558,3559,3562,3565,3568],{},[278,3560,3561],{},"Pull performance for a campaign or account",[278,3563,3564],{},"Draft a new campaign, ad set, or ad",[278,3566,3567],{},"Generate ad creatives from a brief",[278,3569,3570],{},"Research competitor ads in the ad library",[95,3572,3573,3574,3576],{},"Everything you create starts as a ",[99,3575,1799],{},". Nothing goes live until you review and approve it.",[114,3578,3580],{"id":3579},"next-steps","Next steps",[401,3582,3583,3590],{},[278,3584,3585,3589],{},[99,3586,3587],{},[322,3588,1536],{"href":32}," when your agent has an image or video to turn into a Meta or Google ad asset.",[278,3591,3592,3597],{},[99,3593,3594],{},[322,3595,3596],{"href":15},"Connect multiple ad accounts"," when you run ads for more than one brand or client.",{"title":267,"searchDepth":496,"depth":496,"links":3599},[3600,3601,3602,3603],{"id":3523,"depth":496,"text":3524},{"id":3536,"depth":496,"text":3537},{"id":3552,"depth":496,"text":3553},{"id":3579,"depth":496,"text":3580},"Connect an AI agent to AdKit, verify the connection, and start managing your ads from a conversation.","fa6-solid:book-open",{},"Getting started",[3609,3611,3614],{"label":1938,"to":42,"description":3610},"Pick your AI client and connect it to AdKit.",{"label":3612,"to":32,"description":3613},"Upload creative media with an AI agent","Move local images and videos from an agent session into Meta or Google Ads.",{"label":14,"to":15,"description":513},"Start here",0,{"title":85,"description":3604},"overview","2026-06-08","0rtTKrV2pSuyrevTJNJMl6MIjZpo0OGxV6BRhu13s_w",1789743059617]