Indholdsfortegnelse
Kort fortalt
- Når du har hentet integrationskoden fra CompleteGreet, kan opsætningen i React eller Vue være enkel. Tidsforbruget afhænger af framework, arkitektur og test.
- De tilgængelige indstillinger kan styre, hvornår boblen vises, og hvilke ruter den vises på. Kontrollér funktionerne i den aktuelle løsning.
- Test altid videoboblen på rigtige enheder. Værktøjer, der blot ændrer størrelsen på browservinduet, fanger ikke alt.
Hvordan installerer du CompleteGreet i React eller Vue?
En videoboble kan føjes til React eller Vue med integrationskoden fra CompleteGreet. Den rigtige metode afhænger af projektet, og om siderne gengives i browseren eller på serveren. Følg den aktuelle installationsvejledning i stedet for at antage, at den samme kode passer alle steder.

En almindelig arbejdsgang ser sådan ud:
- Log ind i CompleteGreet, og åbn området til installation eller websites. Menunavnet kan ændre sig mellem versioner.
- Vælg den platform eller integrationsmetode, der passer til projektet. Til en almindelig React- eller Vue-opsætning kan en generel HTML-integration være relevant.
- Kopiér den kode, der vises for dit website. Kontrollér, at den indeholder det rigtige website-id og kommer fra din konto.
- Placer koden dér, hvor den aktuelle dokumentation til frameworket og CompleteGreet anbefaler det, og gem ændringen.
- Start udviklingsmiljøet, og besøg flere ruter. Kontrollér, hvor widgetten vises, og om den indlæses uden fejl.
Hvis boblen ikke vises, bør du kontrollere cache, fejl i konsollen, domæneregler og samtykkeindstillinger, før du ændrer koden.
Hvad med Next.js og Nuxt?
Med Next.js eller Nuxt skal du tage højde for serverrendering. Widgetkode, der bruger browserobjekter, må kun køre på klientsiden.
I Next.js bør du bruge den klientbaserede scriptmetode, der anbefales til den version, projektet benytter. Kontrollér indlæsningsstrategien, og test, at widgetten ikke skaber hydreringsfejl.
I Nuxt kan du bruge et klientbaseret plugin eller en anden dokumenteret metode. Filnavne og konfiguration varierer mellem Nuxt-versioner, så sammenlign med den aktuelle Nuxt-dokumentation før implementering.
Når widgetten er indlæst, skal du teste, hvordan den opfører sig ved ruteskift. Antag ikke, at den automatisk bevarer den rigtige tilstand på alle ruter.
Hvad kan du tilpasse i React eller Vue?
Målretning efter side og besøgende
Hvis kontoen tilbyder sideregler, kan du vælge bestemte ruter, for eksempel en pris- eller demoside. Andre betingelser som enhed, tid på siden eller scrolldybde skal kontrolleres i den aktuelle plan.

