PRICELIO
Atidaryti paiešką

PRICELIO · statybų dienoraštis

Kaip kuriame PRICELIO

Atvirai apie tai, ką jau padarėme, kiek, ir su kokiomis kliūtimis grumiamės. Tai ne marketingas — tiesiog užrašome, kaip iš tikrųjų statomas sąžiningų maisto kainų žemėlapis.

·Klaida ištaisytaNauja funkcijaDuomenys

„Pigiausias bananas" buvo baltyminiai milteliai už 50 eurų — ir kitos šio mėnesio istorijos

Nuo paskutinio įrašo praėjo beveik mėnuo. Šįkart — vienas juokingas bug'as, viena tyliai trūkstanti sutikimo forma, viena kaina, kuri dingdavo per anksti, viena nauja funkcija sezono proga, ir kelios smulkmenos, kurias pastebėjome naršydami po savo duomenų bazę.

„Pigiausias bananas" rodė baltyminį kokteilį

Mūsų „pigiausia" puslapiai naudoja apsaugą nuo šiukšlinių kainų: jei kaina per daug nutolusi nuo kategorijos medianos, ją atmetame kaip tikėtiną duomenų klaidą. Skambėjo protingai, kol nepatikrinome, kas realiai rodoma kategorijose, kur šalia žaliavos prekiaujama daugybe skoninių darinių.

Pasirodė, kad mediana pati būdavo užteršta brangesniais dariniais — todėl tikras pigus bananas (€1,15/kg) atrodydavo „per pigus, tikriausiai klaida" ir buvo atmetamas. Rezultatas: puslapyje „pigiausias bananas" matėte baltyminius miltelius ir energetikos gėrimą, „pigiausi obuoliai" — tik sultis ir actą, o „pigiausi kiaušiniai" kartą parodė plaukų kondicionierių su kiaušinių tryniais. Tikro žaliavinio produkto tarp rezultatų nebuvo nė vieno.

Pataisėme apsaugą 10 kategorijų (bananai, obuoliai, morkos, agurkai, kiauliena, jautiena, vištiena ir kt.) ir kruopščiai išplėtėme kiekvienos kategorijos išimčių sąrašą. Dabar „pigiausias bananas" vėl reiškia bananą.

Prieš įjungdami analitiką, dabar paklausiame leidimo

Peržiūrėdami svetainės kodą pastebėjome, kad lankytojo statistikos rinkimas (Google Analytics) startuodavo iškart, dar prieš bet kokį jūsų pasirinkimą. Techniškai veikė, teisiškai — ne taip, kaip turėtų.

Įdiegėme tinkamą sutikimo mechanizmą (Google Consent Mode v2): statistika lieka išjungta, kol patys nepasirenkate „sutinku". Jei atsisakote arba tiesiog uždarote juostelę nieko nepaspaudę — statistika lieka išjungta visam laikui, ne tik iki kito atnaujinimo. Pasinaudojome proga ir pataisėme kelis mygtukus, kurie mobiliajame ekrane buvo mažesni, nei rekomenduojama minimali lietimo sritis.

Kaina, kuri dingdavo tą pačią dieną, kai baigdavosi akcija

Radome elgesį, kuris atrodė kaip funkcija, bet buvo klaida: kai akcijos galiojimo laikas pasibaigdavo, produktas iš karto dingdavo iš mūsų rezultatų — net jeigu parduotuvė jį toliau pardavinėja įprasta kaina. Vartotojui tai atrodo taip, lyg prekės apskritai nebūtų, nors ji tiesiog nebe akcijoje.

Įdiegėme mechanizmą, kuris tokiu atveju perkelia paskutinę žinomą kainą į produkto puslapį su aiškia žyma „Paskutinė žinoma kaina" — vietoj to, kad prekė tiesiog dingtų iš akiračio. Nuo įdiegimo dienos šis mechanizmas jau apsaugojo beveik 4 900 pasiūlymų, ir toliau veikia automatiškai kiekvieną dieną, ne tik vienkartiniam pataisymui.

Naujiena: kada pigiausia pirkti sezoninius vaisius

