EMAX Studio Blog
Meta Ads CLI कैसे सेट करें: 2026 के लिए स्टेप-बाय-स्टेप ट्यूटोरियल
Manuel Mrosek · 2026-06-16 · — व्यू
Meta Ads CLI कैसे सेट करें: 2026 के लिए स्टेप-बाय-स्टेप ट्यूटोरियल
Meta Ads CLI सेट करने के लिए, आप Business Manager में एक System User बनाते हैं, ads_management, ads_read, और business_management permissions के साथ एक never-expiring token जनरेट करते हैं, अपने Ad Account और Page को assets के रूप में लिंक करते हैं, और फिर CLI को उस token पर एक config file के माध्यम से पॉइंट करते हैं। पूरी प्रक्रिया में लगभग 45 मिनट लगते हैं अगर आपके पास Business Manager, एक Facebook Page, और आपके Ad Account पर verified payment method का admin access है।
यह हमारे AI agents के साथ Facebook Ads चलाने के ओवरव्यू का डीप-डाइव साथी है। वह पीस बताता है कि क्यों CLI-driven सेटअप किसी के लिए भी Ads Manager क्लिक से बेहतर है जो मुट्ठी भर से अधिक कैंपेन चला रहा है। यह वाला hands-on गाइड है: हर स्टेप, हर error message जो हमने अपना खुद का स्टैक बनाते समय हिट किया, और अंत में एक असली पहली-कैंपेन वॉकथ्रू।
Meta Ads CLI वास्तव में क्या करता है
"Meta Ads CLI" कोई एक official binary नहीं है। यह एक पतली server-side automation layer है जो आपके scripts और Meta Marketing API के बीच बैठती है। आप Python या Node code लिखते हैं, CLI authentication, request signing, और long-lived System User token को संभालता है, और आपके कैंपेन graph.facebook.com/v23.0/ के माध्यम से ऊपर जाते हैं बिना किसी के Ads Manager के माध्यम से क्लिक किए।
मुश्किल हिस्सा wrapper code नहीं है — वह सौ लाइनें हैं। मुश्किल हिस्सा Business Manager के अंदर 7-step सेटअप ritual है जो एक token produce करता है जिसे Meta वास्तव में production traffic के लिए स्वीकार करेगा। वह ritual OAuth refresh dance और token-expiry pain को हटा देता है जो हर browser-based automation को अंततः तोड़ देता है।
रिटर्न असली है। एक बार CLI स्टैक चल रहा है, आप 90 सेकंड से कम में 6 ad variants के साथ एक कैंपेन लॉन्च कर सकते हैं, सुबह 7:00 बजे cron के माध्यम से कल के performance को एक daily report में खींच सकते हैं, और underperforming ads को auto-pause कर सकते हैं — बिना कभी Ads Manager में login किए।
Prerequisites
शुरू करने से पहले, सुनिश्चित करें कि आपके पास ये चीज़ें हैं। इनमें से कोई भी skip करना आपको बाद में 2 घंटे की rabbit hole में भेज देता है।
आपको admin rights के साथ एक Meta Business Manager account चाहिए — personal Facebook accounts System User tokens के लिए काम नहीं करेंगे। आपको एक Facebook Page चाहिए जहां आप admin के रूप में listed हैं, सिर्फ editor नहीं। आपको उस Business Manager के अंदर एक Meta Ad Account चाहिए verified payment method के साथ और billing के लिए कम से कम एक देश approved हो। आपको जिस भी website पर traffic drive कर रहे हैं उसके लिए एक Pixel (या नई terminology में "Dataset") configured चाहिए। और आपको locally install किया हुआ Python 3.10+ या Node 18+ चाहिए, packages install करने की क्षमता के साथ।
अगर आपके पास अभी तक Pixel नहीं है, तो continue करने से पहले एक बनाएं। भले ही आप केवल Conversions API (CAPI) का उपयोग करने की योजना बना रहे हों — जैसे हम करते हैं — आपको अभी भी server-side events के लिए routing address के रूप में Pixel ID चाहिए।
7-Step सेटअप
ये steps sequential हैं। हर एक अगले को unlock करता है। आगे skip करना chain को ऐसे तरीकों से तोड़ता है जिन्हें debug करना मुश्किल है क्योंकि Meta के error messages अक्सर misleading होते हैं।
Step 1: एक Business Manager System User बनाएं
Business Settings → Users → System Users पर जाएं। "Add" क्लिक करें और एक नया System User बनाएं। नाम API के लिए मायने नहीं रखता लेकिन आपकी भविष्य की sanity के लिए मायने रखता है — इसे your-brand-agent जैसा कुछ नाम दें ताकि आप छह महीने बाद याद रख सकें कि यह क्या कर रहा है। Role "Admin" चुनें (न कि "Employee") क्योंकि admin rights के बिना System Users Custom Conversions या Pixel events manage नहीं कर सकते।
जब हमने अपना स्टैक बनाया, हमने emaxstudioagent बनाया। System User ID अपने आप assign हो जाती है (15-digit number)। इसे लिख लें।
Step 2: Marketing API Use Case के साथ एक Developer App बनाएं
developers.facebook.com → My Apps → Create App पर जाएं। Use case "Marketing API" चुनें अगर आप इसे dropdown में देखते हैं। अगर आप केवल "Other" देखते हैं, वह भी ठीक है — System User tokens दोनों तरह से काम करते हैं। German UI इसे "Werbeanzeigen mit Marketing API" label करता है जबकि English UI इसे केवल "Marketing API" या "Other" कहता है। दोनों identical tokens produce करते हैं।
App को Business type पर सेट करें, Consumer नहीं। Left sidebar से app में Marketing API product जोड़ें। App Development Mode में शुरू होता है। आपको असली ads के लिए System User token के काम करने से पहले इसे Live Mode में move करना होगा (नीचे इस पर अधिक)।
Live Mode में move करने के लिए, Meta को एक public privacy policy URL और एक app icon (1024×1024 PNG) चाहिए। दोनों non-negotiable हैं। App icon को polished होने की ज़रूरत नहीं है — एक placeholder काम करता है — लेकिन URL को वास्तव में एक privacy policy page पर resolve होना चाहिए। हम अपना /legal पर अपने main domain पर होस्ट करते हैं।
Step 3: एक Never-Expiring System User Token जनरेट करें
वापस Business Settings → System Users → [your System User] → "Generate New Token" क्लिक करें। Step 2 में अभी बनाया गया app चुनें। फिर permissions चुनें:
ads_management— campaigns बनाने, edit करने, और pause करने के लिए requiredads_read— insights और reporting data खींचने के लिए requiredbusiness_management— assets और custom conversions manage करने के लिए required
Expiration "Never" पर सेट करें। System User tokens एकमात्र Meta tokens हैं जो genuinely कभी expire नहीं होते — User Access Tokens 60 दिनों पर max out होते हैं, Page Tokens उस User Token पर निर्भर करते हैं जिनसे वे derive हुए थे। यही backend automation के लिए OAuth के बजाय System User का उपयोग करने का पूरा point है।
Token को तुरंत copy करें। Meta इसे एक बार दिखाता है। इसे एक secrets manager में या chmod 600 के साथ एक .env file में store करें। इसे कभी git पर commit न करें।
Step 4: Assets के रूप में Ad Account और Page को लिंक करें
System User exist करता है लेकिन उसके पास अभी तक किसी चीज़ का access नहीं है। आपको explicitly assets assign करने होंगे। Business Settings → System Users → [your System User] → "Add Assets" क्लिक करें।
अपने Ad Account को full permission ("Manage Campaigns" + "Manage Performance") के साथ assign करें। अपने Page को full permission के साथ assign करें। अपने Pixel/Dataset को full permission के साथ assign करें। अगर आपके पास multiple Ad Accounts हैं और आप चाहते हैं कि CLI उन सभी को manage करे, तो हर एक को assign करें।
जब हमने यह सेटअप किया, हमने act_975780295197610 (हमारा Ad Account) और Page 1113585798495892 (हमारा EMAX Studio page) plus Pixel 1464075091373537 assign किया। जब आप API call करते हैं तो Ad Account IDs पर act_ prefix required है — यह actual ID का हिस्सा है, formatting convention नहीं।
Step 5: "Page verwalten" / "Manage Page" Permission Assign करें
यह वह step है जो पहली बार लगभग हर किसी को trap करता है। Step 4 ने Page को एक asset के रूप में assign किया, लेकिन default permission level "Anzeigen erstellen" / "Create Ads" है — जो पर्याप्त नहीं है। Page को reference करने वाले ad creatives publish करने के लिए System User को "Page verwalten" / "Manage Page" चाहिए।
अगर आप यह skip करते हैं, तो हर ad creation API call एक generic "permission denied" error return करेगा जो Page का mention नहीं करता। आप अपने token scopes और Ad Account permissions check करते हुए घंटों बिताएंगे जबकि असली problem Page asset settings में one click deep है।
Asset list में Page पर क्लिक करें, permissions तक scroll करें, और System User के लिए "Manage Page" toggle on करें। Save करें।
Step 6: CLI Install करें और एक Config File बनाएं
Python के लिए, official SDK install करें:
pip install facebook-business
Node के लिए, community-maintained client का उपयोग करें:
npm install facebook-nodejs-business-sdk
~/.meta-ads/config.json पर एक config file बनाएं (या जहां भी आपका स्टैक secrets store करता है):
{
"access_token": "EAA...your-system-user-token",
"app_id": "910292175368026",
"app_secret": "your-app-secret",
"ad_account_id": "act_975780295197610",
"page_id": "1113585798495892",
"pixel_id": "1464075091373537",
"api_version": "v23.0"
}
Permissions सेट करें: chmod 600 ~/.meta-ads/config.json। app_secret System User tokens के लिए optional है लेकिन appsecret_proof signing enable करता है, जिसे Meta production के लिए recommend करता है।
Step 7: First Test Command चलाएं
अपने campaigns को list करके verify करें कि सब कुछ काम करता है। Python में:
from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.adaccount import AdAccount
import json
cfg = json.load(open("/path/to/config.json"))
FacebookAdsApi.init(access_token=cfg["access_token"])
account = AdAccount(cfg["ad_account_id"])
campaigns = account.get_campaigns(fields=["name", "status", "objective"])
for c in campaigns:
print(c["name"], c["status"], c["objective"])
अगर यह एक list return करता है (एक खाली list भी, अगर आपके पास अभी तक कोई campaigns नहीं हैं), तो आप कर चुके हैं। अगर यह OAuthException या Permission denied raise करता है, नीचे error table पर वापस जाएं।
आम सेटअप Errors और उन्हें कैसे Fix करें
ये वो 8 errors हैं जिन्होंने build के दौरान हमें काटा। हर एक ने असली घंटे खर्च किए। खुद को pain से बचाएं।
| Error | इसका वास्तव में मतलब क्या है | Fix |
|---|---|---|
Cannot use Custom Conversion with 0 events as promoted_object |
आपकी Custom Conversion अभी तक fire नहीं हुई है, इसलिए Meta इसके लिए optimize करने से इनकार करता है | पहले LANDING_PAGE_VIEWS के लिए optimize करें; 50+ events fire होने के बाद OFFSITE_CONVERSIONS पर switch करें |
App must be Live, not Development |
आपने एक token जनरेट किया लेकिन app को कभी Live Mode में move नहीं किया | privacy policy URL + app icon जोड़ें, फिर app dashboard में App Review → Live toggle करें |
Use Case must be Marketing API, not Other (UI vary करता है) |
German UI label "Werbeanzeigen mit Marketing API" English "Marketing API" से map होता है। दोनों System User Tokens के लिए काम करते हैं। | कोई भी use case काम करता है; dropdown name को ignore करें और proceed करें |
Instagram requires EU Pay-or-Consent + Page Linkage |
Instagram-placed ads EU traffic पर HARD_ERROR के साथ fail होते हैं अगर आपका IG account एक Page से linked नहीं है जिसमें Pay-or-Consent सेट है | अपने Instagram Business account को Business Settings → Accounts → Instagram में एक Page से लिंक करें |
bid_strategy is required |
Ad Set creation में bid_strategy field गायब है |
Ad Set payload में "bid_strategy": "LOWEST_COST_WITHOUT_CAP" जोड़ें |
targeting_automation.advantage_audience is required |
नया v23.0 field mandatory है | "targeting_automation": {"advantage_audience": 1} जोड़ें (या 0) |
video_feeds placement is deprecated |
यह placement v23.0 में हटा दिया गया था | अपनी placement list से video_feeds हटाएं; इसके बजाय feed और instagram_reels का उपयोग करें |
image_hash is required for video_data |
Video creatives को एक thumbnail image चाहिए जो hash के रूप में registered हो | ffmpeg -i video.mp4 -ss 00:00:01.5 -frames:v 1 thumb.jpg के साथ एक frame extract करें, /adimages के माध्यम से upload करें, returned hash का उपयोग करें |
Custom Conversion वाला सबसे cruel है क्योंकि error message technically बताता है कि क्या गलत है लेकिन workaround non-obvious है। एक brand-new Custom Conversion के पास Meta के system में zero events होते हैं। Meta किसी ऐसी चीज़ के लिए campaign को optimize करने से इनकार करता है जिस पर इसके पास कोई historical data नहीं है। Trick यह है कि campaign को पहले Landing Page Views के लिए optimize करके launch करें, 50+ conversions को CAPI के माध्यम से fire होने दें, फिर अपने Custom Conversion ID के साथ Ad Set के promoted_object को OFFSITE_CONVERSIONS पर switch करें। उसके बाद, optimization वास्तव में काम करता है।
एक असली First-Campaign वॉकथ्रू
यह वह है जो हमने अपने पहले live test के रूप में चलाया। असली values, असली flow, असली results।
Campaign बनाएं। Objective: OUTCOME_TRAFFIC (बाद में OUTCOME_SALES पर switch किया गया जब हमारे पास conversion data था)। Status: PAUSED शुरू में ताकि Ad Set और Ads नीचे बनाए जा सकें इससे पहले कि सब कुछ एक step में ACTIVE पर flip हो। हमारे सेटअप में Budget Ad Set level पर रहता है।
Ad Set बनाएं। Daily budget: 1000 (cents = $10/day)। Optimization: LANDING_PAGE_VIEWS। Bid strategy: LOWEST_COST_WITHOUT_CAP। Targeting: countries ["US", "GB", "CA"], age 25 to 55, language English। Placements: feed, instagram_reels, stories, marketplace। Targeting automation: {"advantage_audience": 1}।
Creatives बनाएं। तीन image creatives और तीन video creatives — total छह ads। Images के लिए, हमने अपना खुद का EMAX Studio output उपयोग किया (eat your own dogfood): तीन hooks, तीन brand-colored backgrounds, सभी 1080×1080। Videos के लिए, तीन 15-second vertical reels word-by-word captions और AI voice के साथ, हमारी अपनी pipeline के माध्यम से generated (स्टेप-बाय-स्टेप AI Marketing Campaign कैसे बनाएं में walked through)। हर video creative को thumbnail के लिए एक image_hash चाहिए — ffmpeg के साथ 1.5 seconds पर एक frame extract करें, इसे /adimages पर upload करें, और returned hash का उपयोग video_data block के अंदर करें।
Activate करें। Campaign, फिर Ad Set, फिर सभी छह Ads को ACTIVE पर flip करें। Meta review आमतौर पर 15 से 30 मिनट में clear होता है। Rejected ads ad.get('effective_status') के माध्यम से per-ad surface होते हैं।
Daily Report। एक meta_daily_report.py script सुबह 7:00 बजे Berlin time पर cron के माध्यम से चलती है। यह insights pull करती है, spend / CTR / CPM / conversions को Telegram message में format करती है, और 100+ impressions के बाद 0.5% से कम CTR वाले किसी भी ad को auto-pause करती है। पहले 48 घंटों ने 4,200 impressions, 78 clicks (CTR 1.86%), और $1.67 per conversion पर 12 Quick Scan completions produce किए — day three पर QuickScanComplete Custom Conversion के खिलाफ optimization को Landing Page Views से OFFSITE_CONVERSIONS पर switch करने के लिए पर्याप्त signal।
Pitfalls से बचने के लिए
कुछ चीज़ें आपको जला देंगी। हमने इनमें से प्रत्येक को कठिन तरीके से सीखा।
git में tokens को hardcode न करें। Private repos में भी। Tokens CI logs के माध्यम से, accidentally-public forks के माध्यम से, और repo की visibility बदलने से पहले किए गए commits के माध्यम से leak होते हैं। हमेशा environment variables या repo के बाहर एक chmod-600 config file से read करें।
Step 5 से Page Manage permission को skip न करें। आपको जो errors मिलते हैं वे ऐसे दिखते हैं जैसे वे Ad Account या token के बारे में हैं। वे नहीं हैं। creative creation पर अस्पष्ट "permission denied" देखते समय हमेशा पहले Page asset permission को फिर से check करें।
Developer app के अभी भी Development Mode में होने के साथ deploy न करें। Token उस user के लिए काम करता है जिसने इसे बनाया लेकिन किसी भी अन्य System User context के लिए silently fail होता है। Server पर कुछ भी चलाने से पहले Live Mode में move करें।
Video creatives के लिए image_hash न भूलें। इसके बिना, पूरा Ad creation video_data के बारे में एक misleading error के साथ fail हो जाता है।
अगर आप scale करने की योजना बना रहे हैं तो CAPI को skip न करें। Browser pixels iOS ATT, ad blockers, और tracking prevention के कारण 30 से 50% events खो देते हैं। Server-side Conversions API उनमें से अधिकांश को recapture करता है — एक weekend का काम जो ad spend scale करने के पहले हफ्ते में वापस भुगतान करता है।
अक्सर पूछे जाने वाले प्रश्न
Meta Ads CLI सेट करने में कितना खर्च आता है?
सेटअप खुद free है। Marketing API, System User tokens, Business Manager, और सभी developer tools zero-cost हैं — आप केवल वही ads pay करते हैं जिन्हें आप वास्तव में चलाते हैं। पहली बार 4 से 6 घंटे का सेटअप time और उसके बाद कभी भी 30 minutes की योजना बनाएं।
क्या मैं एक CLI install के माध्यम से multiple ad accounts चला सकता हूं?
हां, और यह मुख्य कारणों में से एक है जो agencies System User tokens का उपयोग करती हैं। Business Settings में हर Ad Account को एक asset के रूप में जोड़ें, और आप अपनी config में ad_account_id बदलकर या इसे एक parameter के रूप में pass करके किसी को भी target कर सकते हैं। एक System User token सैकड़ों Ad Accounts को multiple Business Managers में manage कर सकता है अगर permissions in place हैं।
Google Ads CLI के बारे में क्या — क्या setup similar है?
Concept similar है लेकिन Google का setup rougher है। Google को एक developer token approval चाहिए जो 7 से 21 दिन ले सकती है, OAuth2 refresh tokens जो periodically expire होते हैं, और MCC (Manager Account) permissions की एक additional layer। Meta का System User token genuinely दो systems में से सरल है। अगर आप दोनों platforms चलाते हैं, patterns सीखने के लिए पहले Meta सेट करें।
अगर एक token compromise हो जाता है तो मैं tokens को safely कैसे rotate करूं?
एक नया System User token जनरेट करें (same permissions, same "Never" expiration), अपनी config update करें, test करें कि नया token काम करता है, फिर पुराने को revoke करें। Meta आपको same System User के लिए simultaneously multiple active tokens रखने देता है, इसलिए आप बिना downtime के roll कर सकते हैं। अगर एक token leak हो जाता है, तुरंत revoke करें और unauthorized campaigns के लिए API के माध्यम से recent ad spend audit करें।
Conversions API (CAPI) इस सेटअप में कैसे fit होता है?
CAPI एक separate लेकिन complementary system है। Meta Ads CLI campaigns, ad sets, और ads को manage करता है। CAPI server-side conversion events भेजता है जिनके खिलाफ वे ads optimize करते हैं। दोनों same Pixel ID का उपयोग करते हैं। CAPI events किसी भी browser pixel से independently flow होते हैं — वे GDPR-clean tracking की foundation हैं क्योंकि कोई cookies involved नहीं हैं और PII transmission से पहले hash किया जाता है। AI agents के साथ AI Facebook Ads ओवरव्यू कवर करता है कि CAPI bigger automation stack में कैसे fit होता है।
Honest Bottom Line
Meta Ads CLI magic नहीं है। यह आपके workflow से तीन चीज़ें हटाने का एक disciplined तरीका है: OAuth token refreshes, manual Ads Manager logins, और हर बार जब आप एक ad launch करते हैं तो 14 settings के माध्यम से क्लिक करने की human-error cost। एक बार यह चल रहा है, आप 90 सेकंड में वह करते हैं जो 30 मिनट लेता था।
सेटअप fiddly है क्योंकि Meta की tooling fiddly है। लेकिन steps deterministic हैं। 7-step setup को exactly follow करें, table में 8 errors के लिए watch करें, और आपके पास afternoon के अंत तक एक production-grade ads स्टैक होगा। CLI के AI creatives और daily reporting से जुड़ने की bigger picture के लिए, हमारा AI agents के साथ Facebook Ads ओवरव्यू और AI news week 18, 2026 देखें कि इस साल ads ecosystem में क्या shift हो रहा है।
एक बार CLI live है, सवाल बन जाता है कि इसे क्या creatives खिलाएं। emax.studio पर एक free 90-second AI-readiness scan के माध्यम से अपना landing page चलाएं — आपको दो मिनट से कम में एक score, conversion gaps की list, और एक ready-to-run campaign brief मिलता है।
अपने AI वीडियो रील बनाने के लिए तैयार हैं?
5 मुफ़्त क्रेडिट। क्रेडिट कार्ड की आवश्यकता नहीं।
मुफ़्त में शुरू करें