Door Femme Taken

UX Designer

Snelste Pricewatch-prijsdalers - Development-iteratie #88

12-07-2016 • 12:56

104

Onze developers hebben de ontwikkeling van iteratie #88 afgerond. In deze sprint werd aan veel verschillende projecten gewerkt, waaronder Pricewatch Deals, nawerk van de https- en BenchDB-projecten en voorbereidingen voor de upgrade naar php7.

Snelste Pricewatch-prijsdalingen

Aanbiedingentopics behoren al een tijdje tot de populairste topics op het Forum. Om ervoor te zorgen dat je interessante aanbiedingen en prijsdalingen in de Pricewatch nog makkelijker kunt vinden, hebben we op de homepage van de Pricewatch een overzicht van de vier producten met de snelste prijsdalingen toegevoegd. In de komende iteraties gaan we de functionaliteit verder uitbreiden en zullen we al lerende het algoritme verbeteren om prijsdalingen te onderscheiden van prijsfouten in de feeds.

Snelste prijsdalers in de Pricewatch

Https-nawerk

Een maand geleden hebben we de overgang gemaakt naar https en http/2, zodat je nu zonder snelheidsverlies via een beveiligde verbinding kunt gebruikmaken van Tweakers. In de afgelopen drie weken hebben we wat nawerk met betrekking tot dit project uitgevoerd, zoals het aanpassen van url-validators en het weggooien van overbodig geworden functies die controleerden of een pagina veilig was of niet. We hebben de url-generator slimmer gemaakt door meer hostnames toe te voegen waarvan we weten dat ze https ondersteunen en waarvan afbeeldingen niet via onze camouflage-proxy geserveerd hoeven te worden om mixed-contentmeldingen in browsers te voorkomen.

Ook hebben we de subdomeinen static.tweakers.net en secure.tweakers.net opgeheven. De eerste was niet meer nodig omdat we requests voor statische content via de nieuwe loadbalancers naar de juiste server kunnen dirigeren. Secure.tweakers.net dient geen doel meer nu de hele site via een beveiligde verbinding toegankelijk is.

BenchDB-nawerk

We hebben het berekenen van indices in de Benchmark Database voltooid. De redactie kan nu gewogen en geïndexeerde gemiddelden maken om de resultaten van een product in verschillende tests in een enkel getal samen te vatten. Daarnaast werden er wat bugjes gefixt en verbeteringen aangebracht in de workflow van de beheeromgeving, en hebben we de namen van tabellen en kolommen in de database aangepast. Deze reflecteren nu de naamgeving van entiteiten in de nieuwe BenchDB en voldoen aan onze codingstandaarden.

En verder hebben we…

  • voorbereidingen getroffen voor de upgrade naar php7;
  • het automatisch preloaden van video’s in de videoplayer uitgezet om mobiel dataverbruik te beperken;
  • een bug gefixt die verhinderde dat filteren op afstand in Vraag & Aanbod werkte;
  • de wachtwoorden gereset van gebruikers van wie het wachtwoord was uitgelekt via de hack van LinkedIn (zie deze .plan voor meer informatie);

Reacties (104)

104
103
97
2
1
1
Wijzig sortering
Goede ontwikkeling. Wel een kleine vraag:
Misschien kan ik het gewoon niet vinden, maar ik zou graag meer dan 4 resultaten zien bij de grootste prijsdalers. Is hier een aparte pricewatchpagina voor waar je doorheen kan bladeren ?
Kort antwoord: nog niet. Dit is een eerste opzet waarbij vooral het achterliggen algoritme is uitgewerkt. In de komende sprints gaan we bekijken hoe dit gebruikt wordt, wat er beter kan en of er behoefte is aan meer. Als die er is willen we losse listings per categorie gaan maken zodat je per categorie de grootste prijsdalers kunt zien.
Wellicht ook interessant om rekening mee te houden is dat je de % prijsdaling wilt normaliseren met de totaalprijs.

