Guide per piattaforma 28 marzo 2026

Come aggiungere una bolla video a React o Vue

Scopri come integrare CompleteGreet in React, Vue, Next.js o Nuxt e come controllare percorsi, prestazioni, accessibilità e dispositivi reali.

Come aggiungere una bolla video a React o Vue

In breve

  • Dopo aver copiato il codice di integrazione da CompleteGreet, puoi aggiungere la bolla video al punto di ingresso del sito. Il tempo necessario dipende dalla struttura dell’applicazione e dalle prove.
  • Dal pannello puoi decidere su quali pagine mostrare la bolla e come deve comportarsi.
  • Prova sempre la bolla su dispositivi reali. Ridimensionare una finestra del browser non mostra tutti i possibili problemi.

Come si installa CompleteGreet su React o Vue?

Per aggiungere un widget con bolla video a React o Vue, usa il codice di integrazione fornito nel pannello CompleteGreet. Il widget viene caricato separatamente dall’albero dei componenti. Segui comunque la documentazione aggiornata, perché il metodo può cambiare in base al framework e al tipo di rendering.

Come integrare CompleteGreet in React o Vue

Procedi così:

  1. Accedi al pannello CompleteGreet e apri le istruzioni di installazione.
  2. Scegli l’opzione adatta a un sito personalizzato oppure quella indicata nella documentazione attuale per il tuo framework.
  3. Copia il codice associato al sito. Controlla che contenga l’identificativo corretto del progetto.
  4. Aggiungi il codice al layout principale o al modello HTML seguendo le indicazioni del framework.
  5. Avvia l’ambiente di sviluppo e visita una pagina interessata dalle regole. Verifica che la bolla venga caricata senza errori.

Se la bolla non compare, controlla cache, consenso, dominio autorizzato e console del browser prima di cambiare il codice.

E con Next.js e Nuxt?

Con Next.js o Nuxt devi evitare che il widget venga inizializzato durante il rendering sul server. Caricalo solo nel browser con il metodo consigliato dalla versione del framework in uso.

In Next.js puoi usare gli strumenti ufficiali per caricare script nel client. Scegli una strategia compatibile con il layout e verifica che non produca errori di idratazione. Le API cambiano tra le versioni, quindi controlla la documentazione attuale.

In Nuxt puoi registrare un plugin eseguito solo nel client. Nome del file e configurazione dipendono dalla versione di Nuxt. Verifica il metodo ufficiale per evitare errori causati dall’uso di window durante il rendering sul server.

Dopo il caricamento, prova il comportamento a ogni cambio di pagina. Non presumere che stato, visibilità o riproduzione restino identici con qualsiasi router.

Cosa si può personalizzare su React o Vue?

Regole per pagine e visitatori

Le regole degli URL permettono di mostrare la bolla su percorsi specifici, per esempio una pagina prezzi o demo. Controlla nel piano attuale quali condizioni per dispositivo, tempo o scorrimento sono davvero disponibili.

Impostazioni della bolla video per React o Vue

Le regole vengono gestite dal pannello, quindi molte modifiche non richiedono un nuovo rilascio dell’applicazione. Prova comunque il risultato nel sito reale dopo ogni cambiamento.

Azioni del pulsante e comportamento al clic

In base alla configurazione, il pulsante può aprire un indirizzo, un modulo, un appuntamento, una richiesta di richiamata, una chat oppure un’azione di acquisto.

Se vuoi collegare il widget allo stato dell’applicazione, usa soltanto eventi e API documentati. Verifica router, gestione del consenso ed errori prima della pubblicazione.

Campi del modulo e inoltro dei contatti

Puoi configurare un modulo tradizionale o in più passaggi. Chiedi solo i dati necessari e spiega come verranno usati.

Controlla nel pannello le integrazioni e i webhook disponibili. Prova consegna, notifiche, duplicati e gestione degli errori prima di usare i contatti in un CRM o in altri strumenti.

Identità visiva e posizione

