🐒 AIOS RAG — Felhasználói kézikönyv

A cég belső, privát tudásbázisa — hol keresek, ki mit lát, hogyan dolgozza fel a rendszer a dokumentumokat.

Utolsó frissítés: 2026-09-04 (Számlák áttöltése ÉL: email-mellékletként érkező számla-PDF-ek felismerése + feltöltés a könyvelő SharePoint-mappáiba anonim megosztó linken, félautomata/automata; reklám/hírlevél-előszűrő az email-szinkronban (Beállítások-kapcsoló); a deploy által megszakított feldolgozások induláskor automatikusan újra sorba állnak, nem kell újratölteni; új egyedi funkció: „Rendelések → Troli” — emailből felismert rendelések ügyletként a Troli CRM-be, félautomata/automata; Folyamatok ↔ Felületeink kereszt-betáplálás; a Claude helyi motor nagy promptokon is működik; új „Felületeink” almenü a Olé Hosting szerint csoportban + „hozzáadott érték ≠ kommunikáció” súlyozás és rendszer-tények minden AI-szintézisben; új, példány-szinten kapcsolható „🤖 Egyedi funkciók” menücsoport: Számlák áttöltése (előkészítés) + Gyártástervezés (él, automatikusan frissül); az „Egyedi funkciók” fül új neve „Feladatok”; PWA-telepítés javítása Samsung Internetre (PNG ikonok + útmutató). Korábban aznap: PPC funkció teljes átépítése: landing oldalak + kép-vagyon + mért kampány-teljesítmény bemenetként, szerkeszthető strukturált kampány-tervek, Meta Ads/Google Ads API-push mindig PAUSED állapotban, statisztika-panel) · Szerver: xen88-152 (88.151.103.152) · Domain: okos.ole.hu

1. Milyen felületek vannak most

A rendszer több különálló szolgáltatásból áll, mindegyik a okos.ole.hu domain alatt, saját útvonalon.

FelületURLKinekStátusz
MCP végpont
itt kérdezhet rá egy AI asszisztens (Claude, Gemini) a tudásbázisra
okos.ole.hu/mcp bárki, akinek van hozzáférési tokenje él
Olé Hosting portál
bejelentkezés, Kérdezz felület (Gemini vagy Claude — szűrt kontextus), Dokumentumok (feltöltés+lista), Integrációk (pl. WooCommerce, számlázz.hu), szuperadminnak Pénzügyi riport + felhasználókezelés + globális beállítások; telefonon telepíthető (PWA)
okos.ole.hu/mrag minden bejelentkezett user; Felhasználók menü csak szuperadminnak él
Mattermost (csapat-chat)
saját, self-hosted chat — csatornák, DM-ek, és egy Olé Hosting nevű AI-bot tagként
chat.okos.ole.hu meghívottak (a szerver nincs nyitva önregisztrációra) él
Ez a kézikönyv okos.ole.hu/userguide mindenki él
Új: a okos.ole.hu/mrag portálon most már bejelentkezéssel is lehet kérdezni a tudásbázistól (Gemini-alapú Kérdezz felület), nem csak MCP-s AI-kliensen keresztül. Mobilon telepíthető appként is felajánlja magát (PWA). A navigáció világos, semleges témára és bal oldali menüre (mobilon ☰ hamburger-menüre) váltott, és egy ❓ gomb bármikor újranyitja a gyors bevezetőt.
Új (2026-07-15): Olé Hosting a Mattermost-ban. Telepítsd a Mattermost klienst (mobilon: "Mattermost" az App Store/Google Play-en; asztali gépen: mattermost.com/download, vagy egyszerűen a böngészőben a chat.okos.ole.hu cím), jelentkezz be a saját fiókoddal, és a Olé Hosting bot-fiókkal DM-ben bármikor kérdezhetsz — csatornákban @Olé Hosting megemlítésre válaszol. Rákérdezésre először egy "Gondolkodom…" üzenetet ír, majd azt szerkeszti át a végleges válaszra. Ugyanazt a tudásbázist és ugyanazt a motort (Gemini/Claude, amit a portál Beállítások fülén beállítottak) használja, mint a portál Kérdezz felülete — nincs két külön "agy". Jogosultság: 1:1 DM-ben a saját portál-szerepeddel válaszol; egy privát csoportban/csatornában csak akkor ad "Korlátozott" szintű infót, ha ott minden emberi tag szuperadmin, egyébként (és nyilvános csatornában mindig) csak "Központi" szintű adatból válaszol — attól függetlenül, ki kérdezett, mert ott mások is olvasják a választ.