Een product dat van 5,- naar 4,- gaat is in principe minder interessant voor koopjesjagers dan een product dat van 500,- naar 410,- daalt, ook al is dat eerste product procentueel meer in prijs gedaald.

Dit kun je makkelijk implementeren door de nieuwe prijs (of de daling) te vermenigvuldigen (gewogen met een vastgestelde multiplier) met het percentage prijsdaling en dat de 'relevantiescore' te noemen. Door bijvoorbeeld een multiplier van 0.5 te nemen zou een 2x zo goedkoop product dus 2x zo veel (percentueel) moeten dalen dan het andere product om toch als relevanter beschouwd te worden.
Waar je precies die multiplier op zet is een poll/discussie waardig maar dat is wel wat je moet willen. Gewoon ruw het % nemen is simpelweg niet relevant.

[Reactie gewijzigd door Ayporos op 24 juli 2024 21:01]

We doen al zoiets; maar dan simpeler. We vinden dalingen pas interessant als ze minimaal X euro (staat nu op 10) groot zijn. Onze kabel-categorie met af en toe dalingen van iets als 2,70 naar 1,20 is inderdaad niet bijster boeiend voor de meeste bezoekers ;)
Herlees mijn edit. Simpelweg een minimum opstellen is sowieso goed natuurlijk maar ik denk dat een implementatie zoals ik hem voorstel het meest wenselijk is.

Uiteraard kun je ook een toggle implementeren zodat mensen kunnen kiezen of ze dalers puur op % of gewogen willen zien.

[Reactie gewijzigd door Ayporos op 24 juli 2024 21:01]

Ah dat zou kunnen. Wat is trouwens het nut van die vastgestelde multiplier? Zolang dat een constante is, maakt het voor de sortering niet uit.

En bij de weergave is het percentage weergeven waarschijnlijk een stuk beter te begrijpen dan e.o.a. 'relevantie score' die dan aangeeft hoe goed de daling is.
Ik geloof dat het idee van Ayporos iets is in de trant van:
relevantie = (prijs_oud - prijs_nieuw)/prijs_oud * prijs_oud^multiplier

Met multiplier 0 is het simpelweg de relatieve daling. Maar maak je die groter, bijvoorbeeld 0.25, dan wegen duurdere items iets zwaarder mee.

Met deze waardes:
Een daling van 2,70 naar 1,20 euro (50%) komt op een relevantie van 0,712.
En een daling van 200 naar 120 euro (40%) komt op een relevantie van 1,5.
En een daling van 10000 naar 9000 (10%) komt op een relevantie van 1.

Of dit de ideale parameters zijn is een beetje de vraag. Je kunt voor de weging de oude prijs gebruiken, of de nieuwe prijs, of de daling. En de multiplier is redelijk arbitrair. Kies je hem te groot, dan beschouw je enkel de prijsdaling zelf. Kies je hem te klein, dan is het alsnog simpelweg de relatieve prijsdaling zelf.

