2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Tieteellinen nimi on Event Tracking, joka keskittyy pääasiassa käyttäjien käyttäytymiseen tai liiketoimintaprosesseihin liittyvien teknologioiden ja toteutusprosessien sieppaamiseen, käsittelyyn ja lähettämiseen.
Pisteen hautaaminen on ammatillinen termi tietokentässä ja yleinen nimi myös Internet-kentällä.
Haudatut pisteet ovat tuotetietojen analyysin perusta ja niitä käytetään yleensä palautejärjestelmistä suositusjärjestelmistä, käyttäjien käyttäytymisen seurantaan ja analysointiin, uusien toimintojen tai operatiivisen toiminnan vaikutusten tilastolliseen analysointiin jne.
Upotuskohdat sisältävät kaksi tärkeää käsitettä: tapahtuma (tapahtuma) ja attribuutti (param)
Traceless burying (täysi hautaus) käyttää selaimen tai APP:n sisäänrakennettua seurantamenetelmää käyttäjän selaussivun, napsautusten ja muiden käyttäytymisen seuraamiseen. Sitä käytetään yleensä karkearakeiseen data-analyysiin, kuten yrityksen slardar
puute:
Koodin hautauspisteet, käyttöliittymäkehittäjät mukauttavat koodin seurantaa ja keräämistä
puute:
Buried Point SDK, SDK paljastaa rajapinnan haudattujen pisteiden ilmoittamista varten, eivätkä kehittäjät ole tietoisia seuranta- ja keräysprosessista, kuten yrityksen teestä.
Haitat: NA
etu:
Yleensä käyttöliittymä laskee haudatut pisteet sivun mittojen mukaan. Yleiset tapahtumaattribuutit ovat seuraavat:
Attribuutit | kuvata |
---|---|
uid | Käyttäjätunnus, jos käyttäjä ei ole kirjautunut sisään, palauttaa tietyn tunnistetunnuksen |
url | Nykyisen tapahtuman käynnistävän sivun URL-osoite |
tapahtumaaika | Aikaleima, joka käynnisti piilotetun pisteen |
paikallinen aika | Piilotetun pisteen käynnistäneen käyttäjän paikallinen aika ilmaistaan vakiomuodossa VVVV=KK-PP HH:mm:ss, mikä on kätevää myöhemmin suoritettavaa merkkijonokyselyä varten. |
laitetyyppi | Käyttäjän tällä hetkellä käyttämä laitetyyppi, kuten Apple, Samsung, kromi |
laitetunnus | Nykyisen käyttäjän käyttämä laitetunnus |
osType | Järjestelmätyyppi tulee windows, macos, ios, android |
osVersion | järjestelmäversio |
sovellusversio | Sovellusversio |
appId | Nykyinen sovellustunnus |
ylimääräistä | Mukautetun datan, yleensä sarjoitetut merkkijonot, ja tietorakenteen tulee pysyä vakaana |
tapahtuma | Raportointiaika | kuvata |
---|---|---|
Sivun pysyminen | Kun nykyistä sivua vaihdetaan tai sivu puretaan | Tallenna edellisen sivun selausaika |
pv | Kun astut sivulle | Sivukäyntien määrä, UV täytyy suodattaa vain laitetunnuksen perusteella |
vuorovaikutustapahtumat | Kun käyttäjän vuorovaikutustapahtuma käynnistyy | Kuten napsautus, pitkä painallus jne. |
looginen tapahtuma | Kun loogiset ehdot täyttyvät | Kuten kirjautuminen, hyppysivu jne. |
Tällä hetkellä suurin osa suoritusindikaattoritiedoista tulee window.performance API:sta.
parametrin nimi | kuvata |
---|---|
connectEnd | HTTP (TCP) Palauttaa aikaleiman, jolloin yhteys selaimen ja palvelimen välille muodostettiin. Jos pysyvä yhteys muodostetaan, palautusarvo on sama kuin fetchStart-attribuutin arvo. Yhteyden muodostaminen tarkoittaa kaikkien kättelyjen ja todennusprosessien suorittamista. |
connectStart | HTTP (TCP) -aikaleima verkkotunnuksen nimikyselyn lopussa. Jos käytetään jatkuvaa yhteyttä tai tiedot on tallennettu välimuistiin tai paikalliseen resurssiin, tämä arvo on yhdenmukainen fetchStartin kanssa. |
domComplete | Nykyinen asiakirjan jäsennys on valmis, eli aikaleima, jolloin Document.readyState muuttuu "valmis" ja vastaava readystatechange laukeaa. |
domContentLoadedEventEnd | Aikaleima, jolloin kaikki komentosarjat, jotka on suoritettava välittömästi, on suoritettu (suoritusjärjestyksestä riippumatta). |
domContentLoadedEventStart | Kun jäsentäjä lähettää DOMContentLoaded-tapahtuman, aikaleima, jolloin kaikki suoritettavat komentosarjat on jäsennetty. |
domInteractive | Aikaleima, jolloin nykyisen verkkosivun DOM-rakenne lopettaa jäsentämisen ja alkaa ladata upotettuja resursseja (eli kun Document.readyState-ominaisuus muuttuu "interaktiiviseksi" ja vastaava readystatechange-tapahtuma käynnistyy). |
domLadataan | Aikaleima, jolloin nykyisen verkkosivun DOM-rakennetta aletaan jäsentää (eli kun Document.readyState-ominaisuus muuttuu "loading":ksi ja vastaava readystatechange-tapahtuma laukeaa). |
domainLookupEnd | DNS-verkkotunnuksen kyselyn valmistumisaika.Sama kuin fetchStart-arvo, jos käytetään paikallista välimuistia (eli ei DNS-kyselyitä) tai pysyviä yhteyksiä |
domainLookupStart | DNS UNIX -aikaleima, kun verkkotunnuksen nimen kysely aloitettiin. Jos käytetään jatkuvaa yhteyttä tai tiedot on tallennettu välimuistiin tai paikalliseen resurssiin, tämä arvo on yhdenmukainen fetchStartin kanssa. |
fetchStart | Selain on valmis noutamaan asiakirjan aikaleiman HTTP-pyynnön avulla. Tämä ajankohta on ennen kuin sovellusvälimuisti tarkistetaan. |
loadEventEnd | Kun lataustapahtuma päättyy, eli aikaleima, jolloin lataustapahtuma päättyy. Jos tätä tapahtumaa ei ole vielä lähetetty tai se ei ole vielä valmis, sen arvo on 0. |
loadEventStart | Aikaleima, jolloin lataustapahtuma lähetettiin. Jos tätä tapahtumaa ei ole vielä lähetetty, sen arvo on 0. |
navigointiKäynnistä | Aikaleima, jolloin edellisen sivun purku samassa selaimessa päättyi. Jos edellistä sivua ei ole, tämä arvo on sama kuin fetchStart. |
redirectEnd | Aikaleima, jolloin viimeinen HTTP-uudelleenohjaus suoritettiin (eli kun HTTP-vastauksen viimeinen bitti vastaanotettiin suoraan). Jos uudelleenohjausta ei ole tai uudelleenohjaus on eri alkuperästä, tämä arvo palauttaa arvon 0. |
redirectStart | Aikaleima, jolloin ensimmäinen HTTP-uudelleenohjaus aloitettiin. Jos uudelleenohjausta ei ole tai uudelleenohjaus on eri alkuperästä, tämä arvo palauttaa arvon 0. |
requestStart | Palauttaa aikaleiman, kun selain teki HTTP-pyynnön palvelimelle (tai aloitti paikallisen välimuistin lukemisen). |
vastausLoppu | Palauttaa aikaleiman, kun selain vastaanotti (tai luki paikallisesta välimuistista tai luki paikallisesta resurssista) viimeisen tavun palvelimelta (tai kun HTTP-yhteys suljettiin, jos se suljettiin ennen sitä). |
vastausAloita | Palauttaa aikaleiman, kun selain vastaanotti ensimmäisen tavun palvelimelta (tai luki paikallisesta välimuistista).Jos siirtokerros epäonnistuu alkuperäisen pyynnön jälkeen ja yhteys avataan uudelleen, tämä määrite lasketaan uuden pyynnön vastaavaksi aloitusajaksi. |
SecureConnectionStart | HTTPS palauttaa aikaleiman, jolloin selain ja palvelin aloittivat kättelyn suojatun yhteyden luomiseksi. Jos nykyinen verkkosivu ei vaadi suojattua yhteyttä, palauta 0. |
unloadEventEnd | Vastaa unloadEventStartia, aikaleimaa, jolloin purkamistapahtuman käsittely on valmis. Jos edellistä sivua ei ole, tämä arvo palauttaa arvon 0. |
unloadEventStart | Aikaleima, jolloin edellinen sivun purkutapahtuma heitettiin. Jos edellistä sivua ei ole, tämä arvo palauttaa arvon 0. |
Ilmaisimen nimi | kuvata |
---|---|
FP | Sivun ensimmäinen piirrosaika |
FCP | Aika, jolloin sivulle on piirretty sisältöä ensimmäistä kertaa |
FMP | Sivun ensimmäinen tehokas piirtoaika FMP>=FCP |
TTI | Sivun täysin interaktiivinen aika |
FID | Sivun latausvaiheen aikana käyttäjän ensimmäisen vuorovaikutuksen viive |
MPFID | Sivun latausvaiheessa suurin viiveaika, jonka käyttäjä voi kohdata |
LADATA | Aika, jolloin sivu on latautunut kokonaan (aika, jolloin lataustapahtuma tapahtuu) |
FP (First Paint) -ilmaisin heijastaa yleensä sivun valkoisen näytön aikaa on erittäin hyvä, valkoinen näyttö Mitä lyhyempi aika, sitä pienempi on käyttäjän vaimenemisen todennäköisyys.
Tämä osoitin voi saada PerformancePaintTming API:n tarjoamat pistetiedot preformance.getEntriesByType('paint') -menetelmän avulla. Etsi objekti, jonka nimi on first-paint, ja kuvaus on FP-indikaattoritiedot:
FCP (First Contentful Paint) on aika, jolloin sisältö renderöidään ensimmäistä kertaa , FCP >= FP
Indikaattorit voivat saada PerformancePaintTiming API:n tarjoamat pistetiedot performance.getEntriesByType('paint') -menetelmän kautta. Etsi objekti, jonka nimi on first-contentful-paint, joka kuvaa FCP-indikaattoritietoja seuraavan kuvan mukaisesti:
FMP (First Meaningful Paint) on aika, jolloin merkityksellinen sisältö piirretään ensimmäistä kertaa Kun koko sivun ulkoasu ja tekstisisältö on kokonaan renderöity, voidaan katsoa, että ensimmäinen merkityksellinen maalaus on tehty.Siksi FMP mittaa aikaa, jonka käyttäjät näkevät verkkosivun pääsisällön, ja se on tärkeä mittausindikaattori käyttökokemuksen näkökulmasta.
Käyttöliittymäteollisuuden nyt tunnistama FMP-laskentamenetelmä on "piirtoaika sivun suurimman asettelun muutoksen jälkeen latauksen ja renderöinnin aikana". Voit käyttää MutationObserveria sivun jokaisen yleisen DOM-muutoksen seuraamiseen, MutationObserverin takaisinkutsun käynnistämiseen ja nykyisen DOM-puun muutospisteiden laskemiseen takaisinkutsun aikana. Hetki, jolloin pistemäärä muuttuu eniten, on FMP-aikapiste.
TTI (Time To Interactive), joka on aika, joka kuluu sivun latauksen alusta, kunnes sivu on täysin interaktiivisessa tilassa. Kun sivu on täysin interaktiivisessa tilassa, seuraavat kolme ehtoa täyttyvät:
Sivulla on jo hyödyllistä sisältöä.
Sivun näkyviin elementteihin liittyvä tapahtumavastaustoiminto on rekisteröity.
Tapahtumavastaustoiminto voi alkaa toimia 50 ms kuluessa tapahtuman tapahtumisesta.
window.performance.getEntriesByType('resurssi') palauttaa erilaisia suorituskykyindikaattoreita kaikista nykyiselle sivulle ladatuista resursseista (js, css, img...), joita voidaan käyttää staattisten resurssien suorituskykytietojen keräämiseen.
Päätyypit ovat: script, link, img, css, xmlhttprequest, beacon, fetch, other.
PerformanceResourceTiming - Verkkosovellusliittymät | MDN
Ilmaisimen nimi | kuvata | Laskeminen |
---|---|---|
DNS-kysely | DNS-vaihe vie aikaa | domainLookupEnd - domainLookupStart |
TCP-yhteys | TCP-vaiheaika | connectEnd - connectStart |
SSL-yhteyden muodostaminen | SSL-yhteysaika | connectEnd - secureConnectionStart |
Ensimmäisen tavun verkkopyyntö | Ensimmäisen tavun vasteaika (ttfb) | responseStart - requestStart |
Niitä on kolmenlaisia
// 在捕获阶段,捕获资源加载失败错误
Element.addEventListener('error', e => {
const target = e.target
if (target != window) {
monitor.errors.push({
type: target.localName,
url: target.src || target.href,
msg: (target.src || target.href) + ' is load error',
time: Date.now()
})
}
})
// 监听 js 错误
window.onerror = function(msg, url, row, col, error) {
monitor.errors.push({
type: 'javascript',
row: row,
col: col,
msg: error && error.stack? error.stack : msg,
url: url,
time: Date.now()
})
}
// 监听 promise 错误 缺点是获取不到行数数据
addEventListener('unhandledrejection', e => {
monitor.errors.push({
type: 'promise',
msg: (e.reason && e.reason.msg) || e.reason || '',
time: Date.now()
})
})
Tässä skenaariossa on otettava huomioon kaksi asiaa:
Jos tiedonraportointirajapinta ja liiketoimintajärjestelmä käyttävät samaa verkkotunnusta, selaimella on rajoituksia samanaikaisten pyyntöjen määrälle, joten verkkoresursseista on mahdollista kilpailla.
Selaimet yleensä jättävät huomioimatta asynkroniset ajax-pyynnöt, kun sivu puretaan. Jos datapyyntö on tarpeen, synkroninen ajax-pyyntö luodaan yleensä purkamis- tai ennen purkamistapahtumassa sivun purkamisen viivyttämiseksi. Käyttäjän näkökulmasta sivuhypyt hidastuvat.
etu:
Lähettää luotettavasti tiedot, kun sivu on purettu, estämättä sivua sulkeutumasta.
Tukee tietojen lähettämistä taustalla.
puute:
Vain POST-pyyntöjä voidaan lähettää, eikä vastaustuloksia voida saada.
Internet Explorerin lisäksi nykyiset valtavirran nykyaikaiset selaimet tukevat erittäin paljon majakoita. Majakka - MDN-dokumentaatio
Beacon-rajapintaa käytetään asynkronisten ei-estävien pyyntöjen ajoittamiseen Web-palvelimelle.
Maallikon termein Beacon voi lähettää tietoja asynkronisesti palvelimelle ja varmistaa, että pyyntö lähetetään ennen kuin sivun purkaminen on valmis (ratkaise ongelma, että ajax-sivun purkaminen lopettaa pyynnön). Kuinka käyttää sitä:
navigator.sendBeacon(url, data);
Tietoparametri on valinnainen, ja sen tyyppi voi olla ArrayBufferView, Blob, DOMString tai FormData. Jos selain onnistuu lisäämään majakkapyynnön lähetettävään jonoon, tämä menetelmä palauttaa arvon tosi, muuten se palauttaa false
Kun käytät Beaconia, taustajärjestelmän on käytettävä post-menetelmää parametrien vastaanottamiseen. Kun otetaan huomioon verkkotunnusten väliset ongelmat, taustajärjestelmän on myös muokattava käyttöliittymää ja määritettävä CORS. Samanaikaisesti pyynnön otsikon on täytettävä CORS-suojattu pyyntöotsikko, jossa sisältötyypin tulee olla application/x-www-form-urlencoded, multipart/form-data tai text/plain.
type ContentType = 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
const serilizeParams = (params: object) => {
return window.btoa(JSON.stringify(params))
}
function sendBeacon(url: string, params: object) {
const formData = new FormData()
formData.append('params', serilizeParams(params))
navigator.sendBeacon(url, formData)
}
etu:
Se on helppokäyttöinen, sillä on hyvä yhteensopivuus ja se voidaan raportoida eri verkkotunnuksissa.
Ei estä sivun lataamista ja sulkemista.
puute:
Vain GET-pyyntöjä voidaan lähettää, eikä vastaustuloksia voida saada.
Asynkronisia toimintoja ei tueta.
SendBeaconin yhteensopivuusongelma on väistämätön, mutta voit hyödyntää täysimääräisesti ominaisuutta, jonka mukaan useimmat selaimet lataavat kuvan loppuun ennen kuin sivu on purettu, ja raportoi tiedot lisäämällä img sivulle.
function sendImage(url: string, params: object) {
const img = new Image()
img.style.display = 'none'
const removeImage = function() {
img.parentNode.removeChild(img)
}
img.onload = removeImage
img.onerror = removeImage
img.src = `${url}?params=${serilizeParams(params)}`
document.body.appendChild(img)
}
Koska img-kuva on get-pyyntö, eri palvelimilla on rajoituksia uri:n pituudelle ladattu kerralla.
SendBeacon-menetelmä on suositeltava, ja Image-menetelmää käytetään varavaihtoehtona.
function sendLog(url: string, params: object) {
if(navigator.sendBeacon) {
sendBeacon(url, params)
} else {
sendImage(url, params)
}
}
Itse asiassa monet ihmiset käyttävät GIF haudata pisteen?
Tietojen raportointi palvelimelle voidaan tehdä pyytämällä käyttöliittymää, pyytämällä tavallisia tiedostoja tai pyytämällä kuvaresursseja. Niin kauan kuin tiedot voidaan raportoida, olipa kyseessä sitten GIF-tiedoston pyytäminen, js-tiedoston pyytäminen tai sivurajapinnan kutsuminen, palvelin ei itse asiassa välitä tietystä raportointimenetelmästä. Joten miksi kaikki järjestelmät käyttävät yhdenmukaisesti GIF-kuvien pyytämistä tietojen raportoinnissa?
●Estä verkkotunnusten välinen raja
Yleisesti ottaen pisteillä oleva verkkotunnuksen nimi ei ole nykyinen verkkotunnuksen nimi, joten kaikki käyttöliittymäpyynnöt muodostavat verkkotunnusten välisiä pyyntöjä. Selaimet voivat helposti siepata verkkotunnusten väliset pyynnöt virheellisten määritysten vuoksi ja raportoida virheistä, mikä ei ole hyväksyttävää. Kuvan src-attribuutti ei kuitenkaan ylitä toimialuetta, ja pyyntöjä voidaan myös käynnistää. (Ei käyttöliittymäraportointia)
●Estä sivun lataamisen estäminen ja käyttökokemuksen vaikuttaminen
Yleensä resurssisolmun luomisen jälkeen selain ei lähetä resurssipyyntöä ennen kuin objekti on lisätty selaimen DOM-puuhun. DOM:n toistuva käyttö ei aiheuta vain suorituskykyongelmia, vaan js/css-resurssien lataaminen estää myös sivun hahmontamisen ja vaikuttaa käyttökokemukseen.
Poikkeuksena ovat kuvapyynnöt. Sen lisäksi, että sitä ei tarvitse lisätä DOM:iin kuvaa rakennettaessa, se voi käynnistää pyynnön niin kauan kuin uusi Image-objekti luodaan js:ssä, eikä selainympäristössä ilman js:ää ole esto-ongelmaa voidaan myös hallita normaalisti img-tunnisteen kautta, joka on toinen resurssipyyntö. Mitä ei voida tehdä. (Sulje pois tiedostomenetelmä)
●PNG/JPG-muotoon verrattuna GIF on pienin koko
Pienin BMP-tiedosto vaatii 74 tavua, PNG vaatii 67 tavua ja laillinen GIF vain 43 tavua.
Samalla vastauksella GIF voi säästää 41 % liikenteestä kuin BMP ja 35 % liikenteestä kuin PNG.
Ja useimmat heistä käyttävät 1*1 pikselin läpinäkyvää GIF-tiedostoa raportoinnissa.
1x1 pikseli on pienin laillinen kuva. Lisäksi, koska se tehdään kuvien kautta, on parasta tehdä kuvista läpinäkyviä, jotta se ei vaikuta itse sivun näyttötehoon. Voit osoittaa, että kuva on läpinäkyvä, merkitse vain binääribitti kuvan läpinäkyvänä värinä, eikä väriavaruustietoja tarvitse tallentaa, mikä voi säästää äänenvoimakkuutta.
etu:
Asynkronisia pyyntöjä voidaan lähettää ja useita HTTP-menetelmiä, kuten GET ja POST, tuetaan.
Vastaustulokset voidaan saada ja käsitellä edelleen.
puute:
Pyynnön ja vastauksen logiikka on käsiteltävä manuaalisesti.
On käsiteltävä verkkotunnusten välisiä pyyntöjä (kuten CORS:n määrittäminen).
Käytä XMLHttpRequest- tai Fetch API:ta lähettääksesi asynkronisia raportointipyyntöjä. Voit käyttää GET- tai POST-menetelmää ja lähettää tiedot pyynnön runko- tai URL-parametreina.
etu:
Hyvä reaaliaikainen suorituskyky ja tukee kaksisuuntaista viestintää.
Soveltuu reaaliaikaiseen seurantaan ja laajamittaiseen dataraportointiin.
puute:
Palvelimen on tuettava WebSocket-protokollaa.
Monimutkaisempi ja ei sovellu yksinkertaisiin haudattuihin pistevaatimuksiin.
Yleisiä etupään tiedonhautaustyökaluja ovat Google Analytics, Baidu Statistics, Umeng Statistics jne. Raportointiin voi tietysti käyttää myös yrityksen sisäistä käyttöliittymää tai alustaa.
Otetaan esimerkkinä Google Analytics:
Google Analytics on Googlen kehittämä verkkosivuston analytiikkatyökalu verkkosivuston liikenteen seurantaan ja raportointiin. Se auttaa verkkosivustojen omistajia ymmärtämään vierailijoidensa käyttäytymistä, mukaan lukien keitä he ovat, mistä he tulevat, mitä he tekevät sivustolla ja paljon muuta. Google Analyticsin avulla verkkosivustojen omistajat voivat ymmärtää paremmin yleisöään, optimoida verkkosivuston sisältöä ja markkinointistrategioita, mikä parantaa verkkosivuston suorituskykyä ja käyttökokemusta. Google Analytics tarjoaa runsaasti data-analyysitoimintoja, mukaan lukien reaaliaikaiset tiedot, käyttäjien käyttäytymisen analysointi, tulosseuranta, liikenteen lähteiden analyysi ja paljon muuta. Se on tehokas työkalu, jota käytetään laajasti erilaisissa verkkosivustoissa ja verkkomarkkinointikampanjoissa.
Koska käytämme Google Analyticsia, meillä on ensin oltava Google-tili, joka sinun on luotava itse. Toiseksi sinun on tiedettävä sisäänkäynti Google Analyticsiin Tässä on kaksi käytettyä osoitetta:
Google Tag Manager: tagmanager.google.com/
Analytics: analytics.google.com/
Google Tag Manager
Google Tag Manager (GTM) on Googlen kehittämä ja tarjoama tagien hallintajärjestelmä. Sen avulla verkkosivustojen järjestelmänvalvojat voivat hallita ja ottaa käyttöön erilaisia seurantakoodeja, analytiikkakoodeja ja markkinointitageja muuttamatta verkkosivuston koodia. GTM:n avulla käyttäjät voivat helposti lisätä, päivittää ja poistaa tunnisteita ilman, että kehittäjät tarvitsevat apua.
GTM:n tärkeimmät ominaisuudet ovat:
Selkeästi englanniksi: tätä alustaa käytetään käyttöliittymän käynnistämien piilotettujen tapahtumien keräämiseen, ja se voi toteuttaa dataraportoinnin mukauttamalla käynnistysehtoja ja käynnistää tapahtuman takaisinkutsuja. Sitä käytetään tässä keräämään tietoja ja raportoimaan ne Google Analyticsille.
Google Analytics
Kuten nimestä voi päätellä, se on verkkosivusto, jota käytetään tietojen keräämiseen, katseluun ja näyttämiseen