Prie kainų kitimo puslapių (/lt/kainos/*) pridėjome du naujus: nektarinus ir apelsinus. O prie visų puslapių, įskaitant jau veikusius obuolius, pridėjome naują sakinį — kurį mėnesį per stebėtą laikotarpį produktas PRICELIO tinkluose vidutiniškai buvo pigiausias, o kurį — brangiausias. Tai ne prognozė ir ne bendra teorija apie sezoniškumą, o faktas iš mūsų pačių duomenų.

Sąžiningumo dėlei — tai nėra ūkininkų ar didmeninės supirkimo kainos palyginimas su mažmenine. Tokių duomenų šiuo metu nerenkame ir nerodysime, kol jų neturėsime tikrų.

10

kategorijų su pataisyta „pigiausia" apsauga

~4 900

kainų apsaugota nuo per anksti dingimo

2

nauji kainų kitimo puslapiai

v2

slapukų sutikimo standartas

Be to — kelios smulkmenos iš duomenų bazės

Kartais tiesiog atsisėdame prie savo duomenų bazės pažiūrėti, kas joje įdomaus. Brangiausias vienetas visame mūsų kataloge — ne televizorius, ne baldas, o raudonos šviesos terapijos lempa iš Gintarinės vaistinės, 1 389 €. Antroje vietoje — kitas tos pačios kategorijos prietaisas, 1 069 €. Panašu, kad biohacking Lietuvoje jau nebe nišinis reikalas, jei vaistinės jam skiria lentynos vietą. Kitame kraštutinume — injekcijos adata už 7 centus ir viena skinta gėlė (kardelis) Iki parduotuvėje už 9 centus.

Suskaičiavome ir tai: iš ~95 800 dabar galiojančių kainų 28 036 (29 %) baigiasi „,99", o apvalių (,00) — tik 1 065, mažiau nei 1,2 %. Tai reiškia, kad ,99 kaina pasitaiko 26 kartus dažniau nei apvali. Psichologinė kainodara — žinomas reiškinys, bet nesitikėjome, kad jis toks visa apimantis.

Ir dar vienas radinys: ieškodami kito dalyko atsitiktinai paleidome užklausą, kurios prekės pavadinimas ilgiausias. Rezultatas — 386 simbolių „pavadinimas", kuris prasideda žodžiu „Aprašymas:" ir toliau vardija visą dešrelės sudėtį — kiaulieną, sojos baltymų izoliatą, dažiklį E120, konservantą E250 — ir baigiasi gamintojo pavadinimu. Vienas iš mūsų duomenų šaltinių kažkada supainiojo „pavadinimo" ir „sudėties" laukus, ir taip jis ir liko. Užsirašėme pataisyti.

Kaip visada — jei pastebėjote ką nors, kas atrodo neteisingai ar pasenę, parašykite mums (žr. kontaktus apačioje). Šis dienoraštis egzistuoja būtent tam, kad būtume atsakingi patys sau.

·Klaida ištaisytaAI matomumasDuomenys

Radome klaidą, dėl kurios Google galėjo išmesti visą svetainę — ir dar keturias, kurių nesimatė niekur

Šiandien ketinome pataisyti vieną dalyką, o galiausiai pataisėme penkis. Visi turi bendrą bruožą: nė vienas nesimatė. Jokio klaidos pranešimo, jokios raudonos lemputės — puslapiai atsidarydavo, skaičiai rodėsi, viskas atrodė gerai. Būtent tokios klaidos ir yra pavojingiausios.

Robotui rodėme vieną puslapį, žmogui — kitą

Mūsų serveryje buvo taisyklė, kuri tikrindavo, kas prašo produkto puslapio. Jei prašė Google robotas — atiduodavo pilną puslapį su visa informacija. Jei prašė žmogus — atiduodavo beveik tuščią karkasą, kurį po to užpildydavo naršyklė.

Techniškai tai veikė. Problema ta, kad Google tokį elgesį vadina cloaking (turinio slėpimu) ir laiko vienu sunkiausių pažeidimų — nes taip įprasta apgaudinėti paieškos sistemas, rodant joms gražesnį turinį nei tikriems lankytojams. Bausmė taikoma ne vienam puslapiui, o visam domenui. Mūsų atveju tai lietė apie 77 700 produktų puslapių, ir taip buvo ne vieną mėnesį.

Blogiausia, kad to nesimatė absoliučiai niekur: abu atsakymai buvo sėkmingi, įrašai serverio žurnaluose — švarūs. Vienintelis būdas pastebėti — paprašyti to paties adreso du kartus, apsimetant skirtingais lankytojais, ir palyginti, kas atėjo. Dabar tai daro automatinė patikra kiekvieną rytą.

Ištaisyta: dabar visi — ir žmonės, ir robotai — gauna tiksliai tą patį puslapį. Patikrinome keturiais skirtingais robotų vardais: atsakymai sutampa iki baito.

Beveik 20 000 prekių be nuotraukų — nes du „rinkėjai" jų neėmė

Google turi atskirą ataskaitą apie prekių sąrašus, ir joje kabojo priekaištas: daug mūsų prekių neturi nuotraukos. Ilgai atrodė, kad tai tiesiog duomenų spraga, su kuria nieko nepadarysi.

Pasirodė kitaip. Iš 13 tinklų šeši turėjo nuotraukas visoms prekėms, o beveik visas trūkumas susitelkė dviejuose: mūsų programos, renkančios jų duomenis, nuotraukų tiesiog neimdavo — ne todėl, kad jų nebūtų, o todėl, kad niekas neparašė kodo joms paimti. Kai šešios iš trylikos parduotuvių turi 100 %, kaltas jau ne šaltinis.

Vienam iš jų paaiškėjo dar geriau: nuotraukos adresą galima sudėlioti iš prekės kodo, kurį jau turėjome. Tai reiškė, kad senų prekių nereikia iš naujo aplankyti — užteko sudėlioti adresus ir patikrinti, ar jie tikri. Rezultatas: nuotraukų turi 95 % prekių vietoj 73 %, o 16 104 nuotraukos atsirado per vieną vakarą.

Pakeliui buvo spąstai, verti atskiro paminėjimo: tam tinklui neegzistuojančios nuotraukos adresas grąžina ne klaidą, o tuščią pilką paveiksliuką su sėkmės atsakymu. Jei būtume rašę adresus netikrindami, prigrūstume duomenų bazę nuorodų į tuštumą ir Google priekaištą tik paslėptume, o ne išspręstume. Todėl kiekvienas adresas prieš įrašymą buvo patikrintas atskirai.

138 prekės turėjo „nuotrauką", kurios iš tikrųjų nebuvo

Tikrindami radome dar keistesnį dalyką. Kai kurios prekės turėjo įrašytą nuotraukos adresą, bet tas adresas buvo vienas permatomas taškas — techninis pakaitalas, kurį svetainės deda tol, kol tikra nuotrauka dar neužsikrovė. Mūsų programa spėdavo nugriebti būtent jį.

Tai blogiau nei tuščias laukas: tokia prekė apsimeta turinti nuotrauką, todėl nepatenka nei į ataskaitas apie trūkstamas nuotraukas, nei į taisymo sąrašus. Klaida, kuri slepiasi nuo pačios savo matavimo priemonės. Išvalėme ir pastatėme bendrą filtrą visiems duomenų rinkėjams, kad tokie pakaitalai nebepatektų.

Akcijų galiojimo datos, kurių niekas neskaitė

Dalį kainų renkame iš prekybos tinklų lankstinukų PDF formatu. Ant jų parašyta, iki kada akcija galioja — bet mūsų programa tos datos neskaitė visai. Vietoj jos į duomenų bazę rašydavo „galioja nuo šiandien iki šiandien plius dvi savaitės". Tiesiog prasimanytą skaičių.

Dvi pasekmės. Pirma, ta data keliaudavo į duomenis, kuriuos skaito Google ir AI asistentai — vadinasi, jiems skelbėme neteisingą galiojimą. Antra, kadangi kiekvieną naktį data būdavo nauja, sistema kiekvieną kartą sukurdavo naują įrašą tai pačiai prekei vietoj to, kad atnaujintų senąjį. Vienoje parduotuvėje taip susikaupė beveik keturi įrašai vienai prekei.

Dabar datos skaitomos tiesiai iš PDF teksto. Įdomi detalė: pirmiausia bandėme paprašyti dirbtinio intelekto perskaityti datą iš lankstinuko vaizdo — ir jis suklydo, nurodydamas rugpjūčio 8-ąją ten, kur dokumente juodu ant balto parašyta „galioja 2026 08 02 – 08 22". Tokia tyli klaida būtų per anksti „užmušusi" dar galiojančias akcijas. Todėl pagrindiniu šaltiniu palikome patį PDF tekstą, o dirbtinį intelektą — tik atsarginiu variantu tiems lankstinukams, kurie yra nuskenuoti kaip paveikslėliai.

Sutvarkėme ir palikimą: 1 119 įrašų su prasimanytomis datomis. Kainos juose buvo tikros — melagingos tik datos, todėl nieko netrynėme. Nė viena prekė nedingo.

Ir mūsų pačių puslapyje kabojo neteisingi skaičiai

Pagrindiniame puslapyje rodome, kiek turime prekių, kainų ir tinklų. Naršyklėje tie skaičiai teisingi — juos atnaujina programėlė. Bet paieškos robotai ir AI asistentai tokių programėlių nevykdo: jie mato tik tai, kas įrašyta puslapio kode. O ten buvo likę seni skaičiai: „44,9 tūkst. prekių", nors realiai turime 74,7 tūkst., ir „259 mln. kainų", nors turime 249 mln.

Vienas skaičius buvo per mažas beveik perpus, o kitas — didesnis, nei turime iš tiesų. Antrasis blogesnis: tai jau ne kuklumas, o pagyrimas, kurio nepadengia duomenys. Ištaisėme abu ir pridėjome patikrą, kuri kasdien lygina puslapyje skelbiamus skaičius su tikraisiais — ir įspėja iškart, jei kada nors vėl pasakytume daugiau, nei turime.

Naujas puslapis: atviri duomenų kokybės skaičiai

Visa tai paskatino padaryti tai, ką seniai žadėjome. Nuo šiandien veikia puslapis Duomenų kokybė: kiek prekių turime kiekviename tinkle, kokia nuotraukų danga, kada paskutinį kartą sėkmingai atnaujinome kainas. Skaičiai imami tiesiai iš duomenų bazės, todėl pasenti negali.

Svarbiausia jame — skiltis „Ko nežinome". Ten surašyta, kur mūsų ribos: kad rodome kainą tinkle, o ne konkrečioje parduotuvėje; kad Aibės kainos yra orientacinės, nes tai kooperatyvas; kad kai kurių lankstinukų galiojimo datos tiesiog neatspausdintos, ir tada mes jų nerodome, o ne spėjame. Manome, kad tai naudingiau nei gražus apvalus skaičius.

Tuo pačiu atsirado ir Apie mus puslapis — anksčiau nuoroda į jį vedė į niekur.

Bendra šios dienos pamoka: blogiausias gedimas ne tas, kuris krenta garsiai, o tas, kurio nesimato. Todėl kiekvienai iš šių klaidų pridėjome automatinę patikrą — ne tam, kad ištaisytume šiandien, o tam, kad kitą kartą sužinotume patys, o ne iš pasekmių.

·Klaida ištaisytaMobilioji versijaSaugumas

Viena parduotuvė Panevėžyje 94% laiko „laimėdavo" prieš visą Lietuvą — ir kitos šios savaitės istorijos

Ši savaitė buvo iš tų, kai pradedi tikrinti vieną dalyką, o randi tris kitus, apie kuriuos net negalvojai. Keturios istorijos — nuo linksmos duomenų keistenybės iki to, kas kasdien vyksta bet kurio viešo serverio „užnugaryje", apie ką dauguma vartotojų niekada negalvoja.

94% laimėjimų — viena parduotuvė, viename mieste

Mūsų pagrindiniame puslapyje buvo blokas „šiandienos geriausia kaina" — vienas produktas, viena parduotuvė, kaip vitrina visai Lietuvai. Pažiūrėję į duomenis atidžiau, pastebėjome keistą dalyką: tą patį, mažai kam girdėtą tinklą — tiksliau, vieną vienintelę jo parduotuvę Panevėžyje — vitrina rodydavo kaip „laimėtoją" beveik visada: 912 kartų iš 967 galimų produktų palyginimų.

Pirma mintis — klaida duomenyse. Patikrinome rankiniu būdu: bulvės ten tikrai kainavo apie 1 € už kilogramą, obuoliai — apie 1,30 €. Kainos tikros, ne klaidingai nuskaitytos. Tiesiog ta viena parduotuvė realiai turi labai žemas kainas. Problema kita: vitrinos, skirtos visai Lietuvai, prasmė dingsta, kai 99 iš 100 žmonių, kurie ją mato, fiziškai negali ten nuvažiuoti nusipirkti. Tai tas pats, kaip skelbti „geriausias restoranas mieste", jei jis įsikūręs kitame mieste už 200 km.

Sprendimas paprastas: pridėjome taisyklę, kad šiam vienam, visai Lietuvai skirtam blokui rodomi tik tinklai, turintys bent kelias parduotuves. Paprastoje paieškoje ta Panevėžio parduotuvė niekur nedingo — jei kažkas ieško konkrečiai jos kainų, jas tebematys. Tiesiog pirmas įspūdis dabar rodo kažką, ką realiai galima nueiti ir nusipirkti, o ne statistinį kuriozą.

Kodėl matome, kad Graikija mus atranda geriau nei Lietuva

Peržiūrėjome, kaip žmonės mus randa per Google per pastarąsias 13 savaičių. Rezultatas: paieškos parodymų skaičius augo nuo ~50 per savaitę iki beveik 2 800 per savaitę — apie 50 kartų. Bet nustebino kitkas: Graikijos versija (pricelio.app/gr) rodoma Google paieškoje geriau nei lietuviškoji, nors Graikijoje realiai veikiame tik su vienu tinklu (pilotinis etapas), o Lietuvoje — su 13. Tikslaus atsakymo, kodėl taip, dar neturime — greičiausiai skiriasi konkurencija paieškos rezultatuose tarp šalių. Bet tai rodo, kad turime realų, dar neišnaudotą potencialą Graikijoje, jei kada nuspręsime ten plėstis rimčiau.

Telefone paieškos laukelis kartais tiesiog „iškrisdavo" už ekrano

Atsidarę kategorijų puslapį telefone, kai kurie iš jūsų būtumėte pamatę, kad viršuje esantis paieškos laukelis netelpa į ekraną — tekstas apkarpytas, mygtukas kažkur už matomos srities ribos. Priežastis buvo viena trūkstama CSS eilutė, bet efektas buvo realus: vietoj pilno „Ieškoti..." matei tik pusę žodžio. Ištaisėme ir patikrinome ne teoriškai, o realiu telefono ekrano dydžiu naršyklėje. Taip pat pašalinome ilgoką įžangos animaciją, kuri kiekvienam naujam apsilankymui kelias sekundes neleisdavo pasiekti jokio turinio — gražu pirmą kartą, erzina kiekvieną kitą.

Kas realiai vyksta „už kulisų": robotai, kurie tikrina KIEKVIENĄ svetainę internete

Kiekviena viešai pasiekiama svetainė internete (ne tik mūsų) nuolat gauna automatinių, robotų vykdomų užklausų, kurios bando atspėti, ar ten „paliktos atrakintos durys". Konkrečiai — šie robotai bando atsisiųsti failus, kuriuose KARTAIS (per neatsargumą) būna paliktos slaptažodžių ar prisijungimo informacijos kopijos: pavyzdžiui, failą pavadinimu .env (kuriame paprastai saugomi serverio slaptažodžiai), arba seną duomenų bazės atsarginės kopijos failą, kurį kas nors užmiršo ištrinti. Jei toks failas TIKRAI būtų viešai pasiekiamas, radęs jį robotas galėtų sužinoti prisijungimo duomenis prie mūsų sistemų.

Tai NĖRA ataka konkrečiai prieš PRICELIO — tokie robotai vienu metu „beldžiasi" į milijonus svetainių visame pasaulyje, ieškodami bet ko, kas palikta neuždaryta. Mes patikrinome dešimtis skirtingų adresų: ar tokie failai pas mus pasiekiami. Atsakymas — ne, viskas užrakinta, kaip ir turi būti. Bet pasinaudojome proga patobulinti savo automatinę stebėjimo sistemą: anksčiau ji pastebėdavo tik tuos robotus, kurie bombarduoja svetainę labai dažnai per trumpą laiką. Dabar ji taip pat iškart atpažįsta ir tuos, kurie veikia lėtai bei kantriai, tikslingai ieškodami būtent tokio tipo failų — tokie anksčiau galėjo likti nepastebėti savaitėmis.

Trumpai: nieko blogo neatsitiko, niekas nebuvo pasiekęs jokių duomenų — tiesiog panaudojome progą apsauga padaryti aiškesnę ir greitesnę.

Kaip visada — jei pastebėjote ką nors, kas atrodo neteisingai ar pasenę, parašykite mums (žr. kontaktus apačioje). Šis dienoraštis egzistuoja būtent tam, kad būtume atsakingi patys sau.

·Klaida ištaisytaNauja funkcijaInfrastruktūra

26 657 produktai tyliai „dingo" iš paieškos — ir kaip juos susigrąžinome

Ši savaitė buvo didelio „pavasarinio tvarkymo" savaitė — atidžiai peržiūrėjome duomenų bazę ir paiešką, ir radome kelis dalykus, kurie tikrai nustebino net mus pačius.

26 657 tikri produktai buvo tapę „nematomi"

Radome techninę klaidą, dėl kurios dalis produktų, kurių kainos realiai buvo atnaujinamos kasdien, paieškoje pradėjo atrodyti kaip pasenę — ir dėl to tyliai išnyko iš rezultatų, nors patys duomenys buvo geri. Priežastis — vienas laukelis duomenų bazėje, kuris turėjo atsinaujinti kartu su kaina, bet to nedarė. Ištaisius šią klaidą, 26 657 produktai iškart grįžo į paiešką. Tai nebuvo nauji produktai — jie visą laiką ten buvo, tiesiog nematomi.

„Vaiduokliai" duomenų bazėje: 28 000+ produktų be jokios kainos

Priešinga problema — radome kitą techninę klaidą, dėl kurios kartais būdavo sukuriamas produkto įrašas be JOKIOS realios kainos prie jo (tarsi kortelė be turinio). Per laiką tokių susikaupė daugiau nei 28 000. Jie niekam nekenkė (nebuvo rodomi vartotojams), bet užėmė vietą ir darė duomenų bazę netvarkingesnę, nei turėtų būti. Ištaisyta ir išvalyta.

Paieška: nuo beveik 7 sekundžių iki 8 milisekundžių

Vienas konkretus paieškos užklausos tipas užtrukdavo apie 6,7 sekundės — pakankamai ilgai, kad būtų jaučiama. Pridėjus tinkamą duomenų bazės indeksą (techninis sprendimas, leidžiantis duomenų bazei „žinoti iš anksto", kur ieškoti, o ne tikrinti kiekvieną įrašą po vieną), tas pats užklausimas dabar užtrunka 8 milisekundes — apie 800 kartų greičiau.

Naujas būdas naršyti kategorijas — vizualiai

Senoji kategorijų sistema buvo susidėjusi iš dviejų nesusijusių, dubliuotų sąrašų, kurie realiai niekada nebuvo susieti su tikrais produktais duomenų bazėje. Sukūrėme naują, nuo nulio: 35 pagrindinės kategorijos su beveik tūkstančiu subkategorijų — iš jų 784 šiuo metu turi bent po vieną realų produktą ir yra matomos naršant (likusios liks tuščios tol, kol scraperiai atras joms tinkamų prekių — sistema jas automatiškai paslepia, kol taip neatsitiks). Puslapyje /kategorijos dabar galite naršyti vizualiai — paspaudus kategoriją, atsiveria jos subkategorijos kaip interaktyvus medis.

Rasta parašyta, bet niekada nepaleista

Peržiūrėdami senesnį kodą, radome pilnai parašytą Norfa lankstinukų nuskaitymo įrankį, kuris techniškai veikė, bet niekada nebuvo įjungtas automatiniam kasdieniam paleidimui — tiesiog užmirštas. Patikrinome, kad veikia teisingai, ir įjungėme.

Kaip visada — jei pastebėjote ką nors, kas atrodo neteisingai ar pasenę, parašykite mums (žr. kontaktus apačioje). Šis dienoraštis egzistuoja būtent tam, kad būtume atsakingi patys sau.

·PetrAItisDuomenysAI matomumas

PetrAItis paleistas, pasenusios kainos išvalytos, ir kodėl dabar AI asistentai gali tiksliau atsakyti apie PRICELIO

Dvi savaitės be įrašo — bet ne todėl, kad nieko nevyko. Trys dalykai, kuriuos verta papasakoti.

PetrAItis — pirmas AI asistento prototipas svetainėje

Paleidome PetrAItis — testinį AI apsipirkimo asistentą svetainėje. Paklausk jo apie kainas ar prekes, ir jis atsako remdamasis mūsų realia, gyva kainų duomenų baze — ne bendromis AI žiniomis. Tai siauras v1 (be balso, be atminties tarp pokalbių, be receptų planavimo) — tiesiog norėjome patikrinti, ar toks pokalbio formatas apskritai naudingas, prieš statant ką nors didesnio.

Pasenusios kainos, kurios atrodė kaip aktualios — ištaisyta

Radome, kad dalis mūsų rodomų „dabartinių" kainų iš tikrųjų buvo kelių mėnesių senumo — kai kurių tinklų pasiūlymai iš kovo–balandžio vis dar buvo žymimi kaip galiojantys, nes niekas jų formaliai neuždarė. Pridėjome amžiaus filtrą (įprastoms kainoms — iki 21 dienos, lankstinukų akcijoms — iki 45 dienų), tad dabar rodoma tik tikrai šviežia informacija, o ne tylūs „zombiai" duomenų bazėje. Katalogo rodomas dydis dėl to sumažėjo — tai sąžiningumo, ne regreso, ženklas.

AI paieškos asistentai (ChatGPT, Perplexity, Gemini) dabar gauna tikslesnę informaciją

Vis daugiau žmonių klausia kainų klausimų tiesiai AI asistentų, ne Google paieškoje. Patikrinome, ką šie asistentai iš tikrųjų „žino" apie PRICELIO — ir radome, kad jie naudojo pasenusius skaičius (senesnį tinklų skaičių, senesnį produktų kiekį). Atnaujinome mašinoms skirtą informaciją (llms.txt, structured data/schema.org žymėjimą) tikrais, šviežiais skaičiais, kad kai kas nors paklausia AI asistento apie pigiausią pieną Lietuvoje, jis gautų teisingą, ne pasenusį atsakymą.

Kaip visada — jei pastebėjote ką nors, kas atrodo neteisingai ar pasenę, parašykite mums (žr. kontaktus apačioje). Šis dienoraštis egzistuoja būtent tam, kad būtume atsakingi patys sau.

·Duomenys

Ką atskleidžia mūsų duomenys: Nutri-Score lentynose ir ta pati Coca-Cola už skirtingą kainą

Kartkartėmis šiame dienoraštyje rašome apie tai, ką sutvarkėme. Šįkart — apie tai, ką patys pastebėjome, žiūrėdami į savo duomenų bazę. Nieko techninio, tiesiog du dalykai, kurie mums patiems pasirodė įdomūs.

Nutri-Score: dauguma lietuviškų prekių — C arba D

Įvertinome Nutri-Score (europinę maisto sveikumo žymą A–E) 14 013 produktams, kuriems turime pakankamai mitybos informacijos. Rezultatas — nelabai glostantis vaizdas: tik kas šešioliktas produktas gauna aukščiausią A įvertinimą, o dauguma sutelkta ties C ir D.

6,2%

A — 869 produktai

16,6%

B — 2 325 produktai

26,8%

C — 3 753 produktai

32,7%

D — 4 579 produktai

17,7%

E — 2 487 produktai

Tai nereiškia, kad Lietuvoje nėra ką sveikai valgyti — reiškia, kad parduotuvių lentynose apdorotų, aukštos D/E žymos produktų (saldainiai, gazuoti gėrimai, greito paruošimo užkandžiai ir pan.) tiesiog fiziškai daugiau nei šviežių, mažai apdorotų prekių, o Nutri-Score skaičiuojamas būtent apdorotiems produktams su etikete. Ateityje planuojame filtrą „rodyti tik A/B" pagrindinėje paieškoje.

Ta pati Coca-Cola, 5 tinklai, iki 19% kainų skirtumas

Vienas iš mūsų automatinio produktų sulyginimo (match_key) privalumų — galime tiesiogiai palyginti identišką prekę tarp tinklų, ne tik pagal kategoriją. Coca-Cola 1,5 l šiandien — geras pavyzdys:

  • Express Market — 2,15 € (pigiausia)
  • Intermarket — 2,39 €
  • Maxima — 2,49 €
  • Rimi ir Iki — 2,55 € (brangiausia)

19% skirtumas už identišką butelį tos pačios gazuoto gėrimo — nedaug, bet parodo, kodėl apsipirkimo įprotis „visada tas pats tinklas" ne visada atsiperka net paprasčiausiems produktams, ne tik akcijoms.

Kaip visada — šie skaičiai iš mūsų gyvos duomenų bazės tą dieną, kai rašėme įrašą (2026-07-08), o ne iš atrankinės apklausos ar reklamos. Produktų sulyginimo (match_key) sistema šiuo metu teisingai sujungia ~60% produktų tarp tinklų — likusiems tikslesnį sulyginimą dar tobuliname (žr. 2026-06-17 įrašą).

·Nauja funkcijaKlaida ištaisyta

Vaistinių katalogai išaugo kelis kartus, o krepšelis išmoko planuoti maršrutą

Savaitė, per kurią paaiškėjo, kad dalies vaistinių kainas rodėme tik iš mažos katalogo dalies — ir tai ištaisius, produktų skaičius šoktelėjo kartais, ne procentais.

Gintarinė: iš 3 100 produktų į 14 300

Ilgą laiką manėme, kad Gintarinės vaistinės kataloge sekame didžiąją dalį prekių. Pasirodė, kad realus katalogas yra beveik 5 kartus didesnis, nei rinkome. Pataisėme duomenų rinkimo procesą ir dabar kasdien atnaujiname 14 315 produktų — be nė vienos klaidos per pilną paleidimą. Trūkstami produktai anksčiau pasirodė esą „Išparduota" būsenos (jų kainų rodyti ir nereikia).

Camelia: paslėpta 85% spraga

Camelia akcijų kataloge rodėme mažiau nei penktadalį tinklo pasiūlymų — tik ~1 450 prekių iš galimų. Priežastis buvo per griežta stabdymo logika, kuri suveikdavo per anksti. Pataisius, katalogas išaugo iki 4 149 produktų — beveik triskart daugiau.

Kainų „vaiduokliai" dabar valomi automatiškai kasdien

Birželio pabaigoje rašėme apie milijonus pasenusių kainų įrašų, kuriuos išvalėme rankiniu būdu. Šią savaitę tą pamoką pavertėme sistema: kasdien vidurdienį veikia automatinis valymo procesas, kuris archyvuoja nebeaktualius įrašus pagal aiškias taisykles (pvz., jei tinklas prekės nebeatnaujino per protingą laiką). Pirmasis paleidimas sutvarkė 50 716 įrašų per 18 minučių, netrukdydamas paieškai. Tai reiškia, kad „vaiduokliai" nebesikaupia — švara palaikoma be žmogaus įsikišimo.

Krepšelio optimizatorius: „važiuok į X, sutaupysi Y €"

Iki šiol krepšelio optimizavimas mokėjo palyginti daugiausiai dvi parduotuves. Dabar sistema sudaro pirkinių planą per kelias parduotuves (iki 3–4), įvertindama realius atstumus nuo jūsų vietos ir trumpiausią žiedinį maršrutą namai → parduotuvės → namai. Svarbiausia — pridėjome sveiko proto slenkstį: papildoma parduotuvė siūloma tik tada, kai grynasis sutaupymas (jau atskaičius kelionės kaštus) yra pakankamas. Sistema nesiūlys važiuoti 15 km dėl 50 centų. Atsakymo laikas — mažiau nei ketvirtis sekundės, koordinates turi 3 176 iš 3 202 parduotuvių.

×4,6

Gintarinės katalogas (3,1k → 14,3k)

×2,9

Camelia katalogas (1,4k → 4,1k)

50 716

įrašų sutvarkė pirmas auto-valymas

≤4

parduotuvės viename pirkinių plane

·Klaida ištaisytaInfrastruktūra

„Pigiausių produktų" puslapiai: atnaujintos kainos ir teisingesnės kategorijos

PRICELIO turi specialius puslapius, skirtus dirbtiniam intelektui — kai kas nors klausia „kur pigiausiai pirkti pieną Lietuvoje?", šie puslapiai pateikia tikslų atsakymą su kainomis iš visų tinklų. Šiandien radome dvi klaidas, kurias nedelsiant ištaisėme.

Problema nr. 1: kainos nebuvo atnaujinamos mėnesį

Kiekvieną dieną 07:30 turėjo veikti automatinis procesas, kuris perskaičiuoja geriausias kainas visose 36 kategorijose. Paaiškėjo, kad nuo birželio 5 d. jis tyliai neveikė — žurnalo failas buvo sukurtas sistemos administratoriaus teisėmis, todėl įprastas procesas negalėjo į jį rašyti ir paprasčiausiai nusitraukdavo. Pasekmė: visų kategorijų kainos buvo mėnesio senumo. Klaidą ištaisėme, proceso teises normalizavome, kainos dabar atnaujintos.

Papildomai pastebėjome antrą, subtilesnę problemą: procesas apdoroja 36 kategorijas paeiliui, kiekvienai užtrukdamas nuo kelių sekundžių iki 10+ minučių — bendra trukmė siekė 2-3 valandas. Penkios paskutinės sąraše esančios kategorijos (sausainiai, saldainiai, druska, grikiai, vynas) niekada nebūdavo pasiektos per vieną paleidimą ir stovėjo neatnaujintos nuo birželio 4 d. Pridėjome dienos rotaciją — kiekvieną dieną procesas pradeda nuo skirtingos vietos sąraše, kad visos kategorijos gautų sąžiningą šansą atsinaujinti.

„Pigiausia" žymė kartais rodė ne patį pigiausią tinklą

Produkto puslapyje ir palyginimo lentelėse „Pigiausia" žymė buvo priskiriama pagal reguliarią kainą (price_value), ignoruojant akcijų ar lojalumo kortelės kainą. Pavyzdys: jei parduotuvė A turėjo reguliarią kainą 0,65€, o parduotuvė B — akcijos kainą 0,39€, sistema vis tiek rodydavo A kaip pigiausią, nes lygino tik reguliarias kainas. Klaida buvo keliose vietose vienu metu — produkto detalių puslapyje, paieškos rezultatuose, brūkšninio kodo paieškoje ir palyginimo lentelėje. Visur perėjome prie efektyvios kainos (akcija → lojalumo kaina → reguliari kaina, pirma rasta), tad dabar „Pigiausia" tikrai reiškia pigiausia.

Problema nr. 2: netinkami produktai kategorijose

Paieška kategorijoms naudoja teksto paiešką pagal pavadinimą. Pasirodė, kad lietuviška morfologija sukuria netikėtų problemų:

  • „Alus" — paieška %alus% rasdavo ir mineralinį vandenį (natur alus), ir medicininius indelius (univers alus). Pataisėme naudojant žodžio ribų paiešką — dabar randa tik tikrą alų.
  • „Kava" — rodė kakavą, oro gaiviklius su kavos aromatu ir grietinėlę kavai. Kakava ≠ kava. Pridėjome išimčių sąrašą.
  • „Vištiena" — kategorijoje dominavo greito paruošimo sriubos „vištienos skonio" (39 ct paketėliai). Pagal absoliučią kainą jos „pigiausios", bet tikra vištiena EUR/kg yra pigesnė. Išskyrėme „skonio" produktus iš kategorijos.
  • „Morkos" — pirmose vietose buvo morkų sėklų paketėliai (15 ct), ne tikros morkos. Sėklos dabar filtruojamos.
  • „Sultys" — sutrumpinimas „sult." produktų pavadinimuose (pvz., instant makaronų sriubos) atitikdavo sultims skirtą paiešką. Ištaisyta.

Apsaugos sistema: klaidingas įspėjimas

Serverio apsaugos sistema (PDS) išsiuntė Telegram žinutę apie neplanuotą sistemos failų pasikeitimą. Išsiaiškinome, kad tai buvo klaidingas įspėjimas — sistema kažkada užfiksavo tuščią etaloną, o kitą kartą palaikė standartinius, operacinės sistemos dalimi esančius failus „naujais". Realaus saugumo incidento nebuvo. Etalonas atnaujintas, apsauga stebi toliau.

36

kategorijos atnaujintos šiandien

~26 d.

tiek senų kainų buvo kainų puslapiuose

5

kategorijos su pataisyta paieška

0

tikrų saugumo incidentų

·Klaida ištaisytaInfrastruktūra

Kainų duomenų valymas: kaip 20 milijonų tapo 13 milijonais

Šią savaitę pastebėjome, kad aktyvių kainų įrašų skaičius neįprastai šoko aukštyn — beveik iki 20 milijonų. Tai buvo klaida, ne augimas. Papasakojame, kas atsitiko ir kaip pataisėme.

Kas nutiko

Kiekvienas kainų įrašas duomenų bazėje turi unikalumo taisyklę: ta pati prekė toje pačioje parduotuvėje su tuo pačiu galiojimo laiku neturėtų būti įrašyta du kartus — ji turėtų atsinaujinti. Tačiau du iš mūsų skraperių (IKI ir Maxima) kiekvieno paleidimo metu keitė datos lauką, kuris yra unikalumo taisyklės dalis. Rezultatas: vietoj atnaujinimo sistema kasdien kūrė naują eilutę. Per keletą mėnesių susikaupė ~6 mln dublikatų IKI ir ~8 mln Maxima.

Paprasčiau: turėjome „vaiduoklius" — senus kainų įrašus, kurie techniškai buvo aktyvūs, bet jau seniai nebeaktualūs.

Kaip pataisėme

Pataisėme kodo klaidą pačiuose skrapuotuvuose — dabar datos laukas nekeičiamas, kai realios datos nežinome. Tada rankiniu būdu išvalėme ~6,5 mln dublikatų iš duomenų bazės. Papildomai sukūrėme naktinį valymo procesą, kuris automatiškai tvarko tokius atvejus ateityje.

19,8 mln

įrašų prieš valymą

13,5 mln

įrašų po valymo

~6,3 mln

pašalinta dublikatų

1,00

IKI dublikatų rodiklis (buvo 1,64)

Ką tai reiškia jums

Kainų paieška dabar grąžina švaresnius rezultatus — mažiau senų, nebeaktualių kainų. Tikri aktyvūs įrašai yra ~13,5 mln, o ne 20 mln kaip rodė anksčiau. Skaičius mažesnis, bet patikimesnis.

Pastaba apie statistikas: Postgresql duomenų bazių lentelių eilučių skaičius gali būti netikslus po masinio šalinimo (sistema laiko „vietą" ištrintoms eilutėms). Tikslūs skaičiai atsistato po naktinio optimizavimo proceso.

Kas dar pataisyta šią savaitę

  • IKI LastMile katalogo atnaujinimas — kartais nutrūkdavo pusiaukelėje per ilgą duomenų atsiuntimą. Padidinome laiko limitą ir pridėjome automatinį pakartojimą.
  • Rimi skraperis — kai Rimi serveris grąžina 503 klaidą (laikinas perkrovimas), sistema dabar automatiškai bandys iki 5 kartų su pertrauka, o ne iš karto nustoja.
  • Čekių skanavimas — AI modelis, kuris atpažįsta produktus iš čekio nuotraukos, pakeistas iš mažesnio (gpt-4o-mini) į pilnavertį (gpt-4o). Tikimės mažiau išgalvotų produktų ir geresnio teksto atpažinimo.
·Programėlė

Mobiloji programėlė — funkcionalumas paruoštas, testuojame prieš viešą leidimą

Paskutinį mėnesį dirbome prie to, ko labiausiai klausėte: mobiliosios programėlės. Visi 13 ekranų veikia ir jungiasi prie gyvo backend'o, techninė patikra švari. Programėlė dar NĖRA viešai atsisiunčiama (nei Google Play, nei App Store) — kol kas testuojame per Expo Go, prieš keliaujant į parduotuves. Pasidalijame, kas veikia, ir kur dar turime darbo.

13

veikiantys ekranai

21/21

techninių patikrų praeita (expo-doctor)

9 MB

maks. kvito nuotraukos dydis

±7 d.

palyginimo langas kainoms

Kas veikia programėlėje

  • Paieška ir kainų palyginimas — ta pati funkcija, kaip svetainėje, bet rankoje. Brūkšninis kodas, produkto pavadinimas, filtras pagal tinklą ar miestą.
  • Vieneto kaina — rodome eur/kg, eur/l, eur/vnt., kad skirtingų pakuočių palyginimas būtų sąžiningas. 0,5L butelis „pigesnis" etiketėje nebūtinai pigesnis litru.
  • Pirkinių krepšelis su optimizavimu — sudedi, ką reikia nupirkti, ir programėlė suskaičiuoja, kurioje parduotuvėje visas sąrašas kainuos mažiausiai.
  • Kvito skenavimas — fotografuoji kvitą, AI atpažįsta prekes, kainas, parduotuvę. Tada patikriname, ar kitoje parduotuvėje buvo pigiau.
  • Išlaidų istorija — matote kiek ir kur išleidote per mėnesį, kuriose parduotuvėse perkate dažniausiai.
  • Kainų įspėjimai — nustatote ribą, kai kaina krenta — pranešame.

Kodėl kvito skenavimas — tai ne tik buhalterija

Standartiniai išlaidų trackeriai rodo, kiek išleidai. PRICELIO atsako į kitą klausimą: ar galėjai išleisti mažiau? Turime 81 mln realių kainų įrašų iš Lietuvos parduotuvių — tai leidžia pasakyti konkrečiai: „šį mėnesį pieną pirkote Maximoje už 1,09€/l, tuo pat metu Norfa pardavinėjo už 0,89€/l". Ne prognozė, o faktas.

Techninė pastaba: produktų atpažinimas

Sulyginti produktus pagal pavadinimą — sunkiau nei atrodo. „Pienas 3,5% 1L" Maximoje gali vadintis „Naminis pienas 3,5% 1000ml" Norfoje. Šiuo metu teisingai atpažįstame apie 60–70% kvito eilučių. Dirbame prie geresnio sulyginto — ypač kai pavadinimas sutrumpintas arba parduotuvės specifinis.

Statusas (2026-06-28): funkcionalumas paruoštas ir testuojamas tiek Android, tiek iOS Expo Go aplinkoje. Iki viešo Google Play/App Store leidimo dar reikia: oficialaus build'o su pasirašymu, store listing'o (App Store papildomai reikalauja Apple Developer registracijos). Konkrečios datos kol kas neskelbiame — atnaujinsime čia, kai bus.

·InfrastruktūraSaugumas

Kaip apsaugome PRICELIO nuo robotų ir įsilaužėlių

Kai svetainė pradeda gauti tikrą srautą, atsiranda ir neprašyti svečiai — robotai, kurie bando masiškai kopijuoti kainas, ir automatiniai įrankiai, kurie bando įsibrauti į serverį. Šią savaitę sukūrėme dvi apsaugos sistemas ir atlikome serverio saugumo auditą.

Anti-scrapinimo sistema

Vienas iš mūsų duomenų tiekėjų pradėjo siųsti per daug užklausų per trumpą laiką — tai reiškia, kad kažkas bando automatiškai kopijuoti kainų duomenis. Sukūrėme stebėjimo procesą, kuris kas 5 minutes tikrina neįprastą srautą ir automatiškai blokuoja pažeidėjus 24 valandoms per Cloudflare. Apie kiekvieną blokavimą gauname pranešimą Telegram.

Prisijungimo apsauga nuo brute-force

Serverio administravimo prieiga nuolat bandoma įsilaužti automatiniais robotais. Įdiegėme stebėjimo sistemą, kuri seka įtartinus bandymus ir automatiškai blokuoja pažeidėjų IP adresus. Apie kiekvieną blokavimą gauname Telegram žinutę su IP adresu ir bandymų statistika.

Serverio saugumo auditas

Peržiūrėjome visą serverio konfigūraciją ir radome bei pataisėme keletą smulkių spragų. Kritinės sistemos dabar stebimos — bet koks neplanuotas pakeitimas sukelia įspėjimą.

24/7

automatinis stebėjimas

real-time

Telegram įspėjimai apie pažeidėjus

·Funkcija

Kainos tarp tinklų: tas pats produktas skirtingais pavadinimais

Vienas iš sunkiausių uždavinių kainų palyginime — suprasti, kad „Pienas 3,5% 1L" Maximoje ir „Naminis pienas 3,5% 1000ml" Norfoje yra tas pats produktas. Šią savaitę paleisime sistemą, kuri šį uždavinį sprendžia automatiškai.

Produktų sulygos sistema (match_key)

Kiekvienam produktui dabar priskiriamas unikalus „raktas", sudarytas iš prekės ženklo, pakuotės dydžio ir matavimo vieneto. Kai du skirtingų tinklų produktai turi tą patį raktą — sistema juos laiko tuo pačiu produktu. Tai leidžia tiesiogiai palyginti kainas tarp Maximos, Lidl, Iki, Rimi ir kitų tinklų net kai produktų pavadinimai skiriasi.

Šiuo metu teisingai sulyginti apie 60% produktų — ypač gerai veikia pienas, jogurtas, aliejus, ryžiai, makaronai. Sunkiau sekasi su šviežia mėsa ir daržovėmis, kur kiekvienas tinklas naudoja savo pavadinimus.

Kainų įspėjimai

Jei sektinas produktas yra duomenų bazėje ir jo kaina nukrenta žemiau nurodytos ribos bet kuriame tinkle — išsiunčiame įspėjimą. Sistema veikia per produktų sulygos sistemą: jei sekate „Pienas 3,5%", gausite įspėjimą net jei kaina nukrenta skirtingame tinkle nei įsigijote paskutinį kartą. Šiuo metu funkcija pasiekiama tik per mobiliąją programėlę (žr. 2026-06-28 įrašą) — viešoje svetainėje dar neįdiegta.

~60%

produktų sėkmingai sulygyti tarp tinklų

90k+

produktai su unikaliu raktu

13

tinklai palyginimui

real-time

kainų įspėjimai

·Infrastruktūra

Ką jau turime — ir kur dar sunku

PRICELIO veikia Lietuvoje. Idėja paprasta: surinkti realias maisto kainas iš kuo daugiau parduotuvių ir parodyti, kur pigiausia. Sunkumas — ne idėjoje, o duomenyse. Štai kur šiandien esame.

13

prekybos tinklai (LT)

2 463

parduotuvės (LT)

~90k

aktyvūs produktai (LT)

13,5 mln

aktyvūs kainų įrašai

Kas jau veikia

  • Kainų rinkimas iš 14 tinklų — prekybos centrai, vaistinės, lankstinukai. Kainos atsinaujina kasdien.
  • Brūkšninių kodų skenavimas ir AI kainų analizė.
  • Paieška su vieneto kaina (eur/kg, eur/l), kad palyginimas būtų sąžiningas, o ne pagal pakuotės dydį.
  • Kainų įspėjimai — gauni žinutę, kai pasirinktas produktas atpinga.

Su kuo grumiamės atvirai

Maiste beveik nėra brūkšninio kodo (EAN). Tikėjomės sulyginti tą patį produktą tarp tinklų pagal kodą — bet maisto puslapiuose jo paprasčiausiai nėra. Teko susikurti savo „pirštų atspaudą" iš prekės ženklo ir pakuotės dydžio.

Prekės ženklo atpažinimas — vis dar didžiausias darbas. Iš ~90 tūkst. produktų dalis ateina be aiškaus prekės ženklo pavadinime. Taisyklėmis pakėlėme aprėptį iki ~64%, o likusią dalį dabar tvarko AI modelis, kuris ištraukia ženklą tik tada, kai tikrai įsitikinęs.

Apsauga nuo blokavimų. Dalis tinklų nemėgsta automatinio rinkimo. Tenka rinkti pagarbiai — lėtai, su pertraukomis.

Senų kainų valymas. Laikui bėgant susikaupė milijonai pasenusių kainų įrašų. Neseniai išvalėme 6+ mln dublikatų ir įjungėme automatinį tvarkymą.

Kodėl tai rašome: tikime, kad kainų informacija — viešas gėris. O jei kažką statome žmonėms, sąžininga parodyti ir tai, kas dar nebaigta.

Kas toliau

  • Mobilioji programėlė (Android jau, iOS — netrukus).
  • PetrAItis — AI pagalbininkas, su kuriuo galėsi tartis, ką gaminti, ir kuris padės sudaryti pirkinių sąrašą pigiausiai.
  • Tikslesnis produktų sulyginas tarp skirtingų tinklų.
·Duomenys

Vaistinės, smulkūs tinklai ir AI paieška: kas naujo birželio pradžioje

Gegužę sutelkėme pajėgas ties pagrindiniais prekybos centrais. Birželio pradžioje pridėjome vaistines ir smulkesnius tinklus, bei paleisime specialius puslapius, skirtus AI paieškos sistemoms.

Vaistinių kainos

Pridėjome tris vaistinių tinklus: Gintarinę, Eurokapteiką ir Camelią. Tai reiškia, kad higienos prekės, papildai ir nereceptiniai vaistai dabar matomi tame pačiame palyginimo langelyje kaip ir prekybos centrų kainos. Vaistinių duomenys atsinaujina kasdien kaip ir visi kiti.

Smulkesni tinklai

Šilas, Moki Veži, Drogas, Intermarket — mažesni tinklai, kuriuose kartais galima rasti geresnę kainą nei dideliuose. Kiekvienas jų pateikia informaciją savaip, todėl kiekvienam reikėjo individualaus sprendimo duomenims surinkti.

Puslapiai AI paieškos sistemoms

Kai kas nors klausia ChatGPT ar Google AI „kur pigiausiai pirkti pieną Lietuvoje?", paprastai gaunamas bendras atsakymas be konkrečių kainų. Sukūrėme specialius puslapius visoms pagrindinėms produktų kategorijoms — pienas, duona, kava, vištiena ir t.t. — su tikromis kainomis iš visų tinklų. Šie puslapiai atsinaujina kasdien ir yra optimizuoti AI sistemų nuskaitymui. Pavyzdys: pricelio.app/lt/pigiausia/pienas.

3

vaistinių tinklai pridėti

4

smulkūs tinklai pridėti

36

produktų kategorijų puslapiai AI

kasdien

kainų atsinaujinimas

Ką dar pažiūrėti