Het nadeel van de huidige aanpak met een opgelegde minimale daling is dat een daling van 9,99 blijkbaar irrelevant is, ook al is het bijvoorbeeld een muis van 14,99 euro nu voor 5 euro, wat neerkomt op een relatieve daling van 66,6%. Oftewel: wat voor een minimum daling je ook kiest, je mist mogelijk interessante prijsdalingen rondom die threshold.
Met de waarde van 0,25 voor de multiplier komt deze hypothetische daling neer op een relevantie van 1,31. Dat is toch behoorlijk relevant in vergelijking met de andere bovenstaande voorbeelden.
Ah zo. Dat lijkt inderdaad interessant, ik heb het genoteerd om het in een van onze volgende sprints beter te bekijken. Bedankt voor de verduidelijking :)
Ik zou ook wel graag de sterkste dalers per categorie of zoekterm willen zien.
Je schetst hier exact mijn wens! Dit zou dan een aanbiedingen page zijn denk ik? Subkopje van de pricewatch ofzo..
Anoniem: 126717 @Inspector12 juli 2016 17:05
Ik zag laatst de Canon 7D mark 2 van 1500 naar 1000 euro (ongeveer) duiken, dat bleek een tweedehands te zijn.
Hoe gaan jullie dat opvangen?
Niet :) Het is natuurlijk nooit mogelijk alle Edge cases af te vangen. In principe is alles data afkomstig uit de pricewatch. Als hier een fout in staat is dat ietsdat of niet door het algoritme heen mag komen of iets dat de shop verkeerd heeft aangeleverd in hun feed. Op die eerste hebben we invloed en daar besteden we dan ook zoveel mogelijk aandacht aan. De tweede hebben we een apart pricewatch team voor dat o.a. fouten in de data opspeurt en hier naar handeld. Als een shop 2e hands producten als nieuw aanbied zal dat hopelijk snel gemeld worden zodat zij daar naar kunnen handelen.
Prima :) Dan wacht ik mooi even af. Kan deze als story op de backlog ?
Nice, want dit was ook mijn eerste gedachte :)
Turf er maar eentje bij, ik ben zeker geïnteresseerd.
Lijkt me ook een zeer leuke (en nutttige!) feature. Ik stem voor :+
Komt er ook,als ik bvb op ssd's kik, een iverzicht van top x producten met prijsdaling? Goed idee dit!
Kijk anders even op Hardware.info. Daar hebben ze deze feature al een tijdje en publiceren een pagina vol...

https://nl.hardware.info/...rijsvergelijker---week-28
Ow grappig, wist ik niet. Ik zal hem even bookmarken. Dank.
Wel opletten want vaak staat het vol met MaxICT :/
en daar zou ik persoonlijk niets van kopen:
https://tweakers.net/shop...ict-b-punt-v/shopreviews/
Ja die fout heb ik een keer gemaakt. Ik had geen haast met een complete computer aan onderdelen, dus ik dacht: ik bestel het daar wel, want het is tenslotte goedkoop.

Na 1,5 maand wachten had ik de onderdelen. Dat was dus eens en nooit meer. Schandalig.
Wachten ze tot de onderdelen in prijs dalen ofzo? Is best schandalig.
inderdaad, en wellicht zou het handig zijn om daarbij ook een filter in te kunnen stellen, als iemand bijvoorbeeld op zoek is naar een nieuw product, dat men dan de snelste dalers per product categorie in kan stellen.
Lijkt mij ook een leuke functie! Dan krijg je een soort reclamefolder met de aanbiedingen van alle computerwinkels in Nederland! Nice.
Toch heb ik sinds de overschakeling naar SSL een hele vervelende lag op het openen van Tweakers op iOS. In alle browsers. Niet alleen het laden van artikelen, maar ook het posten van reacties, modereren, etc. kennen allemaal een delay van ongeveer 2 seconden voordat de server echt reageert. (Balkje blijft ff stil staan, en gaat dan opeens door. In Chrome zie je dan ook pas SSL bevestigd worden, alsof de handshake heel lang duurt.)