2. Hogyan kérdezhetek rá a tudásbázisra — most

A) Webes portál (okos.ole.hu/mrag) — bejelentkezés után:

B) MCP-kompatibilis AI kliens — pl. Claude Desktop, Claude Code, vagy claude.ai "remote connector" a okos.ole.hu/mcp végponton, hozzáférési tokennel. Ez a mai napig csak a központi tudásbázist látja, személyes dokumentumokat nem (mert nincs hozzá bejelentkezett portál-felhasználó kontextus).

Beállítás Claude-dal:
  1. Nyisd meg a Coolify UI-t → Applications → aios-rag-mcp → Environment variables → másold ki a MCP_BEARER_TOKEN értéket.
  2. Claude Desktop / claude.ai-ban add hozzá remote MCP connectorként: URL = https://okos.ole.hu/mcp, Authorization header = Bearer <token>.
  3. Ezután Claude-tól kérdezhetsz a cég dokumentumairól — a search_knowledge_base eszközt fogja használni.
Gemini 2.5 Flash — élesben fut a portál Kérdezz fülén:

Költség-optimalizálás miatt a portál a Claude-előfizetés helyett egy saját kiszolgáló Gemini 2.5 Flash API-hívását használja (ingyenes limitig). Mivel a Gemini API ingyenes szintje esetén Google a beküldött adatokat modellfejlesztésre használhatja, a rendszer minden dokumentum-darabot előszűr, mielőtt kiküldi. Ez egy tudatos, elfogadott kockázat — ld. lent a döntés indoklását.

3. Hogyan lesz egy dokumentumból kereshető adat?

Amikor egy dokumentum bekerül a rendszerbe (jelenleg kézzel/scriptből, később n8n-es automatikus behúzással), ez történik vele:

1
BeérkezésA dokumentum szövege (jelenleg egy szöveges mező) bekerül a feldolgozó folyamatba — forrás és cím megjelölésével.
2
Darabolás (chunking)Hosszú dokumentumnál a szöveg kisebb, kb. néhány bekezdésnyi darabra bomlik — így a keresés pontosabb, nem az egész dokumentumot, hanem a releváns részt találja meg.
3
Vektorizálás (embedding)Minden darab szövegét egy lokálisan futó AI-modell (Ollama, nomic-embed-text) egy 768 számból álló vektorrá alakítja. A hasonló jelentésű szövegek vektora közel esik egymáshoz — ez teszi lehetővé a "jelentés szerinti" keresést, nem csak kulcsszavas egyezést.
4
TárolásA szöveg, a vektor, a forrás és egyéb metaadat egy Postgres adatbázisban landol, a pgvector bővítménnyel — ez egy speciálisan vektorokra optimalizált keresőindexet (HNSW) tart fenn.
5
KeresésAmikor kérdés érkezik, a kérdés szövege is átmegy ugyanazon a vektorizáláson, majd az adatbázis megkeresi a hozzá legközelebb eső dokumentum-darabokat ("cosine similarity" alapján).
6
VálaszadásA legjobban egyező darabokat egy nagy nyelvi modell (jelenleg Claude, az MCP-n keresztül) megkapja kontextusként, és ebből fogalmaz emberi választ a kérdésre.
Élesben: minden dokumentum-darabhoz tartozik egy "effektív dátum" (a dokumentum saját időbélyege, ha van megadva, különben a feltöltés ideje). A keresési rangsor 85% szemantikai hasonlóság + 15% frissesség-súllyal rendez, és a Kérdezz felület a nagy nyelvi modellnek is megadja minden forrás dátumát, explicit utasítással: ha két forrás ellentmond egymásnak, a frissebbet vegye figyelembe, és jelezze is ezt a válaszban. Teszteltem: egy 2020-as és egy 2026-os, egymásnak ellentmondó dokumentumnál a rendszer helyesen a frissebbre hivatkozva válaszolt.

Cég-kánon és tanult tények — deployra vár