Regler, der administreres i kontrolpanelet, kan opdateres uden en ny udrulning af selve websitet. Test dog stadig, hvordan ændringen indlæses i den konkrete integration.
Handlinger og klikadfærd
Knappen i videoboblen kan bruge de handlinger, som kontoen tilbyder, for eksempel at åbne en webadresse eller starte en anden godkendt handling. Byg ikke omkring en integration, før du har bekræftet, at den understøttes.
Hvis CompleteGreet tilbyder dokumenterede hændelser eller API’er til React eller Vue, kan de kobles til applikationens logik. Hold integrationen adskilt fra routing og tilstand, og test fejlsituationer.
Formularfelter og videresendelse af henvendelser
Hvis planen indeholder en formular, kan du vælge de tilgængelige felter og etiketter. Bed kun om de oplysninger, du har brug for, og kontrollér validering og samtykke før udgivelse.
Indsendelser kan eventuelt sendes videre med understøttede integrationer eller webhooks. Bekræft, hvilke destinationer der findes, og undgå at sende personoplysninger til en kanal uden den rette adgangskontrol.
Visuelt udtryk og placering
Tilpas de tilgængelige farver, hjørner og miniaturebilleder til websitet. Vælg en placering, der ikke kolliderer med fast navigation, chat, indkøbskurv eller andre flydende elementer.
Blandt videowidgets til moderne websites bør du kontrollere, hvordan skrifttyper og CSS nedarves i netop dit projekt. Regn ikke med, at typografien altid tilpasses automatisk uden test.
–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;
}
}
Illustration af en arbejdsgang i fem trin til at føje en CompleteGreet-videoboble til et React- eller Vue-projekt.
Installer CompleteGreet i React eller Vue
Eksempel på en enkel arbejdsgang
Opret en konto
Opret en CompleteGreet-konto, og hent det website-id eller den integrationskode, der vises i kontrolpanelet.
Vælg installationsmetode
Brug den metode, som den aktuelle CompleteGreet-dokumentation anbefaler til dit projekt.
Hent den aktuelle integrationskode fra din CompleteGreet-konto.
Forbind integrationen med projektet
Følg det dokumenterede eksempel til React, Vue eller almindelig HTML i den version, du bruger.
Brug den aktuelle import- eller scriptkode fra dokumentationen.
Føj widgetten til appen
Placer integrationen i rodopsætningen eller den klientbaserede del, der anbefales til din arkitektur.
Indsæt website-id'et med den metode, som dokumentationen angiver.
Tilpas og udgiv
Tilføj videoen, vælg de tilgængelige farver og regler, og test hele oplevelsen før udgivelse.
Se den statiske oversigt ovenfor for hele arbejdsgangen.
Hvad bør du kontrollere, før du udgiver?
Test videoboblen på rigtige enheder før udgivelse. iOS Safari og Chrome på mobil kan opføre sig forskelligt, og den flydende knap skal fungere sammen med navigationen.
Mål Core Web Vitals før og efter installationen. En videoboble bør ikke skubbe vigtige ydelsesmålinger over grænserne i den aktuelle vejledning. Googles vejledning til Web Vitals forklarer, hvordan du vurderer layoutændringer og andre målinger. Kontrollér, at pladsen til widgetten ikke flytter indhold, mens scriptet indlæses.
Gennemgå sidereglerne på alle relevante ruter. I React og Vue kan widgetten blive liggende ved ruteskift eller blive indlæst igen, afhængigt af hvor og hvordan integrationen er placeret.
Bekræft, at hilsenen kun vises på de valgte webadresser, og at den skjules i checkoutforløb, kontoområder eller private områder, hvor den ikke hører hjemme.
Mobildata bliver ofte overset under test.
En baggrundsvideo, der starter automatisk på hver side, kan bruge unødigt meget data. Vis i stedet et statisk miniaturebillede med en tydelig afspilningsknap, så den besøgende selv vælger, hvornår videoen indlæses.
Kontrollér også lagrækkefølgen i forhold til modaler, menuer og paneler. En hamburgermenu kan ende under videoboblen, eller boblen kan blive skjult bag et popupvindue. Den slags konflikter viser sig ofte først på det rigtige website.
Test til sidst hele besøgsrejsen som en bruger, der ikke er logget ind. Ryd cache og relevante cookies, og gå fra landingssiden til den ønskede handling. En videoboble skal føles som en naturlig del af oplevelsen, ikke som et forstyrrende popupvindue.
En videoboble i React eller Vue tilføjes normalt med en ekstern integration, der indlæses ved siden af applikationen. Kontrollér, hvordan scriptet påvirker gengivelsen, i stedet for at antage, at det aldrig blokerer eller skaber fejl.
Arbejdsgangen nedenfor viser, hvor integrationen ofte placeres i en enkeltsideapplikation, og hvilke test der er nødvendige på tværs af ruter.
Log ind i CompleteGreet, opret eller vælg websitet, og hent de aktuelle installationsoplysninger. Platformvalgene i kontrolpanelet kan ændre sig, så brug den vejledning, der faktisk vises på kontoen.
Kopiér scriptet eller integrationskoden fra installationsvisningen. Den skal indeholde det rigtige website-id.
Hent den aktuelle scriptkode fra din CompleteGreet-konto.
- Find hovedskabelonen, rodopsætningen eller den klientbaserede indgang i projektet.
- Placer koden dér, hvor den aktuelle vejledning til frameworket og CompleteGreet anbefaler det. I serverrenderede apps må browserkode ikke køre på serveren.
- Gem ændringen, og genstart udviklingsmiljøet, hvis byggeværktøjet kræver det.
Selv om integrationen kan indlæses asynkront, skal du måle effekten på Time to Interactive og andre relevante ydelsesmålinger i den faktiske app.
Hvis du bruger React Router eller Vue Router, skal du teste, om boblen og videotilstanden følger ruteskift korrekt. Adfærden kan afhænge af integrationen og versionen.
Brug ikke en generel procentdel for flere henvendelser som forventning. Sammenlign kvalificerede henvendelser før og efter testen på sider med tydelig hensigt.
Test både computer og mobil før produktion. Boblen skal være synlig uden at dække indhold, og betjeningselementer og tilladelser skal følge W3C’s vejledning om tilgængelighed så tastatur og skærmlæser fungerer bedst muligt.
Ofte stillede spørgsmål
Hvordan føjer jeg CompleteGreet til React uden at gøre pakken unødigt stor?
Brug den integrationsmetode, der anbefales i den aktuelle dokumentation. Mål pakkestørrelse, netværksanmodninger og gengivelsesydelse før og efter, fordi ingen ekstern ressource er helt uden omkostninger.
Hvorfor vises CompleteGreet-boblen ikke under lokal udvikling i React?
Kontrollér først webadressen og porten i forhold til domænereglerne på kontoen. Se derefter efter fejl i konsollen, blokering fra samtykkeværktøjer, cache og om scriptet faktisk indlæses.
Gør CompleteGreet React-appen langsommere?
Enhver ekstern integration kan påvirke ydelsen. Mål Core Web Vitals, netværk, hovedtråden og videoindlæsning på repræsentative sider og enheder i stedet for at stole på et fast løfte om filstørrelse eller tid.
Kan jeg vise forskellige CompleteGreet-videoer på forskellige ruter i React Router?
Det afhænger af, hvilke kampagne-, rute- og API-funktioner den aktuelle CompleteGreet-løsning tilbyder. Brug kun dokumenterede metoder, og test, hvordan widgetten opdateres, når webadressen ændres.
Virker CompleteGreet med serverrenderede React-frameworks som Next.js?
En klientbaseret integration kan fungere i serverrenderede frameworks, når den indlæses det rigtige sted. Følg dokumentationen til den aktuelle Next.js-version, og test, at koden ikke kører på serveren eller skaber hydreringsfejl.
Hvad koster CompleteGreet til en React-baseret SaaS-tjeneste med omkring 10.000 månedlige besøgende?
Pris, besøgsgrænse og beregningsmodel kan ændre sig. Brug den aktuelle prisside eller kontoen til at finde den rigtige plan, og kontrollér, hvordan unikke besøgende og eventuelle overskridelser behandles.