Adatta colori, miniatura e posizione al sito. Su ogni dimensione dello schermo verifica che la bolla non copra navigazione, moduli, chat o altri elementi fissi.

Tra i migliori widget video la scelta giusta è quella che si integra bene con il tuo design e resta accessibile. Controlla personalmente font, contrasto e spaziatura, senza presumere che ogni stile venga ereditato automaticamente.

#cg-ig-PL8 {
–cg-primary: #3D5ACE;
–cg-accent: #E48333;
–cg-bg: #f7f7fb;
–cg-border: #e2e2ea;
–cg-text: #1a1a2e;
–cg-text-sec: #4a4a68;
–cg-text-muted: #7a7a96;
–cg-white: #ffffff;
font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, Helvetica, Arial, sans-serif;
background: var(–cg-bg);
border: 1px solid var(–cg-border);
border-radius: 12px;
max-width: 600px;
margin: 0 auto;
overflow: hidden;
}
#cg-ig-PL8 .cg-accent-bar {
height: 4px;
background: var(–cg-primary);
}
#cg-ig-PL8 .cg-header {
padding: 24px 24px 16px;
text-align: center;
}
#cg-ig-PL8 .cg-header h3 {
margin: 0 0 8px;
font-size: 20px;
font-weight: 700;
color: var(–cg-text);
line-height: 1.3;
}
#cg-ig-PL8 .cg-header p {
margin: 0;
font-size: 14px;
color: var(–cg-text-sec);
line-height: 1.5;
}
#cg-ig-PL8 .cg-progress {
display: flex;
justify-content: space-between;
padding: 0 32px 24px;
position: relative;
}
#cg-ig-PL8 .cg-progress::before {
content: ”;
position: absolute;
top: 12px;
left: 48px;
right: 48px;
height: 2px;
background: var(–cg-border);
z-index: 0;
}
#cg-ig-PL8 .cg-progress-step {
width: 28px;
height: 28px;
border-radius: 50%;
background: var(–cg-white);
border: 2px solid var(–cg-border);
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: 700;
color: var(–cg-text-muted);
position: relative;
z-index: 1;
}
#cg-ig-PL8 .cg-progress-step.active {
border-color: var(–cg-primary);
background: var(–cg-primary);
color: var(–cg-white);
}
#cg-ig-PL8 .cg-progress-step.complete {
border-color: var(–cg-primary);
background: var(–cg-white);
color: var(–cg-primary);
}
#cg-ig-PL8 .cg-steps {
padding: 0 24px 24px;
}
#cg-ig-PL8 .cg-step {
display: flex;
gap: 16px;
margin-bottom: 20px;
position: relative;
}
#cg-ig-PL8 .cg-step:last-child {
margin-bottom: 0;
}
#cg-ig-PL8 .cg-step-badge {
width: 32px;
height: 32px;
border-radius: 50%;
background: var(–cg-primary);
color: var(–cg-white);
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-weight: 700;
flex-shrink: 0;
}
#cg-ig-PL8 .cg-step-content {
flex: 1;
background: var(–cg-white);
border: 1px solid var(–cg-border);
border-radius: 8px;
padding: 16px;
}
#cg-ig-PL8 .cg-step-title {
font-size: 15px;
font-weight: 600;
color: var(–cg-text);
margin: 0 0 6px;
}
#cg-ig-PL8 .cg-step-desc {
font-size: 13px;
color: var(–cg-text-sec);
margin: 0 0 12px;
line-height: 1.5;
}
#cg-ig-PL8 .cg-code-block {
background: #1a1a2e;
border-radius: 6px;
padding: 12px 40px 12px 12px;
position: relative;
overflow-x: auto;
}
#cg-ig-PL8 .cg-code-block pre {
margin: 0;
font-family: “SF Mono”, Monaco, “Cascadia Code”, “Roboto Mono”, Consolas, “Courier New”, monospace;
font-size: 12px;
line-height: 1.6;
color: #e2e2ea;
white-space: pre-wrap;
word-break: break-word;
}
#cg-ig-PL8 .cg-code-block .cg-copy-btn {
position: absolute;
top: 8px;
right: 8px;
background: var(–cg-accent);
color: var(–cg-white);
border: none;
border-radius: 4px;
padding: 4px 10px;
font-size: 11px;
font-weight: 600;
cursor: default;
}
#cg-ig-PL8 .cg-cta {
padding: 0 24px 24px;
text-align: center;
}
#cg-ig-PL8 .cg-cta-btn {
display: inline-block;
background: var(–cg-primary);
color: var(–cg-white);
text-decoration: none;
font-size: 15px;
font-weight: 600;
padding: 14px 28px;
border-radius: 8px;
transition: background 0.2s;
}
#cg-ig-PL8 .cg-cta-btn:hover {
background: #2f48a8;
}
#cg-ig-PL8 .cg-source {
text-align: center;
padding: 0 24px 20px;
font-size: 11px;
color: var(–cg-text-muted);
}
#cg-ig-PL8 .cg-source a {
color: var(–cg-text-muted);
text-decoration: none;
}
@media (max-width: 480px) {
#cg-ig-PL8 .cg-header {
padding: 20px 16px 12px;
}
#cg-ig-PL8 .cg-progress {
padding: 0 20px 20px;
}
#cg-ig-PL8 .cg-progress::before {
left: 32px;
right: 32px;
}
#cg-ig-PL8 .cg-steps {
padding: 0 16px 20px;
}
#cg-ig-PL8 .cg-step {
gap: 12px;
}
#cg-ig-PL8 .cg-step-content {
padding: 14px;
}
#cg-ig-PL8 .cg-cta {
padding: 0 16px 20px;
}
#cg-ig-PL8 .cg-cta-btn {
padding: 12px 20px;
font-size: 14px;
width: 100%;
box-sizing: border-box;
}
}
Procedura guidata in cinque passaggi per aggiungere una bolla video CompleteGreet a un sito React o Vue, dalla preparazione dell’account alle prove prima della pubblicazione.

