Rotatori di link e split test che si ottimizzano da soli
- ab-testing
- link-rotator
- analytics
In questa pagina
- Il rotatore è uno strumento operativo, lo split è una misurazione
- I pesi sono relativi e si ricalcolano su chi è candidato
- Tenere un visitatore su una sola destinazione
- Controlli di stato e come togliere dalla rotazione una pagina morta
- Tetti che reggono su una rete edge
- Come funziona davvero l'auto-ottimizzazione
- Perché un campione minimo viene prima di tutto questo
- Quando non ti serve un rotatore
- Una configurazione che regge
Due funzionalità sembrano quasi identiche in un elenco di caratteristiche e rispondono a domande completamente diverse. Un rotatore distribuisce il traffico di un solo link breve su più destinazioni. Un test A/B divide il traffico tra varianti e ti dice quale ha reso di più. Entrambi mettono più di un indirizzo dietro un solo link; solo uno dei due è una misurazione.
Questa guida copre dove i due strumenti divergono davvero, come si comportano i pesi in ciascuno, perché tenere un visitatore su una sola destinazione conti più della distribuzione stessa, che cosa un controllo di stato riesce e non riesce a rilevare, come funziona la ripesatura automatica e perché si rifiuta di agire troppo presto, e quando lo strumento più semplice è quello giusto.
Il rotatore è uno strumento operativo, lo split è una misurazione
La distinzione non è accademica. Decide quali comportamenti ottieni gratis e attorno a quali invece ti tocca costruire.
| | Rotatore di destinazioni | Split A/B | | --- | --- | --- | | Scopo | Tenere in vita un indirizzo mentre le destinazioni cambiano | Confrontare destinazioni e decidere | | Pesi | Relativi, valori qualsiasi | Interi che sommano esattamente a 100 | | Insieme di opzioni | Cambia di continuo, fino a venti | Fisso per tutta la durata del test | | Limiti per opzione | Tetti di clic, finestre di calendario, filtri per paese e dispositivo | Nessuno — una variante è una variante | | Gestione dei guasti | La destinazione non sana viene rimossa da sola | Non pertinente | | Finisce con | Niente, continua a girare | Un vincitore, o un onesto «non ancora» |
Il rotatore si guadagna il posto quando la parte stabile è l'indirizzo e sono le destinazioni a muoversi: un codice stampato che sopravvivrà a tre offerte, un link in bio, un piazzamento da affiliato in cui l'inserzionista ruota i creativi ogni settimana. Lo split si guadagna il posto quando hai una domanda sola e traffico sufficiente per rispondere. Usarli entrambi sullo stesso account, su link diversi, è normale; usarli entrambi sullo stesso link di solito significa che uno dei due non sta facendo niente.
I pesi sono relativi e si ricalcolano su chi è candidato
I pesi di un rotatore sono quote, non percentuali. La quota di una destinazione è il suo peso diviso per la somma dei pesi delle destinazioni candidate in quel momento — quindi pesi 3, 2 e 1 significano una metà, un terzo e un sesto, e non c'è niente da rinormalizzare a mano quando ne aggiungi una quarta.
La candidatura viene valutata prima dei pesi, ed è proprio quest'ordine a rendere la funzionalità operativa invece che decorativa. Una destinazione esce dall'insieme dei candidati quando viene spenta, quando ha consumato il tetto di clic totale o quello giornaliero, quando la sua finestra di calendario non si è ancora aperta o si è già chiusa, quando il paese o il dispositivo del visitatore stanno fuori dai suoi filtri, oppure quando un controllo di stato l'ha messa a terra. Le altre ne assorbono la quota in proporzione ai propri pesi, subito e senza che nessuno modifichi niente alle tre di notte. Quando tutte le destinazioni sono fuori, un indirizzo di riserva raccoglie il resto; senza di esso il link continua a servire la sua destinazione principale invece di diventare una pagina di errore.
Il rotatore offre anche due distribuzioni senza pesi: il round robin, che manda a turno i clic consecutivi a destinazioni consecutive, e quella uniforme, che divide in parti uguali. Il round robin è la modalità giusta per distribuire il carico tra mirror, perché è l'unica che garantisce che due clic consecutivi finiscano in posti diversi.
Lo split A/B si comporta al contrario, e per una buona ragione. I suoi pesi sono interi che devono sommare esattamente a cento, perché il redirector colloca ogni visitatore in un segmento da 0 a 99 e percorre i pesi cumulati: un buco qualsiasi in quell'intervallo sarebbe traffico che nessuno serve. La distribuzione pesata del rotatore viene verificata su centomila visitatori sintetici e deve restare entro un punto percentuale dalle quote configurate, che è il livello di precisione che vale la pena pretendere da qualunque strumento sostenga di dividere il traffico.
Tenere un visitatore su una sola destinazione
Una rotazione senza assegnazione stabile produce assurdità. Un visitatore apre il link, vede l'offerta A, torna un'ora dopo, vede l'offerta B, e ogni report sul funnel costruito su quei clic è narrativa — non leggermente sbagliato: narrativa, perché numeratore e denominatore ora descrivono pagine diverse.
La finestra di stabilità è quindi un'impostazione di prima classe, configurabile da zero a trenta giorni, e il meccanismo ha due strati. L'assegnazione di base deriva in modo deterministico dall'impronta giornaliera del visitatore, quindi regge senza sessione, senza una riga di database e senza niente memorizzato visitatore per visitatore. Un cookie di prima parte sul tuo dominio di reindirizzamento porta poi avanti la destinazione scelta per tutta la durata della finestra, ed è questo che fa sopravvivere l'assegnazione stabile alla rotazione notturna del sale dell'impronta.
Due conseguenze conviene saperle invece di scoprirle. Un visitatore che cancella i cookie o arriva da un altro dispositivo ricade sull'assegnazione derivata, stabile nell'arco di una giornata ma non necessariamente da un giorno all'altro — lo stesso scambio che accetta il livello analytics per non dover conservare un identificatore. E un visitatore già fissato resta fissato anche dopo che hai cambiato i pesi, perché il vincolo batte la distribuzione finché la destinazione è ancora candidata.
Un dettaglio implementativo ha un effetto visibile. Il rotatore ricava il proprio segmento da una fetta dell'impronta del visitatore diversa da quella che usa lo split A/B. Condividere la stessa fetta correlerebbe le due assegnazioni, e chiunque finisse nella variante A vedrebbe sistematicamente solo una parte dell'elenco delle destinazioni.
Controlli di stato e come togliere dalla rotazione una pagina morta
Le destinazioni marciscono. Un partner ritira una pagina, un certificato scade, un'offerta viene chiusa, un dominio non viene rinnovato e ricompare come pagina parcheggiata che vende sé stessa. Intanto il link breve continua a mandare la sua quota di traffico contro il muro, e nessuno se ne accorge fino al report settimanale.
Un controllo pianificato segue ogni destinazione come farebbe un visitatore e registra quattro cose: il codice di stato, il numero di salti nella catena di reindirizzamenti, il tempo di risposta e la data di scadenza del certificato TLS. Confronta anche la pagina con un'impronta catturata quando la destinazione è stata aggiunta — l'host finale e il titolo della pagina — ed è così che si becca un URL che ora restituisce un 200 sano da una pagina parcheggiata. La stessa sonda sta sotto al verificatore di link, e una destinazione non viene ricontrollata più spesso di ogni quindici minuti, perché un'area di lavoro grande non trasformi il proprio monitoraggio in una sorgente di traffico.
Che cosa succeda dopo è una scelta per singolo link. Il comportamento predefinito è rumoroso ma passivo: la destinazione viene marcata nell'elenco dei link, i proprietari ricevono un'email di riepilogo e parte un webhook. Attiva la rimozione automatica e la destinazione viene anche tolta dalla rotazione finché non si riprende, segnata come disattivata automaticamente invece che cancellata in silenzio, così «il rotatore va bene» diventa qualcosa che qualcuno ha verificato. La riattivazione è manuale apposta — una pagina che ha ballato una volta ballerà di nuovo, e una persona dovrebbe vederla prima che il traffico torni.
Due limiti onesti. Il controllo parte dalla nostra infrastruttura, quindi verifica che la pagina risponda, non che risponda correttamente a un visitatore di un certo paese su un certo dispositivo. E il riconoscimento delle pagine parcheggiate confronta schemi noti; una destinazione che restituisce una pagina perfettamente valida con l'offerta rimossa continuerà a sembrare sana, ed è per questo che i dati di conversione per destinazione contano più di qualunque etichetta di stato.
Tetti che reggono su una rete edge
Un tetto di clic ha senso solo se regge quando lo stesso link viene aperto contemporaneamente in una dozzina di paesi. I contatori indipendenti per regione sono il modo in cui una destinazione limitata a mille clic ne consegna millequattrocento: quattordici data center hanno contato cento ciascuno e ciascuno era convinto di stare sotto il limite.
Il progetto che lo evita gira a due velocità. Le istantanee dei contatori viaggiano dentro la configurazione in cache del link, così il redirector sa all'incirca a che punto sta una destinazione senza un viaggio di andata e ritorno sul percorso caldo. Quando una destinazione arriva a poche decine di clic dal suo tetto, il redirector passa a una prenotazione autorevole in un archivio condiviso prima di rispondere, così due clic simultanei sull'ultimo posto vengono risolti da un solo incremento atomico e chi perde va altrove invece di sforare.
Il compromesso, detto senza giri di parole: lontano dal confine il numero è un'istantanea e non un conteggio dal vivo, quindi un tetto è esatto dove l'esattezza serve e approssimato dove non serve — ed è questo che evita a una destinazione senza limiti di pagare un viaggio di andata e ritorno per un tetto che non ha.
Come funziona davvero l'auto-ottimizzazione
Uno split auto-ottimizzante aggiunge una cosa sola a uno split ordinario: un processo pianificato che ricalcola i pesi a favore della variante che sta andando meglio sull'obiettivo. Tutto il resto — la ripartizione in segmenti, l'assegnazione stabile, la reportistica — resta identico, e il redirector non viene mai a sapere che questa modalità esista, perché riceve pesi ordinari che si dà il caso siano stati calcolati per lui.
Il processo gira ogni ora e lavora in tre passi. Raccoglie le variazioni di clic di ogni variante dall'ultima esecuzione e le somma a un campione conservato. Assegna a ogni variante un punteggio con un tasso smussato, aggiungendo uno ai successi e due alle prove, così una variante con tre clic non può vantare un punteggio perfetto e una divisione per zero non può capitare. Poi distribuisce cento punti interi tra le varianti in proporzione a quei punteggi, dopo aver riservato un minimo di cinque punti a ciascuna.
Quel minimo è la riga più importante dell'algoritmo. Una variante ridotta a zero non accumulerebbe mai più un'osservazione, e la decisione di abbandonarla diventerebbe definitiva sulla base di qualunque campione l'avesse prodotta. Cinque punti bastano per continuare a imparare e costano abbastanza poco da non pesare.
Ecco una tornata a due varianti dopo che i cancelli si sono aperti:
| Variante | Clic | Eventi obiettivo | Tasso grezzo | Punteggio smussato | Nuovo peso | | --- | --- | --- | --- | --- | --- | | A | 620 | 31 | 5,00% | 5,14% | 54 | | B | 610 | 25 | 4,10% | 4,25% | 46 |
Nota quello che l'algoritmo non ha fatto. Una differenza relativa di circa un quinto nel tasso di conversione ha prodotto uno split 54/46, non uno 90/10, perché la ripesatura è proporzionale al punteggio e non una regola in cui il vincitore prende tutto. L'ottimizzazione automatica inclina, non commuta. Se vuoi un interruttore, fissa il vincitore a mano — così tutto il traffico va su una sola destinazione e l'esperimento finisce, e la decisione viene registrata nello storico del link accanto a quelle automatiche.
Perché un campione minimo viene prima di tutto questo
Due cancelli tengono la distribuzione uniforme prima che l'ottimizzatore possa toccare qualcosa: un periodo di riscaldamento misurato in tempo di calendario e un campione totale minimo misurato in clic, mille per impostazione predefinita. Sotto uno qualsiasi dei due i pesi non vengono corretti affatto, invece di essere corretti un poco.
La ragione non è pignoleria statistica, è la forma del traffico sui link. Le prime ore di una campagna sono dominate dal canale che ha pubblicato per primo e dal traffico automatico che scandaglia il link, come racconta la nostra guida a come si tracciano i clic sui link. Un tasso calcolato su quella finestra descrive il calendario delle pubblicazioni, non le pagine. Peggio ancora, un ottimizzatore che ci si basa affama la variante che per caso è partita in un'ora tranquilla, e la variante affamata accumula poi prove più lentamente, il che rende l'errore iniziale capace di rinforzarsi da solo. Il minimo limita il danno; i cancelli lo prevengono.
Due cose che la modalità automatica non fa. È una ripesatura proporzionale, non un test sequenziale: non calcola un livello di significatività e non dichiara mai un vincitore, che resta un gesto umano compiuto accanto alla nota di confidenza che la schermata dello split test stampa sotto la tabella delle varianti. E il campione su cui ripesa vale quanto l'obiettivo che gli dai in pasto — se ogni clic conta come successo, ogni variante ottiene lo stesso punteggio per costruzione e lo split resta di fatto uniforme. Perché ci sia un'inclinazione serve un obiettivo che non tutti i clic raggiungono, ed è quello che il tracciamento delle conversioni registra per variante; l'identificatore di clic firmato porta con sé l'etichetta della variante, quindi ordini e ricavi si ripartiscono per variante nei report descritti in conversioni.
Quando non ti serve un rotatore
| Situazione | Strumento migliore | | --- | --- | | Una destinazione ora, un'altra il mese prossimo | Modifica la destinazione del link; indirizzo breve e storico restano invariati | | Una pagina diversa per ogni mercato | Regole di targeting ordinate — deterministiche e leggibili | | Una domanda, due pagine candidate | Un semplice split con la nota di confidenza | | I telefoni nell'app, i desktop sul sito | I campi deep link sul link | | Più mirror della stessa pagina | Un rotatore in modalità round robin, il caso per cui è nato |
La regola generale: il rotatore si guadagna la propria complessità quando le destinazioni cambiano senza che cambi l'indirizzo, e ovunque altrove costa chiarezza. Su una quota pesata si ragiona peggio che su una regola, e chiunque abbia passato le undici di sera a capire «perché questo visitatore ha ricevuto quella pagina» sa quale delle due preferirebbe leggere. I dettagli di configurazione stanno nella guida al rotatore e nella guida ai link.
Una configurazione che regge
- Parti dallo strumento più semplice che risponde alla domanda, e aggiungi la rotazione solo quando l'elenco delle destinazioni cambia davvero.
- Imposta una finestra di stabilità lunga almeno quanto una sessione per qualsiasi cosa abbia un funnel dietro, e mettila a zero solo per distribuire il carico.
- Dai a ogni destinazione un tetto o una finestra se ha un limite reale, e imposta una destinazione di riserva perché l'esaurimento non diventi una pagina di errore.
- Attiva la rimozione automatica per le destinazioni che non controlli, e lasciala spenta dove un breve disservizio è preferibile a una ridistribuzione silenziosa.
- Lascia scadere il periodo di riscaldamento e il campione minimo prima di leggere qualsiasi cosa in uno split auto-ottimizzante, e guarda la nota di confidenza prima di fissare un vincitore.
- Leggi i risultati per destinazione: l'evento di clic registra quale l'ha servito, quindi clic, visitatori unici e ricavi si ripartiscono tutti così.
Lo schema dietro a tutto questo è lo stesso. Rotazione, tetti e ripesatura tengono un link a fare la cosa giusta mentre nessuno lo sta guardando. Non sostituiscono il guardare quale destinazione rende — ti comprano il tempo per guardarlo come si deve.
Le domande che ci fanno
Che differenza c'è tra un rotatore e un test A/B?
Un test A/B è una misurazione con un insieme fisso di varianti, un periodo fisso e una decisione alla fine. Un rotatore è uno strumento operativo: le destinazioni entrano ed escono, portano tetti di clic e finestre di calendario, servono paesi o tipi di dispositivo specifici e vengono tolte da sole quando si rompono. La meccanica cambia di conseguenza — i pesi di uno split devono sommare esattamente a cento, mentre i pesi di un rotatore sono relativi e la quota di una destinazione che esce viene assorbita dalle altre. Usa uno split quando hai una domanda, un rotatore quando hai un'operazione da mandare avanti.
I pesi di un rotatore devono sommare a 100?
No. Il peso di un rotatore è relativo: la quota di una destinazione è il suo peso diviso per la somma dei pesi delle destinazioni candidate in quel momento. Pesi 3, 2 e 1 significano una metà, un terzo e un sesto, e se quella di mezzo esaurisce il tetto giornaliero le altre due si dividono subito il traffico tre a uno. Lo split A/B funziona al contrario e si rifiuta di salvare finché i pesi non sommano esattamente a cento, perché il redirector confronta un segmento da 0 a 99 con i pesi cumulati e un buco in quell'intervallo lascerebbe del traffico senza nessuno che lo serva.
Lo stesso visitatore atterrerà sempre sulla stessa destinazione?
Dentro la finestra di stabilità che configuri, che può andare da zero a trenta giorni. L'assegnazione deriva dall'impronta giornaliera del visitatore invece di essere memorizzata visitatore per visitatore, e viene portata avanti da un cookie di prima parte impostato sul tuo dominio di reindirizzamento. Chi cancella i cookie o cambia dispositivo ricade sull'assegnazione derivata, che resta stabile nell'arco della giornata perché il sale dell'impronta ruota ogni notte. Mettere la finestra a zero fa ruotare a ogni visita: è quello che vuoi per distribuire il carico e non è mai quello che vuoi dietro a un funnel.
Come fa un controllo di stato a stabilire che una destinazione è rotta?
Segue la destinazione come farebbe un visitatore e guarda quattro cose: il codice di stato, la lunghezza della catena di reindirizzamenti, il tempo di risposta e la data di scadenza del certificato. Confronta anche la pagina con un'impronta catturata quando la destinazione è stata aggiunta, così un URL che si è trasformato in sordina in una pagina parcheggiata viene individuato anche se risponde con un 200 perfettamente sano. Una destinazione non viene ricontrollata più spesso di ogni quindici minuti, e la rimozione automatica dalla rotazione si attiva a scelta, non è il comportamento predefinito.
Quanto traffico serve a uno split auto-ottimizzante prima che ripesi le varianti?
Devono aprirsi due cancelli. Un periodo di riscaldamento tiene la distribuzione uniforme per un tratto di tempo di calendario che configuri tu, e un campione minimo la tiene uniforme finché le varianti non hanno accumulato abbastanza clic in tutto: mille per impostazione predefinita. Sotto uno qualsiasi dei due l'ottimizzatore non tocca proprio nulla invece di correggere un poco, ed è una scelta voluta: la ripesatura vale quanto il più piccolo campione su cui è costruita, e i primi dati in questo ambito sono dominati dal canale che ha pubblicato per primo.
Quando il rotatore è lo strumento sbagliato?
Quando la destinazione giusta è una sola e vuoi semplicemente cambiarla più avanti: modificare la destinazione di un link breve cambia dove punta senza cambiarne l'indirizzo, e lo storico dei clic resta attaccato. Quando mercati diversi hanno bisogno di pagine diverse, delle regole di targeting ordinate sono più chiare delle quote pesate, perché l'esito per un dato visitatore è deterministico e leggibile. E quando hai una domanda sola e due pagine candidate, un semplice split con la nota di confidenza ti risponde con meno macchinario di quanto ne serva a un rotatore.