A visszakeresett dokumentum-darabok (fent, 1-5. lépés) mellé a Kérdezz-válasz motorja most már egy állandó "preambulumot" is kap, MINDEN kérdésnél, a kikeresett darabok ELÉ befűzve — és ez a motor-választástól függetlenül ugyanaz (Gemini, a cégvezető Claude-előfizetése és az OpenRouter mind ugyanazt a szöveget látja, mert egyetlen közös kontextus-szövegbe kerül bele, nem motoronkénti külön promptba). Három rész:

Tárolás módja — miért nem tudott korábban összesítő kérdésekre válaszolni

A vektor-alapú keresés (RAG) a "leginkább hasonló szöveg-darabokat" adja vissza egy kérdésre — ez remek "miről szól ez a dokumentum" kérdésekhez, de szerkezetileg alkalmatlan összesítésre ("hány rendelés volt a héten", "mennyi az átlag kosárérték egy hónapban"): nem tud számolni/összegezni egy teljes adathalmazon, csak néhány "hasonló" darabot mutat.

Ezért minden connectornál (elsőként a WooCommerce-nél) beállítható a Tárolás módja (Integrációk fül, szuperadmin):

"Tábla" módban a Kérdezz motor (jelenleg Gemini) három fix, biztonságos "eszközt" hívhat, ha a kérdés ezt igényli: rendelés-statisztika (darabszám, bevétel, átlag kosárérték egy időszakra), top termékek (mennyiség/bevétel szerint) és konkrét rendelések listája (pl. "utolsó 3 rendelés" — ez más, mint az összesítés, mert tételes adatot ad, nem darabszámot). Ezek nem szabad SQL-t generálnak — fix, paraméterezett lekérdezések, amit a modell csak dátum-szűrővel hívhat meg, sosem szabad szöveggel. Ez a mechanizmus a sablon minden jövőbeli connectorhoz (pl. Gmail: email-darabszám, gyakoriság egy partnerrel).

Összetett kérésekhez (adatlekérés + email) az eszközök láncolhatók: egy kérdésen belül a modell akár több eszközt is hívhat sorban — pl. előbb lekéri az utolsó 3 rendelést, majd azzal az adattal tölti ki a draft_email-t. Ez max. 4 lépésig mehet egy kérdésen belül; ha ennél is összetettebb lenne, inkább bontsd szétebb, egyszerűbb kérdésekre.
Tárolt adat + automatikus frissítés, nem élő API-hívás minden kérdésnél: egy összesítő kérdés (pl. "mennyi volt az átlag kosárérték egy hónapban") úgyis az adott időszak összes rendelését kellene átnézze — ez a WooCommerce API-n élőben lassabb és a bolt leállásának is kiszolgáltatott lenne. Ezért a tárolt táblákat használja, de ha a legutóbbi frissítés 20 percnél régebbi, egy gyors, csak-a-változásokat-lekérő frissítést futtat a válasz előtt — így a friss kérdések sem mutatnak órákkal elmaradt adatot.

A Kérdezz felület egy másik, hasonló elven működő eszközt is használ: ha a kérdés valójában egy email megírására vonatkozik (pl. "holnap emailezd meg X-et, hogy…"), felismeri, és az Email fülön nyit egy előre kitöltött vázlatot (a relatív időpontot pontos dátummá alakítva) — a kiküldés ugyanúgy emberi jóváhagyáshoz kötött, mint a kézzel írt emaileknél. Hasonlóan, egy nyomdai/grafikai kép-generáláshoz szükséges promptot is meg tud írni (a márka-stílus és korábbi grafikai anyagok alapján) — nem képet generál, csak egy kimásolható promptot egy külső kép-generáló AI-hoz.

Motor-független eszközök: ugyanezek az eszközök (rendelés-statisztika/lista, email-vázlat, kép-prompt) Claude (helyi, előfizetéses) motorral is működnek, nem csak Geminivel — a Claude Code CLI saját, egyszer-használatos MCP-kapcsolatot kap vissza a szerverre, a kérdező felhasználóhoz kötve. Ha a motort a Beállítások fülön átváltod, ugyanaz a képességi kör marad, csak más LLM dönt a háttérben.

Meta Ads és Google Ads integráció (2026-09-04) — PPC API-pusholáshoz

Az Integrációk fülön (szuperadmin) két új connector szerkeszthető, amivel a PPC fül a hivatalos hirdetési API-kon keresztül tud kampányt push-olni (mindig PAUSED állapotban) és mért teljesítmény-adatot lehívni:

Ezek API-hozzáférési adatok/tokenek, nem a saját Facebook/Google bejelentkezési jelszavad — a rendszer sosem a személyes fiók jelszavát kéri, csak egy erre a célra generált, korlátozott jogú tokent.

Hogyan szerezz API-hozzáférést:

számlázz.hu integráció (2026-09-08) — a Pénzügyi riport adatforrása

A számlázz.hu-nak nincs „összes számla listázása” API-ja (a Számla Agent csak egy-egy számlát ad vissza számlaszám szerint), ezért az adat két, egymást kiegészítő csatornán jöhet, mindkettő ugyanabba a fin_invoices táblába:

Nem tárolunk számlázz.hu-jelszót — csak a két kulcsot. A számla-adat partnernevet és adószámot tartalmaz, ezért a Pénzügyi riport és a hozzá tartozó AI-eszköz szuperadmin-only; a számlák nem kerülnek a RAG-tudásbázisba (strukturált tábla + összesítő eszköz a helyes forma).
Google Ads bekötés státusza (2026-09-04): a kezelői (MCC) fiók, a developer token (egyelőre teszt-szintű), a Google Cloud-projekt, az OAuth-kliens és a hozzájárulási képernyő elkészült; a "Basic" hozzáférés kérelme be van adva, a bírálat kb. 5 munkanap. Amíg ez nincs jóváhagyva, az éles Google Ads fiókon a statisztika-lekérdezés és az API-push hibát ad — ez egyelőre várt viselkedés, nem hiba; addig a Google Ads Editor CSV-export vagy a lokális Claude-session-nek való átadás használható helyette. A Meta Ads bekötés ezzel szemben már él (rendszerfelhasználó tokennel), a statisztika-lekérdezés is működik rajta.

4. Biztonsági alapelvek

Szerepkörök összefoglalva — ki mit lát

Csak kétféle szerepkör van: munkatárs (user) és szuperadmin. Ugyanez a két szint érvényes a portálon ÉS a Mattermost-beli Olé Hosting-n keresztül is — nincs külön, Mattermost-specifikus jogosultsági rendszer.

SzerepkörPortálonMattermost / Olé Hosting-n keresztül
Munkatárs (user) Kérdezz/keresés: Központi tudásbázis (mindenki adata, ide tartozik 2026-07-15 óta a WooCommerce/webshop adat is) + saját Személyes doksijai. Nem éri el a Korlátozott (email) tartalmat/eszközöket. A Dokumentumok fülön (lista) viszont 2026-07-23 óta csak a SAJÁT feltöltéseit látja (nem másokét is, még a Központi láthatóságúakat sem) — ez csak a lista-nézetet szűkíti, a keresésben/válaszban a mások Központi doksijai továbbra is elérhetők neki. Nincs hozzáférése a Felhasználók/Beállítások/🤖 Olé Hosting szerint (Folyamatok, Emberek/Szerepkörök) fülekhez. DM-ben a saját portál-szerepe szerint válaszol (Központi + saját Személyes). Csoportos/publikus csatornában mindig csak Központi szintű adatot kap — akkor is, ha a csoportban van szuperadmin is, mert ott más is olvashatja a választ.
Szuperadmin Minden a munkatárs-szintből, PLUSZ a Korlátozott (email) tartalom/eszközök, és a Felhasználók/Beállítások/🤖 Olé Hosting szerint fülek (felhasználó-kezelés, motorváltás, folyamatábra-, szervezeti-ábra- és projekt-potenciál-generálás). A Dokumentumok fülön (lista) mindenki feltöltését látja, nem csak a saját magáét — ez a szuperadmin egyetlen kivétele a fenti "csak saját feltöltés" listázási szabály alól. DM-ben teljes hozzáférés, a Korlátozott adat is. Csoportban/privát csoportos üzenetben (Mattermost "group message") csak akkor ad Korlátozott szintű választ, ha a beszélgetés MINDEN emberi tagja szuperadmin — ha akár egy sima munkatárs is jelen van, Központi-only. Publikus csatornában mindig Központi-only, függetlenül a taglistától (mert oda bárki beléphet később).
Mattermost-fiók összekötése a portál-fiókkal: a Olé Hosting a kérdező Mattermost-email címe alapján ismeri fel, melyik portál-fiókhoz (és így melyik szerepkörhöz) tartozik — ezt a Felhasználók fülön (szuperadmin) kell beállítani minden usernél (kattintás az email-cellára). Ha egy Mattermost-user emailje nincs összekötve egy portál-fiókkal, a Olé Hosting a legszűkebb, biztonságos alapértelmezést használja (Központi-only, mintha sima, nem-azonosított user kérdezne).