Configura CompleteGreet su React o Vue

Aggiungi una bolla video seguendo cinque passaggi controllabili

1
2
3
4
5

1

Prepara l’account

Crea o apri il tuo account CompleteGreet e recupera l’identificativo del sito dal pannello.

2

Copia il codice

Usa il codice di integrazione mostrato nella documentazione attuale di CompleteGreet.

<codice di integrazione CompleteGreet>

3

Caricalo nel client

Inserisci lo script nel layout principale con il metodo consigliato da React, Vue, Next.js o Nuxt.

<script CompleteGreet caricato solo nel browser>

4

Collega il sito

Usa l’identificativo corretto e verifica dominio, consenso e regole degli URL.

<identificativo del sito e posizione configurati>

5

Personalizza e prova

Carica il video, imposta l’aspetto e prova il percorso completo su computer e dispositivi mobili.

Fonte: documentazione CompleteGreet

See the static HTML data above for the full breakdown.

Cosa controllare prima della pubblicazione?

Prova la bolla su dispositivi reali. iOS, Android e i browser desktop possono gestire in modo diverso video, audio, elementi fissi e consenso.

Controlla i Core Web Vitals prima e dopo l’installazione. Un widget non dovrebbe peggiorare in modo evidente LCP, CLS o la risposta alle interazioni. Le indicazioni di Google sui Web Vitals spiegano come misurare stabilità visiva e prestazioni. Usa dati del sito reale invece di promettere una soglia sempre invariata.

Controlla le regole di pagina su ogni percorso importante. In un’applicazione a pagina singola il widget può restare attivo durante la navigazione oppure essere reinizializzato, a seconda dell’integrazione.

Verifica che la presentazione compaia soltanto sugli URL scelti e che venga nascosta nei flussi di pagamento o nelle pagine private dove potrebbe disturbare.

Controlla anche l’uso dei dati mobili.

Evita di avviare automaticamente video pesanti a ogni visita. Su mobile, una miniatura statica con un pulsante di riproduzione chiaro lascia al visitatore la scelta di avviare il contenuto.

