Un QR code in uno spot video vuole un terzo dello schermo. Ne riceve un angolo
dal team KoloQRRicerca

Un telefono che legge un QR code da un televisore non sta guardando la tua grafica. Sta guardando qualche decina di pixel di un fotogramma di camera, e quanti ne ottiene lo decide una cosa sola: l'angolo che il codice occupa visto dal divano. Abbiamo costruito un banco di prova che percorre tutta la catena - master 1080p, compressione, una camera tenuta a mano e leggermente storta a una distanza di visione reale, strisciata da movimento - e abbiamo misurato dove crolla il tasso di lettura. A una normale distanza da salotto, un codice che occupa un quinto dell'altezza dello schermo è stato decodificato nel 6% dei tentativi. Un quarto dell'altezza dello schermo: 95%. L'angolo che usa ogni spot video ha misurato zero, e non c'è tempo di permanenza, correzione d'errore o creatività che lo aggiusti, perché il fallimento avviene prima che venga letto il primo fotogramma.
Punti chiave
- Abbiamo misurato una soglia di lettura di 2,5 pixel per modulo con immagine ferma, compressa e leggermente ruotata, con i primi successi sporadici a 2,0 e la maggioranza già a 2,25. La documentazione ML Kit di Google chiede almeno 2 pixel per modulo, quindi il banco di prova e il produttore concordano a un quarto di pixel di distanza.
- La dimensione dello schermo si semplifica. Poiché ci si siede più lontano dai televisori grandi, la risposta è una frazione dell'altezza dello schermo e non una misura in centimetri, ed è la stessa frazione su un 43 pollici, su un 77 pollici e su un portatile.
- A una normale distanza da salotto - un televisore da 55 pollici a circa 2,7 m - un codice al 20% dell'altezza dello schermo è stato letto nel 6% dei casi, uno al 25% nel 95% dei casi e uno al 30% tutte le volte. Sotto il 15% non è stato letto nulla a nessuna delle distanze provate.
- La compressione conta pochissimo e il movimento conta enormemente. Comprimere il master a qualità JPEG 40 ha spostato il tasso di lettura di uno o due punti; una strisciata di mezzo pixel di camera durante una singola esposizione ha portato a zero un codice letto il 99% delle volte.
- Le due cose che gli spot fanno al proprio codice senza accorgersene sono aggiungere parametri UTM e alzare la correzione d'errore. Entrambe aggiungono moduli a parità di dimensione fisica. Una stringa di tracciamento completa ha portato un codice dal 100% al 48%; il livello di correzione H ha portato lo stesso codice dal 99% al 74%.
Il codice nell'angolo fallisce prima che qualcuno prenda il telefono
La collocazione standard è l'angolo in basso a destra del packshot, dimensionata per stare educatamente accanto al logo e alla riga legale - dall'otto al dodici per cento dell'altezza dello schermo, in onda per i tre-cinque secondi che dura il packshot. La si tratta come una decisione di impaginazione, la si discute in termini di affollamento e gerarchia di marca, e la approvano persone che hanno tutte scansionato il codice con successo sul monitor della sala di montaggio.
Non è una decisione di impaginazione. È una decisione di risoluzione, e l'aritmetica che la governa è chiusa prima che chiunque in sala abbia un'opinione. Un telefono che fotografa un televisore riprende tutta la stanza; il televisore è una frazione di quel fotogramma, il codice è una frazione del televisore, e la griglia del codice viene poi divisa in un numero di caselle per lato che va da 25 a 53. Quel che sopravvive alla fine è una manciata di pixel per casella, e sotto una certa manciata non si decodifica più nulla: né lentamente, né a volte, né con un'app migliore.
Il motivo per cui la cosa continua a sfuggire è che ogni verifica fatta in produzione è fatta alla distanza sbagliata. Il codice viene scansionato sul monitor di montaggio a un braccio di distanza, sul link di revisione su un portatile a 60 cm, e su un telefono tenuto a 30 cm da un altro telefono. Geometricamente quelle tre situazioni non hanno niente a che vedere con un divano, e tutte e tre passano. L'unica condizione in cui lo spot verrà davvero visto è quella che nessuno prova, perché provarla significa piantarsi in un salotto.
Quindi questo articolo fa l'aritmetica e poi la misura. La domanda non è se i QR code abbiano senso nella pubblicità video - quella è questione di gusti, e la risposta probabilmente dipende dalla marca. La domanda è quanto grande debba essere un codice perché la discussione sui gusti valga la pena di iniziare.
Cosa abbiamo misurato, e cosa non può dirti
Il banco di prova percorre tutta la catena via software. Un codice viene disegnato a 12 pixel per modulo con la zona di silenzio di quattro moduli che specifica la ISO/IEC 18004, ridimensionato dentro un master 1080p alla misura che avrebbe nello spot finito, compresso, contornato, ruotato fuori squadra, ricampionato al numero di pixel che una fotocamera di telefono raccoglierebbe da esso a una data distanza di visione, strisciato per simulare il movimento durante l'esposizione e consegnato a un decodificatore. Ogni cifra qui sotto è la quota di tentativi che hanno decodificato.
Ogni cella sono 216 tentativi: dodici payload diversi, sei angoli fra uno e undici gradi fuori squadra e tre variazioni di un pixel della dimensione catturata. Quel conteggio esiste per via di un errore che vale la pena ammettere. La prima versione del banco di prova passava al decodificatore un'immagine perfettamente in squadra e allineata alla griglia, e lui decodificava allegramente un codice a un pixel per modulo - un risultato che è aritmetica vera e insieme una sciocchezza completa, perché misura una coincidenza di campionamento che una mano che tiene un telefono non riprodurrà mai. È la rotazione a mettere ogni modulo in una fase subpixel arbitraria, e ha spostato la soglia di più del doppio.
Il decodificatore è quello debole, di proposito
Il decodificatore è jsQR, il port in JavaScript del nucleo di ZXing: la stessa famiglia di decodificatori di cui abbiamo letto il binarizzatore nel codice sorgente per le misure sul contrasto. Il framework Vision di Apple e ML Kit di Google sono ciò che legge davvero la maggior parte dei codici, sono entrambi chiusi, e una cifra tratta dall'uno o dall'altro è una cifra che nessun lettore può verificare. jsQR è inoltre, quasi certamente, il meno capace dei tre: nessuno stadio di machine learning, nessun accumulo su più fotogrammi, nessuna super-risoluzione.
Questo rende degna di nota una calibrazione. La nostra soglia su immagine pulita è uscita a 2,5 pixel per modulo, e la documentazione di ML Kit sulla lettura dei codici a barre chiede un codice la cui "più piccola unità significativa" sia "larga almeno 2 pixel e, per i codici bidimensionali, alta 2 pixel". Che un decodificatore più debole si fermi un quarto di pixel sopra il minimo pubblicato dal produttore è più o meno il miglior accordo cui un montaggio del genere possa aspirare, ed è il motivo per cui la tabella delle dimensioni più sotto va letta come approssimativamente giusta e non come pessimistica di un fattore.
Cosa lascia fuori il banco di prova
- I telefoni veri. Per questa misura nessun iPhone e nessun Android è stato puntato verso un televisore. Stabilizzazione ottica, fusione di più fotogrammi e i due decodificatori chiusi lavorano tutti a favore di chi legge, e nessuno è modellato.
- La codifica video fra fotogrammi. Qui la compressione è JPEG su un singolo fotogramma, che fa le veci di un fotogramma intracodificato. Un codice fermo su un'inquadratura ferma non costa quasi nulla a un encoder vero dopo il primo fotogramma; un codice sovraimpresso su immagini in movimento viene ricodificato di continuo. Poiché la compressione si è rivelata quasi irrilevante in entrambi i casi, la cosa pesa meno di quanto sembri.
- Il pannello e il sensore che battono l'uno contro l'altro. Una fotocamera che riprende uno schermo può produrre moiré, e un master a 24p portato su un pannello a 60 Hz e campionato da un otturatore rolling può produrre bande. Sono entrambi fenomeni reali, entrambi dannosi, e nessuno dei due è simulato.
- Riflessi, luce ambiente e visione fuori asse. Tutti e tre sottraggono, e tutti e tre appartengono al lavoro sul contrasto e non a questo.
- Le persone. Quanto ci mette qualcuno ad accorgersi di un codice, trovare il telefono e puntarlo non è misurabile da un banco di prova. La sezione relativa più sotto è segnalata come stima.
Tutte queste omissioni vanno nella stessa direzione tranne la prima: il banco di prova è più severo con il codice di quanto lo sia una fotografia ferma, e più indulgente di un salotto. Il riassunto onesto è che queste cifre localizzano il precipizio, e il protocollo da dieci minuti in fondo all'articolo è il modo per capire da che parte si trovi la tua campagna.
La soglia è a due pixel e mezzo per modulo
I pixel per modulo sono i pixel di camera che cadono su una casella della griglia di un QR code, e sono la quantità da cui si paga ogni altra variabile di una scansione. Contrasto, sfocatura, compressione, ingrossamento del punto e rumore della fotocamera riducono alla fine la stessa cosa: la sicurezza con cui un decodificatore può dire da quale parte del confine fra nero e bianco è caduta una casella. Sotto una certa densità di campionamento non resta sicurezza da spendere.
| Pixel per modulo | Pulito | Compresso (JPEG q40) |
|---|---|---|
| 1,50 | 0% | 0% |
| 1,75 | 0% | 0% |
| 2,00 | 8% | 7% |
| 2,25 | 69% | 68% |
| 2,50 | 99% | 100% |
| 2,75 | 100% | 100% |
| 3,00 | 100% | 100% |
Due cose in quella tabella valgono più della soglia stessa. La prima è quanto è stretta la transizione. Non esiste una lunga coda di codici marginali che gli utenti pazienti riescono comunque a scansionare: fra 2,0 e 2,5 pixel per modulo il tasso di lettura passa dall'8% al 99%, il che significa che un codice ha la densità di campionamento oppure non ce l'ha, e fra i due stati c'è un quarto di pixel per modulo.
La seconda è la seconda colonna. Comprimere il master a qualità JPEG 40 - visibilmente degradato, molto sotto qualsiasi cosa consegnerebbe un'emittente o una piattaforma - ha spostato il risultato di uno o due punti in una direzione o nell'altra senza mai muovere il precipizio. Vale la pena dirlo chiaramente, perché "la compressione video si mangia i QR code" è la spiegazione standard del loro fallimento in televisione, e in questa misura semplicemente non è vera. Non è la compressione a uccidere questi codici. È il campionamento.
Il corollario è che l'intero problema si riduce a una domanda: quanti pixel di camera riceve il codice? Non è una proprietà della grafica, del formato di file o dell'encoder. È una proprietà dell'angolo che il codice occupa nell'occhio di chi guarda, cioè geometria, e la geometria ha la decenza di essere prevedibile.
La dimensione dello schermo si semplifica e resta solo l'angolo
La fotocamera di un telefono è una proiezione rettilinea: una distanza trasversale a una portata nota si converte in pixel tramite un'unica costante. Per un campo visivo orizzontale di 70 gradi - un equivalente 26 mm fa 69,4 gradi, e le fotocamere principali dei telefoni escono da anni entro un grado da lì - quella costante vale 1.371 pixel per radiante su un fotogramma largo 1920 pixel. Così l'intera catena si riduce a una riga di aritmetica:
pixel per modulo = 1371 × f ÷ (k × N), dove f è l'altezza del codice come frazione dell'altezza dello schermo, k è la distanza di visione espressa in altezze di schermo e N è il numero di moduli sul lato del codice, zona di silenzio di quattro moduli inclusa.
La cosa interessante di quell'espressione è ciò che manca. Non c'è nessuna dimensione di schermo e nessuna distanza in metri, solo il loro rapporto. Non è una semplificazione, è la fisica reale: un televisore da 77 pollici occupa lo stesso angolo dal fondo di una stanza grande di uno da 43 in una piccola, e la fotocamera non sa e non le importa quale dei due stia guardando. La risposta a "quanto grande deve essere il codice" è quindi una percentuale dello schermo, e la stessa percentuale vale ovunque.
Significa anche che k si può fissare a partire da raccomandazioni pubblicate sull'angolo di visione invece di indovinarlo. THX raccomanda un angolo di visione orizzontale di circa 40 gradi, che per uno schermo 16:9 dà una distanza di 2,4 altezze di schermo. La raccomandazione SMPTE di 30 gradi dà 3,3 altezze di schermo. Sono entrambe raccomandazioni per chi tiene alla qualità dell'immagine; i salotti normali stanno più indietro di tutte e due, ed è per questo che le tabelle qui sotto arrivano a quattro altezze di schermo - un 55 pollici a circa 2,7 m.
Il 1920 di quella costante merita un'avvertenza a parte, perché è l'ipotesi favorevole. Il flusso di analisi è il buffer video a risoluzione ridotta su cui lavora davvero il rilevatore di codici di un telefono, e non è la fotografia a piena risoluzione che la fotocamera sarebbe in grado di scattare. La documentazione di ML Kit di Google raccomanda di alimentarlo con "1280x720 o 1920x1080" e nota che scendere sotto è praticabile solo "richiedendo che il codice a barre occupi la maggior parte dell'immagine in ingresso". Tutto quel che segue assume la migliore delle due. A 1280 x 720 ogni cifra della tabella successiva peggiora di un terzo.
Quanto grande deve essere davvero il codice
Con l'aritmetica sistemata, la misura. Ogni riga è un'altezza di codice espressa come percentuale dell'altezza dello schermo; ogni coppia di colonne è una distanza di visione in altezze di schermo, con la densità di campionamento che ne risulta e il tasso di lettura uscito dal banco di prova. Il payload è una URL di 25 caratteri con correzione d'errore M, cioè la versione 3 - 29 moduli, o 37 sul lato con la zona di silenzio. Tutto fermo, compresso e da uno a undici gradi fuori squadra.
| Altezza del codice (% dello schermo) | Nel master 1080p | k = 2 px/modulo | k = 2 tasso | k = 3 px/modulo | k = 3 tasso | k = 4 px/modulo | k = 4 tasso |
|---|---|---|---|---|---|---|---|
| 8% | 86 px | 1,49 | 0% | 1,00 | 0% | 0,73 | 0% |
| 10% | 108 px | 1,86 | 2% | 1,24 | 0% | 0,92 | 0% |
| 12,5% | 135 px | 2,32 | 82% | 1,54 | 0% | 1,16 | 0% |
| 15% | 162 px | 2,78 | 100% | 1,86 | 4% | 1,38 | 0% |
| 17,5% | 189 px | 3,24 | 100% | 2,16 | 70% | 1,62 | 0% |
| 20% | 216 px | 3,70 | 100% | 2,46 | 91% | 1,86 | 6% |
| 25% | 270 px | 4,62 | 100% | 3,08 | 99% | 2,32 | 95% |
| 30% | 324 px | 5,57 | 100% | 3,70 | 100% | 2,78 | 100% |
| 35% | 378 px | 6,49 | 100% | 4,32 | 100% | 3,24 | 100% |
Leggi la colonna k = 4, perché è lì che è seduta la maggior parte delle persone. Un codice a un quinto dell'altezza dello schermo è stato letto sei volte su cento. Un codice a un quarto dell'altezza dello schermo è stato letto novantacinque volte su cento. L'intero intervallo utile di questa decisione progettuale sta fra il 20% e il 30% dell'altezza dello schermo, e la collocazione classica nell'angolo non è semplicemente in fondo a quell'intervallo: è fuori tabella di un fattore da due a tre.
Nota anche cosa sta facendo la colonna del master, cioè niente. Un codice al 20% dell'altezza dello schermo è largo 216 pixel nel file 1080p, comodamente sopra la soglia; il codice non viene distrutto nel montaggio, nella color o nella codifica. Viene distrutto dalla distanza fra un divano e un televisore, che è una quantità che nessun processo di postproduzione può migliorare. È lo stesso argomento che dimensionare un codice stampato per la sua distanza di lettura fa a proposito della carta, ed è più severo qui perché chi guarda non può avvicinarsi allo schermo.
Vale anche il corollario della colonna k = 2, perché spiega con precisione l'illusione della sala di montaggio. A due altezze di schermo - un 55 pollici a 1,4 m, che occupa più o meno quanto un monitor da scrivania a un braccio di distanza - un codice al 12,5% dell'altezza dello schermo si legge l'82% delle volte. È la verifica che fanno tutti, e la passa. La densità di campionamento cala in proporzione diretta alla distanza, e il divano sta un metro o due oltre il punto in cui la prova è stata fatta.
Il movimento chiude la partita prima della dimensione
La compressione si è rivelata ininfluente e la dimensione enormemente influente. Il movimento è peggio di entrambe. Il banco di prova applica una strisciata lineare al sensore - una convoluzione a scatola nella direzione dello spostamento, che è ciò che il movimento durante un'esposizione fa davvero a un fotogramma, invece della sfocatura gaussiana simmetrica che applicherebbe una funzione di blur - e misura quanto il codice può percorrere sul sensore durante un'esposizione prima che il tasso di lettura collassi.
| Altezza del codice (% dello schermo) | Pixel per modulo | Fermo | 0,25 px | 0,5 px | 0,75 px | 1,0 px | 1,5 px |
|---|---|---|---|---|---|---|---|
| 25% | 3,08 | 99% | 86% | 0% | 0% | 0% | 0% |
| 30% | 3,70 | 100% | 97% | 0% | 0% | 0% | 0% |
| 40% | 4,95 | 100% | 100% | 100% | 0% | 0% | 0% |
| 60% | 7,41 | 100% | 100% | 100% | 100% | 1% | 0% |
La tolleranza è di circa un ottavo di modulo, e in pixel di camera è fra un quarto di pixel e un pixel a seconda di quanto è grande il codice. Vale la pena tradurlo in qualcosa su cui una regia possa agire. Un pixel di camera è 0,042 gradi d'arco. A un'esposizione di 1/60 s - un telefono in una stanza poco illuminata, che espone per uno schermo luminoso - un quarto di pixel è una velocità angolare di circa 0,6 gradi al secondo. È una mano tenuta ragionevolmente ferma, e non è una mano che si allunga da un divano.
Applicata al movimento del codice stesso sullo schermo, la stessa aritmetica è brutale. A tre altezze di schermo, un'altezza di schermo corrisponde a 457 pixel di camera, quindi un codice che va alla deriva sullo schermo con un'esposizione di 1/60 s ha un budget di circa un trentesimo di altezza di schermo al secondo. Un codice che entra scivolando con eleganza in due secondi, una lenta carrellata sul packshot, una camera a mano dietro un codice sovraimpresso, un rimbalzo, una rotazione, un ingrandimento: sono tutti da uno a due ordini di grandezza fuori da quel budget per l'intera durata del movimento. Il codice è decorativo finché non si ferma.
Perché i tassi di lettura sono probabilità e la tabella delle dimensioni no
In queste due tabelle si nasconde una distinzione che conta più di entrambe. Un codice troppo piccolo fallisce in modo deterministico: ogni fotogramma è lo stesso fotogramma, trenta volte al secondo, e nessuno decodifica. Un codice abbastanza grande ma in movimento fallisce in modo casuale: la maggior parte dei fotogrammi è strisciata, alcuni no, e la scansione riesce nell'istante in cui arriva un fotogramma pulito.
Il tempo di permanenza non è quindi un rimedio universale, è il rimedio di esattamente un modo di guasto. Tre secondi in più comprano novanta tentativi in più contro un problema di movimento e non comprano assolutamente nulla contro un problema di campionamento. È la cosa più utile di tutto l'articolo per chi scrive un brief di produzione: se il codice è abbastanza grande ed è fermo, verrà letto quasi subito; se è troppo piccolo, non verrà letto neanche lasciandolo in onda per tutta l'interruzione pubblicitaria.
Due modi in cui uno spot rimpicciolisce il proprio codice senza accorgersene
Tutto quel che precede ha dato per scontata una URL di 25 caratteri con correzione d'errore M. Entrambe le premesse vengono rotte di continuo, e da persone che cercano di aiutare, e vengono rotte allo stesso modo: aggiungono moduli, il codice mantiene la stessa dimensione fisica sullo schermo, e ogni modulo diventa più piccolo.
La stringa di tracciamento
La URL di campagna arriva dal centro media con i parametri di misurazione attaccati, perché è così che la campagna viene attribuita. Nessuno guarda cosa questo faccia alla griglia.
| La URL | Caratteri | Versione | Moduli | Pixel per modulo | Tasso di lettura |
|---|---|---|---|---|---|
| Un redirect breve su un dominio tuo | 12 | 2 | 25 | 4,15 | 100% |
| Una URL breve con lo schema scritto | 27 | 3 | 29 | 3,70 | 100% |
| Una URL di campagna leggibile | 46 | 4 | 33 | 3,34 | 93% |
| La stessa con parametri UTM | 93 | 6 | 41 | 2,80 | 77% |
| La stessa con una stringa di tracciamento completa | 157 | 9 | 53 | 2,25 | 48% |
Una stringa di tracciamento completa dimezza il tasso di lettura di un codice per il resto dimensionato bene. E lo fa esattamente nel momento in cui il team marketing si sta sforzando di più per misurare la campagna, il che ne fa un buon candidato al pattern più autolesionista dell'intera materia. Il rimedio non è rinunciare all'attribuzione: è mettere un percorso breve su un dominio tuo davanti ai parametri e agganciarli al redirect, dove non costano nulla. Quanto costa davvero un redirect in affitto lungo la vita di una campagna è un altro discorso, e sbocca nella stessa raccomandazione.
Alzare la correzione d'errore
L'altro riflesso è alzare il livello di correzione d'errore, sulla teoria che una situazione più difficile da leggere chieda più ridondanza. È la leva sbagliata ed è pure dannosa, per lo stesso motivo per cui lo è con il contrasto basso: crea ridondanza aggiungendo moduli, e i moduli sono la risorsa scarsa.
| Correzione d'errore | Versione | Moduli | Tasso al 25% dello schermo | Tasso al 30% dello schermo |
|---|---|---|---|---|
| L | 2 | 25 | 100% | 100% |
| M | 3 | 29 | 99% | 100% |
| Q | 3 | 29 | 99% | 100% |
| H | 4 | 33 | 74% | 92% |
H esiste per i codici che si sporcano, si strappano, vengono stampati sopra o restano in parte coperti da un logo. Un codice su un televisore non è niente di tutto questo: viene consegnato perfetto pixel per pixel e poi sottocampionato, e il sottocampionamento non è un danno che i blocchi di correzione d'errore possano riparare, perché impedisce ai moduli di essere letti in partenza. Usa L o M sullo schermo e spendi i moduli risparmiati per rendere più grande ciascuno di essi. Il compromesso completo fra capacità di recupero e dimensione del modulo vale qui immutato; gli schermi stanno semplicemente all'estremo in cui la ridondanza vale meno.
Il tempo è il budget che nessuno annota
Questa sezione è una stima e non una misura, e conviene dirlo prima delle cifre e non dopo. Niente nel banco di prova può misurare quanto ci mette una persona a reagire davanti a un televisore, e quello studio non l'abbiamo fatto.
La sequenza che chi guarda deve completare non è breve. Accorgersi del codice e decidere che vale la pena agire richiede uno o due secondi. Recuperare e sbloccare il telefono, da due a quattro. Arrivare alla fotocamera, altri uno-tre, di più se il telefono si riapre su quello che c'era prima. Inquadrare il televisore, lasciare che l'autofocus si assesti e stare fermi, altri due-quattro. Fanno da sei a tredici secondi partendo da zero, contro un packshot che di solito sta in onda dai tre ai cinque.
C'è un'attenuante reale e va riconosciuta: buona parte della televisione la guarda gente che ha già il telefono in mano, il che elimina il recupero e quasi tutto lo sblocco. Presumibilmente è l'intera ragione per cui qualcuno ha pensato che i QR code avrebbero funzionato in televisione. È un buon argomento perché il formato esista, e non è un argomento a favore di tre secondi, perché gli ultimi due passaggi - arrivare alla fotocamera, poi mirare e stare fermi - non li accorcia un telefono già in mano.
La nostra raccomandazione, dichiarata per l'opinione che è: otto secondi di codice fermo e correttamente dimensionato sono il minimo che valga la pena mettere in un brief, e se la creatività non può cedere otto secondi, allora la creatività ha deciso che il codice è decorativo. È una decisione legittima. Semplicemente non dovrebbe essere presa per caso e poi misurata come tasso di scansione.
Lo spot che tutti ricordano ha obbedito all'aritmetica
C'è un controesempio famoso a tutto questo, ed è famoso proprio perché ha fatto assolutamente tutto ciò che questo articolo raccomanda. Nel febbraio 2022 Coinbase mandò in onda uno spot da sessanta secondi al Super Bowl che non era altro che un QR code che cambiava colore rimbalzando su uno schermo per il resto nero. Variety e CNN lo raccontarono all'epoca, e la seconda coprì la parte che tutti ricordano: la landing page ricevette così tanto traffico che l'app cadde.
Mettilo accanto alle tabelle qui sopra. Il codice era grande, perché aveva l'intero fotogramma. Era solo, quindi niente competeva per l'attenzione di chi guardava né per i bit dell'encoder. È rimasto in onda sessanta secondi invece di quattro, cioè circa 1.800 fotogrammi di camera in cui un decodificatore poteva trovarne uno pulito. E andava alla deriva lentamente invece di tagliare o scalare, il che tiene un codice in movimento dentro il budget di strisciata per esposizione in cui un movimento rapido non ci sta.
L'unica cosa che ha fatto e che questo articolo sconsiglierebbe è il cambio di colore, e persino quello è meno avventato di quanto sembri: la palette è rimasta scuro su chiaro o chiaro su scuro per tutto il tempo, invece di accoppiare due mezzitoni, che è la distinzione che decide davvero se un codice a colori sopravvive a una fotocamera. Quello che non ha fatto è mettere un codice piccolo in un angolo per quattro secondi.
La conclusione non è che ogni marca debba comprare sessanta secondi di Super Bowl. È che lo spot sempre citato come prova che i QR code funzionano in televisione è uno spot che ha speso tutto il suo budget creativo per soddisfare la fisica. Citato come precedente per un codice nell'angolo di un packshot, dimostra il contrario di ciò per cui di solito viene usato.
Mettilo sul tuo televisore in dieci minuti
Tutte le cifre qui sopra sono cifre per una fotocamera simulata e un decodificatore più debole di quelli che la gente ha in tasca. La cifra che conta per una campagna specifica è quella prodotta dal suo file finito, su uno schermo vero e da un divano vero, e si ottiene in dieci minuti.
- Riproduci il file consegnato, non il master. Metti il deliverable vero sul televisore vero: trasmettilo, caricalo da una chiavetta o pubblicalo come video non in elenco sulla piattaforma di destinazione. Rivedere un master ProRes su un monitor calibrato è la prova che ha già passato e non ti ha detto niente.
- Siediti dove si siede la gente e annota il rapporto. Misura la distanza dallo schermo al divano, misura l'altezza dello schermo e dividi. Quel rapporto è la k di tutte le tabelle qui sopra, ed è il numero che ti permette di confrontare il tuo risultato con loro. Qualunque valore fra tre e quattro e mezzo è una stanza normale.
- Scansiona con due fotocamere native. Una iOS e una Android, usando la fotocamera integrata e non un'app di scansione. Le app di scansione sono più tolleranti di quelle native e faranno passare codici che il tuo pubblico non riesce a leggere. Dai a ogni telefono cinque secondi, che è quel che dà il packshot.
- Fallo alla buona. Con una mano, sprofondato nel divano, senza appoggiare il gomito da nessuna parte. Il risultato accurato non è il risultato: un quarto di pixel di camera di movimento durante un'esposizione è tutto il budget di movimento, e appoggiarsi vale più di così.
- Fai il controllo prima di concludere qualsiasi cosa. Avvicinati e scansiona lo stesso fotogramma congelato da un metro. Se fallisce, il problema è contrasto, zona di silenzio o payload e non dimensione, e ingrandire il codice non lo risolverà.
- Sali di cinque per cento alla volta finché non passa due volte, poi aggiungi un passo. Riesporta con il codice più grande del cinque per cento dell'altezza dello schermo e ripeti finché entrambi i telefoni lo scansionano due volte di fila dal divano. Poi aggiungi un altro passo. Quell'ultimo passo è il margine per i telefoni, le stanze e le viste che la prova non ha incluso.
Se la risposta che torna è che il codice deve occupare un terzo dello schermo, quella è la risposta vera, ed è meglio averla prima delle riprese che dopo il report di campagna.
Cosa mettere nello spot al suo posto
La raccomandazione con cui questo articolo si chiude è più stretta del suo titolo. I QR code nella pubblicità video non sono inutili: sono cari, in superficie di schermo e in secondi, e quasi ogni spot che ne usa uno si rifiuta di pagare entrambi i prezzi e poi dà la colpa al formato.
- Se usi un codice, dagli da un quarto a un terzo dell'altezza dello schermo e otto secondi da fermo. In pratica significa che il codice è il packshot e non un ornamento sopra il packshot. È tutta qui la raccomandazione; tutto il resto ne è una conseguenza.
- Tieni il payload sotto i 25 caratteri circa. Un percorso breve su un dominio tuo, con i parametri di tracciamento agganciati al redirect invece che dentro il codice. Vale più di qualunque altra singola modifica, perché ricompra moduli senza costare nulla a nessuno.
- Usa correzione d'errore L o M, non H. Su uno schermo il codice viene consegnato intatto e poi sottocampionato, e contro il sottocampionamento la ridondanza non serve.
- Non muoverlo, non scalarlo, non farlo ruotare né entrare scivolando. Il movimento ha un budget ben sotto un pixel di camera per esposizione, e qualsiasi animazione ne esce di ordini di grandezza. Anima tutto il resto del packshot.
- Se lo spot verrà guardato soprattutto sul telefono, non usare un codice. Lo schermo che riproduce lo spot è lo schermo che dovrebbe leggerlo, e un secondo dispositivo non c'è. Usa il formato toccabile che la piattaforma mette a disposizione.
- Valuta invece una URL breve, detta e scritta. Un dominio memorabile letto ad alta voce e mostrato come testo non ha dimensione angolare minima, sopravvive al movimento, funziona sullo schermo di un telefono e non obbliga nessuno a tenere fermo niente. Converte peggio per contatto e fallisce in modo meno assoluto, e per un packshot da quattro secondi quello scambio è di solito nel verso giusto.
- Il cinema è l'eccezione che vale la pena conoscere. La stessa aritmetica che esclude l'angolo di un televisore è generosa in sala, dove lo schermo occupa un angolo molto più grande da qualsiasi poltrona. Un codice che a casa sarebbe senza speranza può essere modesto su uno schermo cinematografico.
Una nota onesta sul nostro strumento, visto che questo articolo ha appena raccomandato qualcosa che non fa. KoloQR, un generatore di QR code gratuito con QR code circolari e di forme personalizzate, fissa la correzione d'errore al livello H, perché libera uno spazio in mezzo alla griglia per un logo e H è ciò che paga quello spazio. È l'impostazione giusta per un codice stampato con un marchio al centro e quella sbagliata per uno schermo, quindi un codice esportato dal generatore per uno spot video porta una versione in più di quel che gli serve. A un terzo dell'altezza dello schermo non costa nulla di misurabile; a un quinto è parte del motivo per cui un quinto non funziona.
Il limite di tutto quanto sopra è quello dichiarato in apertura: abbiamo misurato una catena software, non un salotto. Nessun telefono è stato puntato verso un televisore per questo, e il decodificatore che abbiamo usato è più debole di quelli che leggeranno davvero il tuo spot, il che significa che il precipizio vero sta sotto le cifre di queste tabelle piuttosto che sopra. A cosa servono le tabelle è a dirti da che parte di esso si trovi un codice nell'angolo, e non è una questione di poco.
Crea il tuo codice QR
Gratis, senza account e senza filigrana. Scegli una forma, aggiungi un logo, controlla il contrasto ed esporta in SVG, PDF, EPS o PNG: un codice statico senza abbonamento dietro.
Genera codice QRQuestions? Answered
Circa da un quarto a un terzo dell'altezza dello schermo. Nelle nostre misure un codice al 25% dell'altezza dello schermo è stato letto il 95% delle volte da una normale distanza da salotto e uno al 30% tutte le volte, mentre uno al 20% è stato letto il 6% delle volte e nulla di più piccolo è stato letto. La risposta è una frazione e non una misura in centimetri perché ci si siede più lontano dai televisori grandi: la stessa percentuale vale su qualsiasi schermo.
Perché la fotocamera non riceve abbastanza pixel su ogni casella della griglia del codice. Un decodificatore ha bisogno di circa due pixel e mezzo di camera per modulo, e un codice grande quanto un angolo su un televisore visto da tre metri ne consegna circa uno. Questo fallimento non è graduale - la transizione fra funziona e impossibile sta in un quarto di pixel per modulo - quindi il codice si legge subito oppure mai, per quanto a lungo gli punti addosso il telefono.
Molto meno di quanto si creda. Abbiamo compresso il master a qualità JPEG 40, ben sotto qualsiasi cosa consegnerebbe un'emittente o una piattaforma di streaming, e il tasso di lettura si è spostato di uno o due punti senza che la soglia di fallimento si muovesse di un millimetro. Ciò che distrugge i QR code in televisione non è l'encoder, è la distanza fra lo schermo e chi guarda, e quella nessun bitrate la ripara.
Almeno otto secondi, come opinione e non come misura. Chi guarda deve accorgersi del codice, trovare un telefono, sbloccarlo, arrivare alla fotocamera, inquadrare il televisore e stare fermo: da sei a tredici secondi partendo da zero, contro un packshot che di solito dura da tre a cinque. Il tempo in più aiuta solo se il codice è già abbastanza grande: la permanenza compra più tentativi contro un problema di movimento e niente contro un problema di dimensione.
Solo molto lentamente. Il budget di movimento è circa un ottavo di modulo di strisciata durante una singola esposizione, che per un codice di dimensione tipica sta fra un quarto di pixel e un pixel di camera: grosso modo un trentesimo di altezza di schermo al secondo di deriva. Scivolamenti, carrellate, ingrandimenti e rotazioni ne escono di uno o due ordini di grandezza, quindi un codice è decorativo per tutta l'animazione e diventa scansionabile solo quando si ferma.
No: abbassalo. La correzione d'errore aggiunge ridondanza aggiungendo moduli, e a dimensione fissa sullo schermo più moduli significa meno pixel di camera su ciascuno. Nelle nostre misure lo stesso payload al livello H è stato letto il 74% delle volte dove i livelli L e M sono stati letti il 100%, perché H ha speso una versione intera per riparare danni che uno schermo non infligge mai. Il sottocampionamento non è un danno riparabile dalla correzione d'errore, perché impedisce del tutto la lettura dei moduli.
Parecchio, alle dimensioni che usano gli spot video. Una URL di campagna di 46 caratteri è un codice da 33 moduli; la stessa URL con una stringa di tracciamento completa fa 157 caratteri e 53 moduli, e a dimensione fissa sullo schermo questo ha portato il tasso di lettura dal 93% al 48% nella nostra prova. Metti nel codice un percorso breve su un dominio tuo e aggancia i parametri al redirect, dove sono gratis.
Raramente, e per un motivo che non ha niente a che vedere con la dimensione. La maggior parte del video social si guarda sul telefono, e lo schermo che riproduce lo spot è lo stesso che dovrebbe leggere il codice: non c'è un secondo dispositivo da puntare. Dove la piattaforma offre un link toccabile, quello è nettamente meglio; un codice ha senso solo per video social davvero guardato su un televisore o su uno schermo da scrivania.
Il cinema è il caso amichevole. L'aritmetica dipende solo dall'angolo che lo schermo occupa per chi guarda, e uno schermo cinematografico occupa da qualsiasi poltrona un angolo molto più grande di quanto faccia un televisore da un divano: un codice modesto lì funziona bene. I cartelloni variano enormemente e vanno calcolati uno per uno - un codice su uno schermo grande a cinquanta metri dal marciapiede può occupare un angolo più piccolo di un codice grande come un telefono tenuto a braccio teso.
Riproduci il file consegnato su un televisore vero, siediti dove si siederà il pubblico e scansionalo con l'app fotocamera integrata di un telefono iOS e di uno Android, tenuti con una mano e senza cura. Dai a ogni telefono gli stessi pochi secondi che il packshot dà a chi guarda. Qualsiasi prova fatta su un monitor di montaggio o su un portatile passa, perché quelle distanze sono due o tre volte più corte di un divano: ed è esattamente per questo che il problema sopravvive alla produzione.
Continua a esplorare
Pagine che riprendono da dove finisce questa: lo stesso contesto, lo stesso tipo di codice o la prossima decisione da prendere.
Negozi al dettaglio
Schede prodotto, disponibilità e link alle recensioni su etichette da scaffale, vetrine e cartelli alla cassa.
Agenzie di eventi
Codici prodotti per l'evento di qualcun altro: reindirizzamenti del cliente, specifiche per gli espositori, tirature di badge e segnaletica dimensionata sulla sala.
Veicoli
Furgoni, auto e flotte - la dimensione che il codice vuole visto dal marciapiede e il punto della carrozzeria dove sopravvive a rivetti, fughe e sporco.
Cartelloni
Impianti 6x3, pensiline e maxi affissioni - cosa chiede l'aritmetica della distanza a questa scala e dove invece sconsiglia del tutto il codice.
Codici QR creativi
Direzioni di design ed esempi reali di codici QR che appaiono intenzionali senza rinunciare all'affidabilità della scansione.
L'insegna dura dieci anni. L'abbonamento si rinnova ogni mese.
Il motivo che stampi contiene il dominio del fornitore, non il tuo - ed è per questo che un piano scaduto trasforma un'insegna in un oggetto morto, e perché un dominio che possiedi è l'unica versione portabile di un codice dinamico.
Perché KoloQR?
- Crea codici QR per siti web, menù, Wi-Fi, PDF e biglietti da visita
- Personalizza colori, loghi e forme uniche
- Scarica file PNG e SVG di alta qualità
- Pensato sia per la stampa che per il digitale