Hebben meer mensen daar last van?
Sinds de update naar iOS 10 Public Beta ervaar ik dit ook op een iPhone 6. Draai jij toevallig ook iOS 10?
Yepz!
Heb jij het bij andere sites met SSL ook, of net als ik ook enkel bij Tweakers?
Het is mij alleen bij Tweakers opgevallen, maar op de Let's Encrypt demosite heb ik er ook last van.
Inderdaad ja... Precies hetzelfde probleem bij die demosite.
... Ik ben ff gaan Google'en, en het lijkt erop dat alle sites die Let's Encrypt gebruiken dit probleem hebben. Bijvoorbeeld: https://classic-cdv.org
Same shit, ook een dikke lag voordat ie wilt laden.
Ik wacht dus nog even met de beta installeren :D
Hier op iOS 9 met 4G is hij dik binnen de twee seconde geladen. Heb je iOS 10 beta toevallig? Hoe lang duurt het totdat het balkje niet meer hangt?
Ach, ja... |:( Dat is zo rond dezelfde tijd veranderd. Inderdaad de iOS 10 beta.
Het duurt gemiddeld ongeveer 2 tot 4 seconden. Het gekke is dat dit af en toe niet zo is, dan laadt ie opeens snel. Ik zit ook op KPN 4G, verbindingssnelheid is gemiddeld 180MBit/sec hier.

Maar, het gebeurt enkel op Tweakers. Elke andere (SSL) site die ik open laadt direct en zonder gedoe. Bij Tweakers blijft ie hangen. Wat er dan precies anders is, daar zou ik in moeten duiken.
Dit is een bug in de iOS 10 en mac OS Sierra beta's, en lijkt alleen voor te komen op SSL websites met een ECDSA certificaat met een Let's Encrypt certificaat. Meld dit vooral ook zelf aan Apple via de beta feedback app!

[Reactie gewijzigd door Zr40 op 24 juli 2024 21:01]

Stel, ik wil als producent mijn product in die lijst hebben en ik gooi het morgen een uurtje met 400% omhoog, en daarna weer omlaag, komt hij dan ook in de lijst?
Of worden dit soort situaties gedetecteerd en genegeerd?
Misschien ga ik van het slechtste geval uit, maar ik kan me voorstellen dat verkopers graag hun product in die lijst zien staan ;)
Plus de al gegeven correcte antwoorden geld ook nog eens dat het desbetreffende blok 1 minuut gecached wordt. Zodra de shop zijn prijs dus weer aanpast zal hij binnen 60 sec. ook weer uit dat lijstje verdwijnen. Niet heel erg nuttig dus :)
Maar als ik mijn prijs een uur lang op 400% zet, en daarna weer op de normale prijs van 100% geldt dat niet toch?
Verreweg de meeste producten hebben natuurlijk meerdere aanbieders, dus als jij je product op 400% zet, betekend nog niet dat de Mediamarkt dat ook doet :)

Daarnaast zouden producten die enkel aangeboden worden door 1 winkel uit de resultaten kunnen worden gelaten. Of het betreft de aller eerste preorder, producten die allang EOL zijn, maar nog 1 iemand op voorraad heeft of producten die heel rare zijn dus ook niet interessant voor een pricewatch startpagina.
Wanneer de prijs bij 2 shops € 100 is en shop A verhoogt de prijs tijdelijk naar € 400, dan blijft de shop B de laagste met € 100. De prijsverhoging van shop A is dus een non-event voor wat betreft de lijst met prijsdalingen. Ook wanneer Shop A de prijs met 75% weer verlaagt naar € 100, dan is er ten opzichte met de laagste prijs niets veranderd.
Het zou ander zijn wanneer Shop B ziet dat A naar € 400 gaat en zich realiseert dat hij nu ook met € 150 de goedkoopste is en meer winst kan maken. Wanneer hij de prijs verhoogt en A verlaagt na een bepaalde tijd de prijs weer naar € 100, dan zal er een verlaging van 33% t.o.v. de laagste prijs geregistreerd worden en komt het product waarschijnlijk in de lijst met prijsdalers te staan.
Natuurlijk zijn er van de meeste producten meer aanbieders en zullen de acties van één aanbieder geen invloed hebben op de laagste prijs of de lijst met prijsdalers zolang hij zelf niet die laagste prijs aanbiedt.
koku Senior Developer @Afvalzak12 juli 2016 13:28
En dan kom je op de website van de fabrikant en blijkt de prijs niet te kloppen. Lijkt me niet echt goede reclame voor die webshop, toch? En met het algoritme houden we ook rekening met mogelijke fouten. Ook is het zo dat als 1 webwinkel de prijs omhoog gooit, de laagste prijs van dat product natuurlijk niet omhoog gaat, omdat er andere webwinkels zijn die het goedkoper aanbieden. Daarnaast kunnen we fouten vrij makkelijk fixen. Verder gebruiken we het achterliggende algoritme zelfs om prijsfouten te detecteren.
Daarom is het wel handig als ook de volgende info bij de in prijs gedaalde producten staat:
  • Hoeveel aanbieders zijn er voor dat product.
  • Hoe lang staat het product al in de pricewatch