Prova i livelli visivi con menu, finestre modali e pannelli laterali. Il menu o il carrello non devono apparire dietro la bolla, e la bolla non deve scomparire dietro una finestra importante.

Infine, prova l’intero percorso come utente non autenticato. Cancella cache e cookie di prova, poi percorri le pagine dalla visita iniziale all’azione finale. La bolla video deve essere utile e non interrompere il visitatore nel momento sbagliato.

L’integrazione di una bolla in React o Vue consiste nel caricare il codice CompleteGreet nel browser senza bloccare il rendering dell’applicazione. Posizione esatta e strategia dipendono dal framework e dalla versione usata.

Segui la sequenza indicata nella documentazione attuale, poi verifica caricamento iniziale, cambio di percorso, consenso e stato del video.

Accedi al pannello CompleteGreet, aggiungi il sito e inserisci il dominio corretto. Scegli l’opzione di installazione compatibile con l’architettura del progetto.

Copia il codice mostrato nell’area di installazione. L’esempio deve essere sostituito con l’identificativo effettivo del tuo sito:

<codice script CompleteGreet con identificativo del sito>
  1. Apri il layout principale o il modello HTML dell’applicazione.
  2. Carica il codice nel browser usando il punto e il metodo consigliati dalla documentazione ufficiale del framework.
  3. Salva le modifiche e riavvia l’ambiente di sviluppo se il progetto lo richiede.

Il caricamento asincrono riduce il rischio di bloccare il rendering, ma non garantisce prestazioni identiche su ogni sito. Misura il risultato prima e dopo l’integrazione.

Con React Router o Vue Router, verifica cosa succede durante il cambio di percorso. Non dare per scontato che ogni versione del widget rilevi automaticamente tutti gli URL o conservi lo stato del video.

Una bolla video può facilitare domande e contatti nelle pagine ad alta intenzione, ma non esiste un aumento percentuale valido per ogni sito. Definisci l’azione da misurare e confronta periodi e segmenti simili.

Prova l’integrazione su computer e mobile prima della pubblicazione. La bolla deve restare visibile senza coprire i contenuti e i controlli devono seguire le indicazioni W3C sull’accessibilità per tastiera, lettori di schermo, contrasto e controllo della riproduzione.

Domande frequenti

Come aggiungo CompleteGreet a React senza aumentare il bundle?

Carica il codice CompleteGreet come script esterno usando il metodo consigliato dal framework. Misura comunque dimensioni, richieste e tempi nel progetto reale, perché il risultato dipende anche dagli altri script presenti.

Perché la bolla CompleteGreet non compare durante lo sviluppo locale?

Controlla che il dominio e la porta locali siano autorizzati nelle impostazioni del sito. Verifica anche consenso, cache, regole degli URL, errori della console e blocchi di rete.

CompleteGreet rallenta un’applicazione React?

Ogni script esterno può influire sulle prestazioni. Confronta Core Web Vitals e richieste di rete prima e dopo l’attivazione, soprattutto su mobile e con connessioni lente.

Posso mostrare video diversi su percorsi diversi di React Router?

Usa le regole degli URL e soltanto gli eventi o le API documentati nella versione attuale. Prova ogni percorso e ogni cambio di navigazione prima della pubblicazione.

CompleteGreet funziona con framework React renderizzati sul server come Next.js?

Può essere caricato soltanto nel browser, ma il metodo corretto dipende dalla versione e dall’architettura di Next.js. Segui la documentazione attuale e controlla gli errori di idratazione.

Quanto costa CompleteGreet per una startup SaaS React con 10.000 visitatori mensili?

Prezzi, limiti di visitatori e funzioni incluse possono cambiare. Consulta la pagina dei prezzi aggiornata e calcola il costo in base al traffico e alle esigenze reali.

Azad Habib

Azad Habib

CEO & Founder of CompleteGreet

Azad Habib is the founder of CompleteGreet. With a background in ecommerce and user experience, he works at the intersection of trust, clarity, and conversion to help businesses make their websites feel more human from the first click.