Un webinar despre infrastructura invizibilă din spatele oricărei automatizări de marketing. Fără limbaj de lemn. Cu cod real.
Construiesc și operez infrastructura de paid media pentru un portofoliu de branduri prin Contexta.ro: date, automatizări și dashboard-uri care transformă conturile de advertising în decizii clare.
În ultimii doi ani, m-am concentrat pe integrarea AI în workflow-ul de PPC, automatizări n8n/Claude API și construirea unei platforme custom de date care unifică Meta, Google Ads și GA4.
Premiu european într-un proiect PPC. Google Partner, Shopify Partner.
Între MCP claude.ai, MCP self-hosted și Graph API direct. Și știi când să folosești care pentru fiecare scenariu de business.
Meta App + System User Token de la zero. Token care nu expiră, independent de persoane, gata pentru producție.
Google Cloud project + OAuth credentials + integrare în VS Code prin Claude Code. Toate datele tale, accesibile prin prompt.
Nu pleci cu o platformă completă construită. Pleci cu fundația tehnică pe care o construiești.
Claude + MCP. Zero cod. Vorbești cu Claude, el accesează platformele tale și face treaba.
Claude API + cron + cod minim. Rapoarte automate noaptea, alerte pe WhatsApp/email.
Next.js + Supabase + Vercel + Claude API. Produs comercial, multi-tenant, recurring revenue.
Important: nivelul 1 e deja 80% din valoare. Nu sări la nivelul 3 fără să fi epuizat nivelul 1.
Acces la conturi de ads, campanii, ad sets, ads, audiences, insights, Pages, Instagram.
App + System User Token
graph.facebook.com/v19.0
Acces la conturi MCC, conturi client, campanii, keyword-uri, search terms, conversion data.
OAuth + Developer Token (aprobare necesară)
GAQL (SQL-like)
Sesiuni, utilizatori, conversii, atribuire, eveniment-uri custom, funnel-uri.
OAuth Service Account (fără aprobare)
runReport()
Fiecare API are propriul model de auth, propriul ritm de versioning și propriile limite. Nu există un standard unificat.
| MCP claude.ai | MCP self-hosted | API direct | |
|---|---|---|---|
| Setup | 0 (un click) | 2-3 zile | 1-2 săptămâni |
| Multi-client | Un singur cont conectat | Per connection string | Oricâți clienți (OAuth) |
| Token management | Automat | Tu gestionezi | Tu gestionezi |
| Flexibilitate | Limitată la tool-urile expuse | Custom, dar prin schema | Orice endpoint |
| Producție | Nu | Da, cu limite | Arhitectura corectă |
| Cost | Inclus în Claude | Subscription terț | Gratuit (Marketing API) |
Explorare și sarcini punctuale → MCP claude.ai. Workflow recurent → MCP self-hosted. Produs comercial multi-client → API direct, cu OAuth per client.
Când folosești MCP-ul Facebook din claude.ai, tu împrumuți App-ul Anthropic. OK pentru explorare. Nu scalabil pentru afacere.
Când construiești propria integrare — n8n, dashboard custom, raportare automată pentru 10 clienți — ai nevoie de propria App Meta. E gratis, durează 15 minute, și îți dă control total.
Pentru automatizări B2B, agenții și integrarea conturilor publicitare ale clienților. Cazul relevant.
Pentru produse publice cu Facebook Login pentru users. Nu e ce ne trebuie.
| User Access Token | System User Token | |
|---|---|---|
| Expirare | 60 zile sau la logout | Niciodată (dacă e generat fără expirare) |
| Legat de | Persoana fizică (utilizatorul tău) | Business Manager (entitate) |
| Dacă omul pleacă | Pică totul | Independent de persoană |
| Use case | Testare, acces personal, dev local | Producție, automatizări, agenții |
| Setup | 1 click în Graph Explorer | 5 min în Business Settings |
„User Access Token e o cheie de apartament dată unui angajat. System User Token e seiful firmei — nu depinde de nimeni."
Te loghezi cu contul Facebook personal sau de business.
Tip: Business · Nume: contexta-demo-prod (sau numele firmei tale)
Click Set Up. Asta îți dă acces la endpoint-urile pentru ads.
În Settings → Basic. Salvezi-le în password manager. Nu în GitHub.
Iconul de roată dintr-un colț — sau direct /business_settings.
Nume: contexta-demo-system · Rol: Admin
Selectezi conturile de Ads la care vrei acces. Permisiuni: Manage campaigns.
System User-ul există acum, dar nu are token încă. Următorul slide.
La System User → click Generate New Token. Selectezi App-ul creat la slide 10. Bifezi permisiunile. Niciodată mai multe decât e nevoie.
ads_read
Citire date campanii, insights, audiences. Obligatoriu pentru raportare.
ads_management
Modificare campanii, creare ads, pause, restart, edit budget. Obligatoriu pentru automatizare.
business_management
Acces la Business Manager assets — Pages, Pixels, conturi. Pentru integrări complexe.
pages_read_engagement
Doar dacă ai nevoie de date organice de pe Pages. Altfel nu o bifezi.
Niciodată în GitHub. Niciodată pe email. Întotdeauna în .env + .gitignore.
Înainte să bagi tokenul în orice integrare, validezi că funcționează.
Cinci secunde la developers.facebook.com/tools/explorer.
Pui tokenul. Apelezi un endpoint simplu. Dacă primești JSON cu conturile tale — totul e ok. Dacă primești error — re-checkezi permisiunile.
GET /me/adaccounts — listează conturileGET /act_xxx/campaigns — campanii într-un contGET /act_xxx/insights — performanțăOrice integrare cu un produs Google — GA4, Google Ads, Sheets, Drive, Gmail — trece prin Google Cloud Console.
Nu există shortcut. Aici îți creezi „aplicația" (echivalentul Meta App), aici obții credențialele OAuth, aici controlezi ce API-uri sunt activate și ce poate accesa aplicația ta.
Vestea bună: spre deosebire de Google Ads API (care cere developer token + aprobare 2-3 săpt.), GA4 Data API e disponibil instant.
| Meta | |
|---|---|
| Business Manager | Google Cloud Console |
| Meta App | GCP Project |
| System User | Service Account |
| System User Token | Service Account Key (JSON) |
| App Review | OAuth Verification |
Te loghezi cu Google. Prima dată îți cere acceptarea T&C — accepți.
Nume: contexta-demo-prod · Location: No organization (sau organizația ta).
30 de secunde. Apoi îl selectezi din dropdown-ul de sus.
→ Un proiect = un client sau un mediu (dev/prod). Recomandare: per client.
Un proiect Google Cloud are toate API-urile dezactivate by default. Trebuie să activezi explicit fiecare API pe care îl folosești. Mecanism de securitate, nu birocrație.
Toate API-urile Google sunt aici. Sunt sute. Tu îți trebuie două.
Google Analytics Data API — pentru GA4
Google Ads API — pentru campanii Google Ads
Instant. Fără aprobare pentru GA4. Pentru Google Ads ai nevoie ulterior și de un Developer Token.
Două opțiuni — fiecare cu cazul ei de utilizare:
Pentru când utilizatorul (clientul tău sau tu) trebuie să-și dea acordul explicit pentru acces la datele lui de GA4 sau Google Ads.
Cont „robot" — îi dai acces la property-ul GA4 ca user, iar el accesează datele fără OAuth. Echivalentul System User-ului de la Meta.
Apoi Create Credentials → OAuth 2.0 Client ID
Tip: Internal dacă ai Google Workspace, External altfel. Nume aplicație: Contexta Demo Local.
Authorized redirect URIs: http://localhost:3000/callback
Primești client_secret_xxx.json. Îl redenumești google-credentials.json.
Înainte de orice git commit creezi .gitignore.
Asta e prima regulă a oricărui developer.
Chiar dacă repo-ul e privat. Chiar dacă ești sigur că nu îl vede nimeni. Tokens și credentials niciodată în Git, niciodată pe email, niciodată în Slack.
Producție → Environment Variables în Vercel.
Local → .env + .gitignore.
Echipă → 1Password sau Doppler.
În VS Code: instalezi Claude Code, deschizi un proiect nou, creezi .env, lipești credențialele.
Claude Code citește direct mediul tău. Nu mai scrii o linie de autentificare.
De la credentials în VS Code la dashboard live pe contexta.ro — restul slide-urilor explică podul.
PostgreSQL real, hosted, cu autentificare integrată și API autogenerat. Gratuit până la 500MB + 50.000 monthly active users. Pentru o agenție medie — gratis luni de zile.
Deploy automat din GitHub. Environment Variables securizate (token Meta, key Anthropic, JSON Google). Niciodată în cod, niciodată vizibile public. Tier gratuit suficient pentru început.
| Google Sheets | Supabase (PostgreSQL) | |
|---|---|---|
| Rânduri suportate fluid | ~10.000 (apoi încetinește) | Milioane |
| Query complex (JOIN, agregări) | Imposibil sau lent | Instantaneu cu SQL |
| Auth + permisiuni granulare | Doar pe sheet | Row-Level Security |
| API autogenerat | Trebuie Google Apps Script | REST + GraphQL out-of-box |
| Concurrent writes | Conflicte, override-uri | ACID transactions |
| Backup & restore | Version history Google | Point-in-time recovery |
Sheets e perfect pentru: prototipare rapidă, raportare către clienți non-tech, export final. Sheets nu e bază de date pentru o aplicație care crește. Folosești scula potrivită pentru job.
MCP claude.ai
Conectezi Meta + Google, gata.
Claude API + cron + Meta App proprie
Tu controlezi când rulează, ce trimite, către cine.
Stack complet: Next.js + Supabase + Vercel + OAuth per client
Acolo unde stack-ul complet lucrează deja.
Luni dimineață, fiecare client primește pe email un PDF cu performanța campaniilor lui din săptămâna anterioară. Cheltuieli, ROAS, top campanii, recomandări.
Cron rulează la fiecare 30 minute, verifică ROAS-ul pe ultimele 24h vs media săptămânală. Dacă scade peste un prag → mesaj WhatsApp instant cu campania problemă.
Prompt: „Audit contul Meta X." Claude pulls all campanii, ad sets, ads cu insights pe ultimele 90 zile. Identifică duplicate, cannibalisation, ads cu CTR sub prag.
Niciunul din aceste trei nu necesită o platformă completă. Toate sunt fezabile la nivelul 2 al scării.
Meta: 200 calls/oră per user. Google Ads: 15.000 operations/zi pentru free tier. Trebuie să batchezi request-urile, să cache-uiești, să implementezi retry cu exponential backoff. Asta nu îți face MCP-ul out-of-box.
Meta zice că a generat 50 conversii. GA4 zice 23. Realitatea e că ambele au dreptate — folosesc modele de atribuire diferite. Soluția nu e să găsești „adevărul" — e să comunici clientului ce alegi ca sursă canonică și de ce.
Dacă întrebi „care e ROAS-ul pe campania X?" și Claude nu are date proaspete, va inventa un număr plauzibil. Soluția: forțezi apeluri către instrumente pentru orice cifră și nu deduci niciodată din context. Sau validezi cu calcul direct înainte să prezinți clientului.
Tokenele expiră. Refresh tokens dispar. User-ul își retrage consimțământul. Pentru o platformă reală trebuie să ai logică de reautentificare, notificare proactivă către client și variantă de rezervă cu User Token când System User pică.
Creezi Meta App (Business), creezi System User în Business Manager, generezi token cu permisiunile ads_read + ads_management. Validezi în Graph Explorer. ~1 oră de muncă.
Creezi proiect Google Cloud, activezi GA4 Data API + Google Ads API. Generezi OAuth credentials (sau Service Account dacă mergi headless). Aplici developer token pentru Google Ads dacă e necesar. ~2 ore de muncă.
VS Code + Claude Code. Alegi un singur use case (raport săptămânal recomandat). Construiești pipeline-ul: pull data → format → trimitere. Testezi pe un singur client. 2-3 zile de iterație.
Bagi codul pe GitHub privat. Conectezi la Vercel. Adaugi variabilele de mediu. Setezi jobul cron. Extinzi la al doilea client, apoi la tot portofoliul. 2-3 zile pentru primul deploy, ore pentru fiecare client adăugat.
Total realist: 1 lună part-time. Nu mai mult.
Lasă-mi emailul. Îți trimit pachetul complet — gratuit, fără spam, fără funnel.
.env + .gitignore cu toate variabilele necesare8 Iunie 2026 · Webinar Cristian Radu
Construit cu Claude. Găzduit pe Vercel. Date din Supabase.