Dat beperkt mogelijk dat nieuwe of enige aanbieders van producten te veel met de prijs gaan rotzooien.
koku Senior Developer @TWyk12 juli 2016 14:51
Dan geef je een informatie overload aan de gebruiker. De gebruiker zou zich geen zorgen moeten maken over dat soort dingen. Wij moeten er als Tweakers voor gaan zorgen dat er geen 'troep' tussen komt te staan.
Xav Senior Developer @Afvalzak12 juli 2016 13:26
Wij hebben bij het algoritme erachter al rekening gehouden met prijsfouten en zulk soort 'trucjes' maar er zullen vast nog wel wat 'false positives' doorheen glippen. Daarom houden wij dit de komende tijd in de gaten en zullen wij het in de komende iteraties nog verder gaan finetunen.
Ondervinden jullie veel problemen met het overschakelen naar PHP 7?
Ben hier ook benieuwd naar :)
Zie deze .plan van begin dit jaar plan: Feedback Vraag en Antwoord - Development Iteratie #81. Hier wordt iets meer gesproken over het werk gepaard met PHP 7. Zo ver ik begreep ging het meer over de werking ism andere backend-end systemen dan depricated code verwijderen.
(Ik weet het toevallig nog want ik had er ook een vraagje over: DJMaze in 'plan: Feedback Vraag en Antwoord - Development Iteratie #81')
Geweldig! Is dit ook de introductie tot een wishlist? Waar je dan notificatie kan krijgen als jou product in prijs daalt (met marges die je kan aangeven bvb?).

Perfecte manier om mensen terug op de site te krijgen, meer traffic, meer omzet ;).
Je kunt op dit moment al een prijsalert op een product zetten. Zakt de prijs daar onder, dan krijg je een notificatie :)
Kunnen we een vergelijkbare functie voor V&A verwachten? Bijvoorbeeld: een (prijs)alert instellen voor een product, dat iemand zoekt?
De prijsalert zoals hij nu is werkt ook al voor V&A. Dus als jij een nVidia TNT2 zoekt voor onder de 100 euro dan krijg je een alert als iemand hem op V&A aanbied voor onder de 100 euro ;)
Ik zocht eigenlijk iets snellers, zoals een Geforce 256 met hardware T&L...
*insert mindblown gif*



Fixed that for you ;)

[Reactie gewijzigd door Xav op 24 juli 2024 21:01]

Die prijsalertfunctie is er ook al, op dezelfde plek bij je wenslijsten ;)

[Reactie gewijzigd door ACM op 24 juli 2024 21:01]

Ow, slecht bezig, sry! Dit moet ik direct gaan instellen, thanks!
- het automatisch preloaden van video’s in de videoplayer uitgezet om mobiel dataverbruik te beperken;
Is dat ook de bugfix voor wanneer je op je telefoon alleen de videoplayer al aanraakt (tijdens het scrollen) de video al begint te spelen?
Nee, dit is een aanpassing waardoor de player uberhaupt niet gaat bufferen bij het openen van de pagina. Als je deze per ongelukt aanklikt gaat hij wel alsnog spelen / bufferen.
Als je het per ongeluk aanklikt (en niet scrollt) dan is het logisch dat de video start.

Maar als je op de videoplayer begint met scrollen, dan start de video ook. Het lijkt erop dat de video naar een touchstart luistert en niet naar een touchend (met de voorwaarde dat dit event genegeerd moet worden als de gebruiker scrollt.
Heb hier ook last van met Chrome op Android.. Erg hinderlijke bug als ineens in de trein een video op volume gaat afspelen.
Wellicht ook goed om in de prijsdaler categorie alleen producten mee te nemen die nog leverbaar zijn. Ik zie dat bv. de MSI laptop niet meer te leveren is, dus dan heeft deze prijsdaler weinig effect 8)7
Dat wordt als het goed is meegenomen, is ie volgens onze gegevens al niet meer leverbaar? Of zie je dat pas op de website van de winkel?