Döntés (2026-07-07): Gemini elfogadva érzékeny adatra is, előszűréssel

A projekt úgy döntött, hogy a Gemini API-t (free tier) használjuk érzékeny/céges tartalomra is, de előfeldolgozó szűrővel a kiküldés előtt. Megépített kétrétegű megoldás:

A
Strukturált szűrő (regex)Gyors, determinisztikus mintaillesztés: jelszó-szerű string, API kulcs formátumok, bankkártyaszám, IBAN, magyar adószám (8-1-2 számjegy), magyar bankszámlaszám, magyar telefonszám (+36/06) — ez a "könnyű" eseteket biztosan elkapja, mielőtt a szabad szöveg egyáltalán eljutna a következő réteghez.
B
Lokális LLM-es szűrő (Ollama, a szerveren belül marad)Egy a szerveren futó, kifelé sosem küldött modell átolvassa a már regex-szűrt szabad szöveget, és kigyomlálja/kitakarja, amit érzékenynek ítél (pl. "ez egy fizetésről szóló bekezdés" jellegű felismerés) — csak a megtisztított szöveg megy ki a Gemini API-nak.
Fontos korlát, amit el kell fogadni: ez a két réteg együtt is csökkenti, nem garantálja nullára a kockázatot — egy szabadszöveges, mintát nem követő érzékeny mondat átcsúszhat. Ezért ajánlott egy kézi "sosem küldhető ki" jelölő mező is minden dokumentumon/darabon, amit a feltöltő vagy admin explicit be tud kapcsolni — ez egy kemény, szoftveres véletlentől nem függő védőháló a legérzékenyebb tartalmakra. Ez a szűrő maga még nincs megépítve — tervezési döntés, a következő fejlesztési kör része lesz.

Mikor fut le melyik réteg — deployra vár

A fenti A+B kétrétegű redakció (regex, majd a lokális kis modell) feltöltéskor mindig, minden dokumentum-darabon lefut, egyszer — ez nem változott. Ha egy kikeresett darabnak valamiért nincs még kész, feltöltéskor elmentett redaktált változata, akkor válaszidőben is lefut rajta a teljes A+B (tehát a lassú, modellhívós B réteg is) — ez az alapértelmezés, vagyis a biztonságosabb viselkedés. Mivel egy kérdéshez már 12 darab kerül kikeresésre, ez érezhetően lassíthatja a választ, és a kis modell át is fogalmazza a szöveget, mielőtt a válaszoló motor látná. Ezért a Beállítások fülön (szuperadmin) kikapcsolható: ilyenkor válaszidőben csak az A (regex) réteg fut — gyors és nem írja át a szöveget, de csak a fix mintákat (jelszó, API-kulcs, IBAN, bankkártya, adószám, bankszámlaszám, telefonszám) veszi észre, szabad szöveges érzékeny tartalmat nem. A rendszer emellett háttérben, kis kötegekben magától utólag pótolja a hiányzó feltöltéskori redakciót, hogy egyre kevesebb darabon kelljen válaszidőben bármit is futtatni.

5. Tervezett funkciók — még nem élnek

Az alábbiak megbeszélés/tervezés alatt állnak, jelenleg semelyik nincs megépítve. Ez a lista él, ahogy a projekt halad.

