חיבור Meta Ads
מאפס לקמפיין שהטרמינל בונה: עמוד, פורטפוליו, חשבון מודעות, פיקסל, אפליקציה, רובוט, טוקן. שבעה שלבים, ובכל אחד הקיר שנתקלנו בו. ללקוח זה אותו סדר על החשבונות שלו.
#meta-links
קישורים ישירים
- Business settings (הפורטפוליו: דפים, חשבונות מודעות, משתמשי מערכת, אפליקציות) ↗כל ההקמה קורית כאן. הסרגל משמאל: Users, Accounts, Data sources.
- Ads Manager (הקמפיינים) ↗הכפתור הירוק Create הוא הממשק המלא. "Advertise" מהעמוד ו-Ad Center הם הגרסה המקוצרת, לא לשם.
- Events Manager (הפיקסל, Test events) ↗Datasets = פיקסלים. Test events בודק PageView ו-Lead באתר החי.
- Meta for Developers (האפליקציה) ↗נדרשת רק כדי להנפיק טוקן. App settings > Basic, והמתג App Mode למעלה.
#meta-steps
השלבים, בסדר הזה
01 · עמוד פייסבוק לעסק
facebook.com/pages/createשם: "<העסק> - <מה הוא>"קטגוריהביו: השורה המקצועית הרגילהמודעה תמיד רצה בשם של עמוד, לא של פרופיל. העמוד יכול להישאר בלי עוקבים לנצח; הוא רק השולח.
הקיר: העמוד נולד על הפרופיל הפרטי של מי שיצר אותו. זה לא באג: במטא הכל שייך לאדם עד שמעבירים לפורטפוליו (שלב 02).
02 · Business portfolio (לשעבר Business Manager)
Business settingsCreate a business portfolioשם העסק, שם מלא, מייל עסקימיכל: הדף, חשבון המודעות, הפיקסל והרובוט של העסק במקום אחד, ואפשר לתת גישה לעסק בלי לפתוח את הפרופיל.
הקיר: בסוף היצירה "Nothing is available to be claimed": לדלג. מוסיפים את הדף ב-Accounts > Pages > Add > "Add a Page" (לא "Request access": זה המסלול לדף של מישהו אחר, ומחכה לאישור).
03 · חשבון מודעות חדש בתוך הפורטפוליו
Accounts > Ad accounts > AddCreate a new ad accountשם, אזור זמן Asia/Jerusalem, מטבע ILSאמצעי תשלוםחשבון שנולד בפורטפוליו שייך לעסק. בוחרים אותו ב-Ads Manager בדרופדאון של החשבון (שתי רמות: מי מחזיק, ואיזה חשבון).
הקיר: חשבון מודעות אישי ישן שמעולם לא שילם לא ניתן להעברה לפורטפוליו ("a payment has not been made"). לא להילחם: חדש. ולבדוק את אזור הזמן לפני ההוצאה הראשונה: "Jersey" בהשלמה האוטומטית זה האי, לא ירושלים, ושינוי אחרי הוצאה סוגר את החשבון ופותח עותק.
04 · פיקסל (Dataset) באתר
Events Manager > Connect data > Webאו: Business settings > Data sources > Datasets > Addשם העסקלהעתיק את ה-Pixel IDבלי פיקסל, Leads באתר לא קיים כמטרה: מטא לא יודעת מה ליד. ההתקנה היא const אחד ב-SiteTags.tsx (PageView בכל מעבר עמוד, Lead מ-trackLead), ושורה ב-/privacy עם קישור למדיניות של מטא.
הקיר: פיקסל ישן של לקוח אחר באותו חשבון אישי: אי אפשר למחוק פיקסלים, רק לשנות שם. חדש בתוך הפורטפוליו, גם דרך ה-API (POST act_<id>/adspixels). הבדיקה עובדת רק באתר החי: בלוקאל התגים לא נטענים.
05 · אפליקציה (רק בשביל טוקן)
developers.facebook.com/apps > Create appOther > BusinessUse case: "Create & manage ads with Marketing API"App settings > Basic: Privacy policy URL (/privacy), CategoryApp Mode: Development → Liveמטא לא מנפיקה טוקן בלי אפליקציה, גם לרובוט של עסק אחד. ההרשמה כמפתח היא פעם אחת (טלפון, מייל, "Owner/founder").
הקיר: אפליקציה ב-Development יוצרת ad set אבל לא creative: "נוצר על ידי אפליקציה שנמצאת במצב פיתוח, עליה להיות ציבורית". Live דורש Privacy policy URL ו-Category. בלי זה הבנייה נתקעת בדיוק על המודעה.
06 · משתמש מערכת (הרובוט) וטוקן
Business settings > Users > System users > Addשם בלי מקפים ובלי מילים חסומות (למשל "Ads Robot"), AdminAssign assets: הדף (Ads, Insights), חשבון המודעות (full), האפליקציה (full)Generate token: האפליקציה, Never expire, כל ההרשאות של ads/pages/businessלשמור ב-~/.google-marketing/meta.jsonהטוקן של משתמש מערכת לא פג ולא תלוי בסשן של אדם. מרגע זה הכול סקריפט: npm run meta.
הקיר: "Profile names can't have too many hyphens" ו-"invalid System User name": שמות עם מקפים או עם מילים מסוימות (Claude) נדחים. Generate token מראה "No permissions available" עד שהאפליקציה משויכת למשתמש (Assign assets > Apps).
07 · הקמפיין
Ads Manager > Create > LeadsConversion location: Website (לא Instant forms), הפיקסלתקציב של הלקוחnpm run meta -- build-carousel ... (ad set + קרוסלה, PAUSED)הלקוח מפעילInstant forms = טופס בתוך פייסבוק, ממולא מראש, לידים שלא זוכרים שביקשו. הליד הנכון הוא באתר. הקרוסלה: 1080×1080 לכרטיס, צילומי מסך של אתרים על לבן (today-web-card-*.jpg).
הקיר: מטא משכתבת טקסט וחותכת תמונות לבד ("Advantage+ creative"); הסקריפט מבטל את זה (standard_enhancements OPT_OUT). כל מה שנוצר מהטרמינל מתחיל ב-"Cl ·" כדי שידעו מי יצר.
#meta-daily
ביום-יום, בקצרה
- מה Claude יצר: כל דבר שנוצר מהטרמינל נקרא
Cl · dd-mm-yy · מה. מה שאין לו Cl בשם הוא שלך. - להפעיל: Ads Manager, הקמפיין, המתג Off/On על ה-ad set ועל המודעה. שניהם נוצרים כבויים; התקציב על הקמפיין, שלך, ולא נוגעים בו מהטרמינל.
- לראות מה קורה:
npm run meta -- insights --days 7(הוצאה, הופעות, קליקים, לידים לפי קמפיין);npm run meta -- pixel(מתי הפיקסל ירה לאחרונה). ליד אמיתי מגיע גם במייל, עם "מגיע ממודעה: כן". - לבדוק את הפיקסל: Events Manager, הפיקסל, Test events, Open website עם כתובת האתר החי. PageView בכל עמוד, Lead אחרי שליחת טופס.
- מודעה חדשה: תמונות לכרטיסים (1080×1080, צילומי מסך על לבן), טקסט בקו של הסטודיו, ו-
build-carouselתחת קמפיין שאתה פתחת ב-Ads Manager (מטרה Leads, Website, הפיקסל, התקציב שלך).
#meta-script
הסקריפט
scripts/meta/ads.mjs, ה-ads.mjs של מטא. קורא מ-~/.google-marketing/meta.json (token, account, page, pixel, business). דוחות: campaigns, ads, insights --days 7, pixel, raw. כתיבה אחת, build-carousel: מעלה תמונות, יוצר ad set וקרוסלה תחת קמפיין קיים, הכול PAUSED, בלי תקציב משלו (התקציב על הקמפיין, של הלקוח). הכלל של Google Ads חל גם כאן: אף פעם לא תקציב, אף פעם לא הפעלה.
npm run meta -- campaigns
npm run meta -- insights --days 7
npm run meta -- build-carousel --campaign <id> \
--link https://www.today-web.studio/landing_pages/oct_26/profile/small-business \
--text "סטודיו מקצועי לעיצוב ובניית אתרים לעסקים. ..." \
--cards "card-1.jpg|אתר למספרה,card-2.jpg|אתר לסטודיו יוגה,..."