[edit]
Volgens onze gegevens is die laptop nog leverbaar (zie het 24x5 icoontje). Als die bij Alternate niet leverbaar is en ze dat in hun datafeed (die we 18x per dag inlezen) goed aangeven, dan zal die laptop bij ons ook snel verdwijnen.

[Reactie gewijzigd door ACM op 24 juli 2024 21:01]

Op dit moment (4 uur na mijn laatste post) staat er nog steeds dat bij Alternate al deze MSI laptops gereserveerd zijn. Wellicht dat Alternate dit niet in hun feed zet, maar voor jullie functie is die data essentieel. Voorwaarden voor webwinkels (en 24/5 icoon gebruik) up to date ?
Op dit moment zie ik bij Alternate dat er nog 1 op voorraad is... dat maakt het wat lastig om hier nu een concrete uitspraak over te doen.

We hebben een beperking op een bepaalde maximale levertijd in deze selectie. Deze lijkt op dit moment goed te werken, maar gaat uiteraard van onze informatie uit.
Het zit er dik in dat er af en toe wat vertraging in de voorraadstatus naar ons toe zit. Winkels horen uiteraard geen dingen te beloven die ze niet waar kunnen maken, mocht dat structureel voorkomen, dan horen we het graag. Dan kunnen we daar de winkel op aanspreken of eventueel zelfs de levertijdindicatie helemaal verwijderen bij die winkel.

Overigens is deze reactiethread een mooi voorbeeld waarom we e.e.a. nog niet volledig met alle toeters en bellen hebben uitgewerkt. We willen daarvoor ook een beter beeld krijgen of de resultaten uberhaupt bruikbaar zijn.

[Reactie gewijzigd door ACM op 24 juli 2024 21:01]

Over wat voor tijdsbestek gaat het in de prijsdalingen? Als dit van dag tot dag bekeken word kan ik mij voorstellen dat het heel erg veel variatie in zal zitten, en dit natuurlijk ook een makkelijke standaard neerzet.

Tegelijkertijd kan ik mij ook erg goed voorstellen dat als bv de rift met €100 zou zakken in 1 dag dit misschien net de lijst zou halen... de maand erna €50 per week...dit zou niet eens zozeer de lijst kunnen halen als dit van dag tot dag bekeken word. MAAR dit is over een tijdsbestek van een maand wel een enorme daling.

Kortom, wat is de criteria welke gebruikt word?
De referentie is op dit moment 5 dagen geleden. We moeten nog bekijken of dat definitief zo blijft of niet, maar ik verwacht niet dat we daar een hele maand van gaan maken.
Ah top. Dat maakt de zaak al wat duidelijker. Een maand is inderdaad een lange periode en ik zou persoonlijk ook niet gelijk daarop springen als standaard (hooguit een extra tab). 5 dagen of een volledige week lijken mij inderdaad een zeer mooie tijd om een aardig prijsverloop erbij te kunnen krijgen.
Nog plannen om op korte termijn HSTS te activeren?
Xav Senior Developer @stier12 juli 2016 13:31
Dit hebben wij vlak na de vorige iteratie aan gezet, een kleine 3 weken geleden al dus. :)

Je kunt dit zelf controleren door de header 'Strict-Transport-Security' bij een van onze HTTP responses te bekijken.
"We hebben de url-generator slimmer gemaakt door meer hostnames toe te voegen waarvan we weten dat ze https ondersteunen"

Domeinen zouden ook op de HSTS header (Strict-Transport-Security header) gecontroleerd kunnen worden om er zeker van te zijn dat ze volledig op https zitten.
Dat zou kunnen, maar dat betekent dat jij (de gebruiker) moet wachten tot wij alle externe plaatje getest hebben voor we je reactie met plaatjes kunnen doorvoeren.

Dat is helaas lastig te combineren met een fijne, vlotte ervaring. Zeker als we niet de complete flow rond reacties plaatsen willen moeten veranderen :)

Op dit item kan niet meer gereageerd worden.