Elvetve: Bitrix24 CRM bekötés — a free csomag nem engedi a fejlesztői API-t/MCP-t, a fizetős upgrade nem opció. Kézi CSV-export+feltöltés maradt volna workaroundként, ezt sem választottuk. Facebook Messenger (személyes/csoportos) bekötés is elvetve — ToS-sérő és technikailag instabil lenne.
Túlhaladott terv, ezért törölve a listából: "Csapat-chat (Slack)" — a csapat végül nem Slackre állt át, hanem a Mattermost self-hosted alternatívát választottuk, ami élesben megvalósult, ld. lent.
Elkészült azóta: dokumentumfeltöltés a portálon (fájlok — PDF/DOCX/kép-OCR —, annotációval, opcionális időbélyeggel, feldolgozás-státusszal, feltöltő névvel, újrafeltöltéskor automatikus duplikátum-csere), személyes/központi/korlátozott dokumentum-elkülönítés, weboldal-import (crawl), recency-súlyozott rangsorolás, Integrációk fül + WooCommerce termék/rendelés-szinkron (2026-07-15 óta Központi láthatósággal, mindenki kérdezheti — PPC-elemzéshez, RAG/Tábla/Mindkettő tárolás-móddal + automatikus friss-ha-régi frissítéssel + rendelés-statisztika/top-termékek eszközök az összesítő kérdésekhez), Gmail/Google Workspace szinkron (@mokyen.com + @majomkenyer.hu, garantáltan csak-olvasás, automatikus postafiók-felismerés, 2026-09-04 óta tartalom-alapú reklám/hírlevél-előszűréssel — leiratkozó-link/tömeges fejléc/no-reply feladó/akciós szöveg közül legalább két jel esetén a levél nem kerül feldolgozásra, céges domainről jövő levél soha nem esik ki; Beállításokban kikapcsolható —, RAG + email-statisztika/lista eszközök, Korlátozott láthatósággal), választható Kérdezz-motor (Gemini vagy a cégvezető Claude-előfizetése, mindkettő ugyanazokat az eszközöket éri el — motor-független működés) + napi használat-becslés a Beállítások fülön, Email fül (saját SMTP/Brevo/SendGrid/Resend beállítással, jóváhagyás-köteles + időzíthető küldéssel, óránkénti limittel, teszt-email gombbal, chat-ből induló email-vázlat felismeréssel), nyomdai kép-generáláshoz prompt-író eszköz (Kérdezz-ben és önálló mini-eszközként is), Feladatok fül (korábbi nevén „Egyedi funkciók”: emberi feladatok belépési figyelmeztetéssel + ismétlődő AI-feladatok, mindig emberi jóváhagyást igénylő review-sorral), „🤖 Egyedi funkciók” példány-kapcsolós menücsoport (Gyártástervezés él; Számlák áttöltése előkészítés alatt — ld. 2. pont), 👍/👎 visszajelzés a Kérdezz válaszokra, Mattermost csapat-chat + Olé Hosting bot (self-hosted, chat.okos.ole.hu, DM-ben mindig / csatornában @Olé Hosting említésre válaszol, ugyanazt a tudásbázist/motort használja mint a portál, tagság-alapú jogosultsággal).

PPC-funkció teljes átépítése (2026-09-04): a korábbi "csak DRAFT CSV-t generál, nincs API-kapcsolat" állapot helyett a PPC fül most landing oldalakat (élőben lekérve) és egy WooCommerce/Mattermost/Gmail-ből automatikusan gyűjtött + Gemini/kézi feltöltésből épülő kép-vagyont is bemenetként használ, a hirdetési platformok mért teljesítmény-adatát (ppc_stats_daily) tárolja és statisztika-panelen mutatja, portálon szerkeszthető strukturált kampány-tervet készít (a napi/platform-keretet a szerver kényszeríti ki, nem az AI), és két új, Meta Ads + Google Ads integráción keresztül valódi API-hívással létre tudja hozni a kampányokat — mindig PAUSED állapotban, emberi review-ra várva; alternatívaként a terv egy "átadó csomagként" egy lokális Claude-session számára is átadható. Ez minden felsorolt darabjában élesen fut a szerveren 2026-09-04 óta; a tényleges Meta Ads/Google Ads API-hívások éles hirdetési fiók ellen még nincsenek kipróbálva, amíg valaki ki nem tölti a hozzáférési adatokat az Integrációk fülön. Ugyanezen a napon, később: jóváhagyási kapu került a push elé (kártyánkénti "Jóváhagyom", bármilyen módosítás visszavonja), a napi keret mostantól közös — Meta+Google összesített — HUF-összeg pénznem-ellenőrzéssel, egy "Mi fut most" áttekintő panel + "Mindent leállítok" vészleállító gomb jelent meg a PPC fül tetején, a kép-gyűjtés a fenti három forrásból automatikusan, 12 óránként frissül generálás előtt, és a Google Ads Basic-access kérelem beadásra került (bírálat kb. 5 munkanap, addig a Meta Ads oldal él).