Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozšíření funkcí sady Application Insights JavaScript SDK jsou další funkce, které je možné přidat do sady Application Insights JavaScript SDK, aby se zlepšily její funkce.
V tomto článku se zabýváme plug-inem Click Analytics, který automaticky sleduje události kliknutí na webových stránkách a používá data-* atributy nebo přizpůsobené značky prvků HTML k vyplnění telemetrických dat o událostech.
Požadavky
Nainstalujte sadu JavaScript SDK před povolením pluginu Click Analytics.
Jaká data modul plug-in shromažďuje?
Při povolení modulu plug-in se ve výchozím nastavení zaznamenávají následující klíčové vlastnosti.
Vlastní vlastnosti události
| Název | Popis | Vzorek |
|---|---|---|
| Název | Název vlastní události. Pro více informací o tom, jak se vyplňuje kolonka jména, se podívejte na sloupec Název. | O nás |
| typPoložky | Typ události. | customEvent |
| sdkVersion | Verze sady SDK Application Insights spolu s plug-inem pro kliknutí. | JavaScript:2_ClickPlugin2 |
Vlastní dimenze
| Název | Popis | Vzorek |
|---|---|---|
| typ akce | Typ akce, která způsobila událost kliknutí Může to být levé nebo pravé kliknutí. | CL |
| základníTypZdroj | Zdroj základního typu vlastní události. | ClickEvent |
| Klikněte na souřadnice | Souřadnice, kde se aktivuje událost kliknutí | 659X47 |
| obsah | Zástupný symbol pro uložení dodatečných data-* atributů a hodnot. |
[{vzorek1:hledani1, vzorek2:hledani2}] |
| název stránky | Název stránky, kde se aktivuje událost kliknutí | Ukázkový název |
| ID rodiče | ID nebo název nadřazeného elementu. Další informace o tom, jak se vyplní parentId, najdete v tématu klíč parentId. | navbarContainer |
Vlastní měření
| Název | Popis | Vzorek |
|---|---|---|
| časNaAkci | Doba potřebná v milisekundách, než uživatel klikne na prvek od počátečního načtení stránky. | 87407 |
Přidání modulu plug-in Click Analytics
Uživatelé mohou nastavit plug-in pro automatizovaný sběr Click Analytics pomocí skriptu Web SDK Loader nebo npm a volitelně přidat rozšíření rámce.
Poznámka:
Podpora příjmu instrumentačních klíčů skončí 31. března 2025. Příjem klíčů instrumentace bude dál fungovat, ale už nebudeme poskytovat aktualizace ani podporu pro tuto funkci. Přechod na připojovací řetězec, abyste mohli využívat nové funkce.
Přidání kódu
Vložte skript zavaděče sady JavaScript (Web) SDK do horní části každé stránky, na které chcete aktivovat Application Insights.
<script type="text/javascript" src="https://js.monitor.azure.com/scripts/b/ext/ai.clck.2.min.js"></script>
<script type="text/javascript">
var clickPluginInstance = new Microsoft.ApplicationInsights.ClickAnalyticsPlugin();
// Click Analytics configuration
var clickPluginConfig = {
autoCapture : true,
dataTags: {
useDefaultContentNameOrId: true
}
}
// Application Insights configuration
var configObj = {
connectionString: "YOUR_CONNECTION_STRING",
extensions: [
clickPluginInstance
],
extensionConfig: {
[clickPluginInstance.identifier] : clickPluginConfig
},
};
// Application Insights JavaScript (Web) SDK Loader Script code
!(function (cfg){function e(){cfg.onInit&&cfg.onInit(n)}var x,w,D,t,E,n,C=window,O=document,b=C.location,q="script",I="ingestionendpoint",L="disableExceptionTracking",j="ai.device.";"instrumentationKey"[x="toLowerCase"](),w="crossOrigin",D="POST",t="appInsightsSDK",E=cfg.name||"appInsights",(cfg.name||C[t])&&(C[t]=E),n=C[E]||function(g){var f=!1,m=!1,h={initialize:!0,queue:[],sv:"8",version:2,config:g};function v(e,t){var n={},i="Browser";function a(e){e=""+e;return 1===e.length?"0"+e:e}return n[j+"id"]=i[x](),n[j+"type"]=i,n["ai.operation.name"]=b&&b.pathname||"_unknown_",n["ai.internal.sdkVersion"]="javascript:snippet_"+(h.sv||h.version),{time:(i=new Date).getUTCFullYear()+"-"+a(1+i.getUTCMonth())+"-"+a(i.getUTCDate())+"T"+a(i.getUTCHours())+":"+a(i.getUTCMinutes())+":"+a(i.getUTCSeconds())+"."+(i.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z",iKey:e,name:"Microsoft.ApplicationInsights."+e.replace(/-/g,"")+"."+t,sampleRate:100,tags:n,data:{baseData:{ver:2}},ver:undefined,seq:"1",aiDataContract:undefined}}var n,i,t,a,y=-1,T=0,S=["js.monitor.azure.com","js.cdn.applicationinsights.io","js.cdn.monitor.azure.com","js0.cdn.applicationinsights.io","js0.cdn.monitor.azure.com","js2.cdn.applicationinsights.io","js2.cdn.monitor.azure.com","az416426.vo.msecnd.net"],o=g.url||cfg.src,r=function(){return s(o,null)};function s(d,t){if((n=navigator)&&(~(n=(n.userAgent||"").toLowerCase()).indexOf("msie")||~n.indexOf("trident/"))&&~d.indexOf("ai.3")&&(d=d.replace(/(\/)(ai\.3\.)([^\d]*)$/,function(e,t,n){return t+"ai.2"+n})),!1!==cfg.cr)for(var e=0;e<S.length;e++)if(0<d.indexOf(S[e])){y=e;break}var n,i=function(e){var a,t,n,i,o,r,s,c,u,l;h.queue=[],m||(0<=y&&T+1<S.length?(a=(y+T+1)%S.length,p(d.replace(/^(.*\/\/)([\w\.]*)(\/.*)$/,function(e,t,n,i){return t+S[a]+i})),T+=1):(f=m=!0,s=d,!0!==cfg.dle&&(c=(t=function(){var e,t={},n=g.connectionString;if(n)for(var i=n.split(";"),a=0;a<i.length;a++){var o=i[a].split("=");2===o.length&&(t[o[0][x]()]=o[1])}return t[I]||(e=(n=t.endpointsuffix)?t.location:null,t[I]="https://"+(e?e+".":"")+"dc."+(n||"services.visualstudio.com")),t}()).instrumentationkey||g.instrumentationKey||"",t=(t=(t=t[I])&&"/"===t.slice(-1)?t.slice(0,-1):t)?t+"/v2/track":g.endpointUrl,t=g.userOverrideEndpointUrl||t,(n=[]).push((i="SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)",o=s,u=t,(l=(r=v(c,"Exception")).data).baseType="ExceptionData",l.baseData.exceptions=[{typeName:"SDKLoadFailed",message:i.replace(/\./g,"-"),hasFullStack:!1,stack:i+"\nSnippet failed to load ["+o+"] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: "+(b&&b.pathname||"_unknown_")+"\nEndpoint: "+u,parsedStack:[]}],r)),n.push((l=s,i=t,(u=(o=v(c,"Message")).data).baseType="MessageData",(r=u.baseData).message='AI (Internal): 99 message:"'+("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) ("+l+")").replace(/\"/g,"")+'"',r.properties={endpoint:i},o)),s=n,c=t,JSON&&((u=C.fetch)&&!cfg.useXhr?u(c,{method:D,body:JSON.stringify(s),mode:"cors"}):XMLHttpRequest&&((l=new XMLHttpRequest).open(D,c),l.setRequestHeader("Content-type","application/json"),l.send(JSON.stringify(s)))))))},a=function(e,t){m||setTimeout(function(){!t&&h.core||i()},500),f=!1},p=function(e){var n=O.createElement(q),e=(n.src=e,t&&(n.integrity=t),n.setAttribute("data-ai-name",E),cfg[w]);return!e&&""!==e||"undefined"==n[w]||(n[w]=e),n.onload=a,n.onerror=i,n.onreadystatechange=function(e,t){"loaded"!==n.readyState&&"complete"!==n.readyState||a(0,t)},cfg.ld&&cfg.ld<0?O.getElementsByTagName("head")[0].appendChild(n):setTimeout(function(){O.getElementsByTagName(q)[0].parentNode.appendChild(n)},cfg.ld||0),n};p(d)}cfg.sri&&(n=o.match(/^((http[s]?:\/\/.*\/)\w+(\.\d+){1,5})\.(([\w]+\.){0,2}js)$/))&&6===n.length?(d="".concat(n[1],".integrity.json"),i="@".concat(n[4]),l=window.fetch,t=function(e){if(!e.ext||!e.ext[i]||!e.ext[i].file)throw Error("Error Loading JSON response");var t=e.ext[i].integrity||null;s(o=n[2]+e.ext[i].file,t)},l&&!cfg.useXhr?l(d,{method:"GET",mode:"cors"}).then(function(e){return e.json()["catch"](function(){return{}})}).then(t)["catch"](r):XMLHttpRequest&&((a=new XMLHttpRequest).open("GET",d),a.onreadystatechange=function(){if(a.readyState===XMLHttpRequest.DONE)if(200===a.status)try{t(JSON.parse(a.responseText))}catch(e){r()}else r()},a.send())):o&&r();try{h.cookie=O.cookie}catch(k){}function e(e){for(;e.length;)!function(t){h[t]=function(){var e=arguments;f||h.queue.push(function(){h[t].apply(h,e)})}}(e.pop())}var c,u,l="track",d="TrackPage",p="TrackEvent",l=(e([l+"Event",l+"PageView",l+"Exception",l+"Trace",l+"DependencyData",l+"Metric",l+"PageViewPerformance","start"+d,"stop"+d,"start"+p,"stop"+p,"addTelemetryInitializer","setAuthenticatedUserContext","clearAuthenticatedUserContext","flush"]),h.SeverityLevel={Verbose:0,Information:1,Warning:2,Error:3,Critical:4},(g.extensionConfig||{}).ApplicationInsightsAnalytics||{});return!0!==g[L]&&!0!==l[L]&&(e(["_"+(c="onerror")]),u=C[c],C[c]=function(e,t,n,i,a){var o=u&&u(e,t,n,i,a);return!0!==o&&h["_"+c]({message:e,url:t,lineNumber:n,columnNumber:i,error:a,evt:C.event}),o},g.autoExceptionInstrumented=!0),h}(cfg.cfg),(C[E]=n).queue&&0===n.queue.length?(n.queue.push(e),n.trackPageView({})):e();})({
src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
crossOrigin: "anonymous",
// sri: false, // Custom optional value to specify whether fetching the snippet from integrity file and do integrity check
cfg: configObj // configObj is defined above.
});
</script>
Chcete-li přidat nebo aktualizovat konfiguraci nahrávače skriptu JavaScript (Web) SDK, viz Konfiguraci skriptu nahrávače JavaScript (Web) SDK.
Návod
Pokud chcete přidat rozšíření architektury nebo už jste ho přidali, podívejte se na ukázky kódu React, React Native a Angular, kde se dozvíte, jak přidat modul plug-in Click Analytics.
(Volitelné) Nastavení kontextu ověřeného uživatele
Pokud chcete nastavit toto volitelné nastavení, přečtěte si téma Nastavení kontextu ověřeného uživatele.
Pokud používáte sešit HEART s modulem plug-in Click Analytics, nemusíte pro zobrazení telemetrických dat nastavit kontext ověřeného uživatele. Další informace najdete v dokumentaci k sešitu HEART.
Použijte plug-in
Následující části popisují, jak modul plug-in používat.
Úložiště telemetrických dat
Telemetrická data generovaná z událostí kliknutí se ukládají jako customEvents v části Protokoly Application Insights > na webu Azure Portal>.
name
Sloupec name tabulky customEvent je vyplněn podle následujících pravidel:
- Pokud
customDataPrefixnení deklarován v rozšířené konfiguraci,idpoužije se jako název zadaný vdata-idsouborucustomEvent. - Je-li
customDataPrefixdeklarován, zadanáidvdata-*-idse, což znamená, že musí začínatdataa končitid, použije jako názevcustomEvent. Pokud například klikaný element HTML má atribut"data-sample-id"="button1", pak"button1"jecustomEventnázev. -
data-idnebodata-*-idPokud atribut neexistuje a pokuduseDefaultContentNameOrIdje nastaven natrue, atribut HTMLidnebo název obsahu elementu se použije jakocustomEventnázev. Pokud jsou přítomny obojí,idi název obsahu, přednost máid. - Pokud
useDefaultContentNameOrIdjefalse,customEventnázev je"not_specified". Doporučujeme nastavituseDefaultContentNameOrIdnatruepro generování smysluplných dat.
contentName
Pokud máte funkci zpětného volání definovanou v pokročilé konfiguraci, sloupec contentName se vyplní na základě následujících pravidel:
U klikaného elementu HTML
<a>se modul plug-in pokusí shromáždit hodnotu jeho innerText (text) atributu. Pokud modul plug-in nemůže najít tento atribut, pokusí se shromáždit hodnotu jeho innerHtml atributu.U klikaného html
<img>nebo<area>elementu modul plug-in shromažďuje hodnotu jehoaltatributu.Pro všechny ostatní kliknuté HTML elementy se
contentNamevyplní na základě následujících pravidel, která jsou uvedena v pořadí podle priority:- Hodnota atributu
valueelementu - Hodnota atributu
nameelementu - Hodnota atributu
altelementu - Hodnota innerText atributu elementu
- Hodnota atributu
idelementu
- Hodnota atributu
parentId klíč
Pokud chcete naplnit klíč parentId v rámci customDimensionscustomEvent tabulky v protokolech, deklarujte značku parentDataTag nebo definujte atribut data-parentid.
Hodnota parentId se načte na základě následujících pravidel:
- Když deklarujete
parentDataTag, modul plug-in načte hodnotuidnebodata-*-iddefinovanou v rámci prvku, který je nejblíže k klikaného prvku jakoparentId. - Pokud jsou definovány
data-*-idiid,data-*-idmá prioritu. - Pokud
parentDataTagje definován, ale modul plug-in nemůže najít tuto značku ve stromu DOM, modul plug-in použijeidnebodata-*-iddefinovaný v rámci elementu, který je nejblíže ke klikaným elementu jakoparentId. Doporučujeme však definovatdata-{parentDataTag}nebocustomDataPrefix-{parentDataTag}atribut, aby se snížil počet smyček potřebných k nalezeníparentId.parentDataTagDeklarace je užitečná, když potřebujete použít modul plug-in s přizpůsobenými možnostmi. - Pokud není definována žádná
parentDataTaghodnota a aktuální prvek neobsahuje žádnéparentIdinformace, žádnáparentIdhodnota se neshromažďuje. - Je-li
parentDataTagdefinován, je nastavena nauseDefaultContentNameOrId, a pouze atributfalseje definován uvnitř elementu nejblíže kliknutému elementu,idje naplněn jakoparentId. Pro načtení hodnotyidnastavteuseDefaultContentNameOrIdnatrue.
Když definujete atribut data-parentid nebo data-*-parentid, plug-in načte instanci tohoto atributu, která je nejblíže kliknutému prvku, včetně samotného prvku, pokud je to možné.
Pokud deklarujete parentDataTag a definujete atribut data-parentid nebo data-*-parentid, přednost je dána data-parentid nebo data-*-parentid.
Pokud se zobrazí upozornění na telemetrii "Click Event rows with no parentId value" (řádky událostí bez hodnoty parentId), podívejte se na Oprava upozornění řádků událostí bez rodičovské hodnoty parentId.
Příklady ukazující, která hodnota se načte jako parentId pro různé konfigurace, najdete v tématu Příklady parentid klíče.
Upozornění
- Jakmile
parentDataTagje součástí libovolného elementu HTML v celé aplikaci, SDK začne hledat nadřazené značky v celé aplikaci, nejenom v elementu HTML, ve kterém jste ho použili. - Pokud používáte sešit HEART s modulem plug-in Click Analytics, aby se události HEART zaznamenávaly nebo detekovaly, musí být značka
parentDataTagdeklarována ve všech ostatních částech aplikace koncového uživatele.
customDataPrefix
Možnost customDataPrefix v pokročilé konfiguraci poskytuje uživateli možnost konfigurovat předponu datového atributu, která pomáhá identifikovat, kde se nachází srdce v rámci základu kódu jednotlivce. Předpona musí být vždy malá písmena a začínat na data-. Příklad:
data-heart-data-team-name-data-example-
V HTML jsou data-* globální atributy označovány jako vlastní datové atributy, které umožňují výměnu vlastních informací mezi HTML a jeho reprezentací DOM pomocí skriptů. Starší prohlížeče, jako jsou Internet Explorer a Safari, ignorují atributy, kterým nerozumí, pokud nezačínají na data-.
Hvězdičku (*) v data-* můžete nahradit libovolným názvem podle produkčních pravidel pro názvy XML s následujícími omezeními.
- Název nesmí začínat písmeny "xml", a to bez ohledu na velikost písmen.
- Název nesmí obsahovat středník (U+003A).
- Název nesmí obsahovat velká písmena.
Přidání rozšířené konfigurace
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| automatické zachycení | logický | Pravda | Automatická konfigurace zachytávání |
| zpětné volání | IValueCallback | Nula | Konfigurace pro zpětné volání |
| pageTags | Objekt | Nula | Značky stránek |
| datové štítky | ICustomDataTags | Nula | Vlastní datové značky poskytnuté k přepsání výchozích značek používaných k zaznamenání kliknutí. |
| urlCollectHash | logický | Nepravda | Povolí protokolování hodnot za znakem "#" adresy URL. |
| dotaz na sběr URL | logický | Nepravda | Povolení protokolování řetězce dotazu v adrese URL. |
| validátor chování | Funkce | Nula | Funkce zpětného data-*-bhvr volání, která se má použít pro ověření hodnoty. Další informace najdete v části behaviorValidator. |
| defaultní chování po kliknutí pravým tlačítkem | Řetězec nebo číslo | '' | Výchozí hodnota chování, když došlo k události kliknutí pravým tlačítkem myši. Tato hodnota je přepsána, pokud má prvek atribut data-*-bhvr. |
| odstranitNeplatnéUdálosti | logický | Nepravda | Označit události k vyřazení, které nemají užitečná data o kliknutí. |
IValueCallback
| Název | Typ | Výchozí | Popis |
|---|---|---|---|
| název stránky | Funkce | Nula | Funkce, která přepíše výchozí pageName chování při zachytávání. |
| StránkováAkceStránkovéŠtítky | Funkce | Nula | Funkce zpětného volání pro rozšíření výchozího pageTags shromážděného během pageAction události. |
| název obsahu | Funkce | Nula | Funkce zpětného volání pro naplnění přizpůsobených contentName. |
Vlastní datové značky
| Název | Typ | Výchozí | Výchozí značka, která se má použít v HTML | Popis |
|---|---|---|---|---|
| useDefaultContentNameOrId | logický | Nepravda | Není k dispozici | Pokud true, shromažďuje standardní html atribut id pro contentName , pokud určitý prvek není označený výchozí předponou dat nebo customDataPrefix. Jinak se neshromažďuje standardní HTML atribut id pro contentName. |
| customDataPrefix | Řetězec | data- |
data-* |
Automatické zachycení názvu obsahu a hodnoty prvků, které jsou označené zadanou předponou. Lze například data-*-iddata-<yourcustomattribute> použít ve značkách HTML. |
| aiBlobAttributeTag | Řetězec | ai-blob |
data-ai-blob |
Modul plug-in podporuje atribut objektu blob JSON místo jednotlivých data-* atributů. |
| předpona metaúdajů | Řetězec | Nula | Není k dispozici | Automatické zachycení názvu a obsahu meta elementu HTML Head s danou předponou při zachycení.
custom- Například lze použít v metaznačku HTML. |
| captureAllMetaDataContent | logický | Nepravda | Není k dispozici | Automaticky zachyťte všechny názvy a obsah meta elementů HTML Head. Výchozí hodnota je False. Pokud je tato možnost povolená, přepíše zadanou možnost metaDataPrefix. |
| parentDataTag | Řetězec | Nula | Není k dispozici | Načte parentId v protokolech, pokud není nalezen data-parentid nebo data-*-parentid. Z důvodu efektivity přestane procházet po DOM, aby zachytil název obsahu a hodnotu prvků, když dojde k výskytu atributu data-{parentDataTag} nebo customDataPrefix-{parentDataTag}. Další informace najdete v části klíč parentId. |
| dntDataTag | Řetězec | ai-dnt |
data-ai-dnt |
Modul plug-in pro zachytávání telemetrických dat ignoruje elementy HTML s tímto atributem. |
validátor chování
Funkce behaviorValidator automaticky kontrolují, že označené chování v kódu odpovídá předdefinovanému seznamu. Funkce zajišťují, aby označené chování bylo konzistentní se zavedenou taxonomií vaší organizace. Nevyžaduje se ani neočekává, že většina zákazníků azure Monitoru tyto funkce používá, ale jsou k dispozici pro pokročilé scénáře. Funkce behaviorValidator vám můžou pomoct s přístupnějšími postupy.
Chování se zobrazí v poli customDimensions v tabulce CustomEvents.
Funkce zpětného volání
V rámci tohoto rozšíření jsou zpřístupněny tři různé behaviorValidator funkce zpětného volání. Pokud vystavené funkce nevyřeší váš požadavek, můžete také použít vlastní funkce zpětného volání. Záměrem je přinést vlastní datovou strukturu chování. Modul plug-in používá tuto funkci validátoru při extrahování chování ze značek dat.
| Název | Popis |
|---|---|
| Validator hodnoty chování | Tuto funkci zpětného volání použijte, pokud je datová struktura vašeho chování polem řetězců. |
| Validátor mapování chování | Tuto funkci zpětného volání použijte, pokud je datová struktura vašeho chování slovníkem. |
| BehaviorEnumValidator | Použijte tuto funkci zpětného volání, pokud je datová struktura vašeho chování typu enumerace. |
Předání řetězcových vs. číselných hodnot
Pokud chcete snížit počet bajtů, které předáte, předejte místo celého textového řetězce číselnou hodnotu. Pokud nejsou náklady problém, můžete vložit celý textový řetězec (například NAVIGATIONBACK).
Ukázkové použití s využitím behaviorValidatoru
Tady je ukázka toho, jak může vypadat validátor mapy chování. Vaše řešení může vypadat jinak v závislosti na taxonomii vaší organizace a na shromažďovaných událostech.
var clickPlugin = Microsoft.ApplicationInsights.ClickAnalyticsPlugin;
var clickPluginInstance = new clickPlugin();
// Behavior enum values
var behaviorMap = {
UNDEFINED: 0, // default, Undefined
///////////////////////////////////////////////////////////////////////////////////////////////////
// Page Experience [1-19]
///////////////////////////////////////////////////////////////////////////////////////////////////
NAVIGATIONBACK: 1, // Advancing to the previous index position within a webpage
NAVIGATION: 2, // Advancing to a specific index position within a webpage
NAVIGATIONFORWARD: 3, // Advancing to the next index position within a webpage
APPLY: 4, // Applying filter(s) or making selections
REMOVE: 5, // Applying filter(s) or removing selections
SORT: 6, // Sorting content
EXPAND: 7, // Expanding content or content container
REDUCE: 8, // Sorting content
CONTEXTMENU: 9, // Context menu
TAB: 10, // Tab control
COPY: 11, // Copy the contents of a page
EXPERIMENTATION: 12, // Used to identify a third-party experimentation event
PRINT: 13, // User printed page
SHOW: 14, // Displaying an overlay
HIDE: 15, // Hiding an overlay
MAXIMIZE: 16, // Maximizing an overlay
MINIMIZE: 17, // Minimizing an overlay
BACKBUTTON: 18, // Clicking the back button
///////////////////////////////////////////////////////////////////////////////////////////////////
// Scenario Process [20-39]
///////////////////////////////////////////////////////////////////////////////////////////////////
STARTPROCESS: 20, // Initiate a web process unique to adopter
PROCESSCHECKPOINT: 21, // Represents a checkpoint in a web process unique to adopter
COMPLETEPROCESS: 22, // Page Actions that complete a web process unique to adopter
SCENARIOCANCEL: 23, // Actions resulting from cancelling a process/scenario
///////////////////////////////////////////////////////////////////////////////////////////////////
// Download [40-59]
///////////////////////////////////////////////////////////////////////////////////////////////////
DOWNLOADCOMMIT: 40, // Initiating an unmeasurable off-network download
DOWNLOAD: 41, // Initiating a download
///////////////////////////////////////////////////////////////////////////////////////////////////
// Search [60-79]
///////////////////////////////////////////////////////////////////////////////////////////////////
SEARCHAUTOCOMPLETE: 60, // Auto-completing a search query during user input
SEARCH: 61, // Submitting a search query
SEARCHINITIATE: 62, // Initiating a search query
TEXTBOXINPUT: 63, // Typing or entering text in the text box
///////////////////////////////////////////////////////////////////////////////////////////////////
// Commerce [80-99]
///////////////////////////////////////////////////////////////////////////////////////////////////
VIEWCART: 82, // Viewing the cart
ADDWISHLIST: 83, // Adding a physical or digital good or services to a wishlist
FINDSTORE: 84, // Finding a physical store
CHECKOUT: 85, // Before you fill in credit card info
REMOVEFROMCART: 86, // Remove an item from the cart
PURCHASECOMPLETE: 87, // Used to track the pageView event that happens when the CongratsPage or Thank You page loads after a successful purchase
VIEWCHECKOUTPAGE: 88, // View the checkout page
VIEWCARTPAGE: 89, // View the cart page
VIEWPDP: 90, // View a PDP
UPDATEITEMQUANTITY: 91, // Update an item's quantity
INTENTTOBUY: 92, // User has the intent to buy an item
PUSHTOINSTALL: 93, // User has selected the push to install option
///////////////////////////////////////////////////////////////////////////////////////////////////
// Authentication [100-119]
///////////////////////////////////////////////////////////////////////////////////////////////////
SIGNIN: 100, // User sign-in
SIGNOUT: 101, // User sign-out
///////////////////////////////////////////////////////////////////////////////////////////////////
// Social [120-139]
///////////////////////////////////////////////////////////////////////////////////////////////////
SOCIALSHARE: 120, // "Sharing" content for a specific social channel
SOCIALLIKE: 121, // "Liking" content for a specific social channel
SOCIALREPLY: 122, // "Replying" content for a specific social channel
CALL: 123, // Click on a "call" link
EMAIL: 124, // Click on an "email" link
COMMUNITY: 125, // Click on a "community" link
///////////////////////////////////////////////////////////////////////////////////////////////////
// Feedback [140-159]
///////////////////////////////////////////////////////////////////////////////////////////////////
VOTE: 140, // Rating content or voting for content
SURVEYCHECKPOINT: 145, // Reaching the survey page/form
///////////////////////////////////////////////////////////////////////////////////////////////////
// Registration, Contact [160-179]
///////////////////////////////////////////////////////////////////////////////////////////////////
REGISTRATIONINITIATE: 161, // Initiating a registration process
REGISTRATIONCOMPLETE: 162, // Completing a registration process
CANCELSUBSCRIPTION: 163, // Canceling a subscription
RENEWSUBSCRIPTION: 164, // Renewing a subscription
CHANGESUBSCRIPTION: 165, // Changing a subscription
REGISTRATIONCHECKPOINT: 166, // Reaching the registration page/form
///////////////////////////////////////////////////////////////////////////////////////////////////
// Chat [180-199]
///////////////////////////////////////////////////////////////////////////////////////////////////
CHATINITIATE: 180, // Initiating a chat experience
CHATEND: 181, // Ending a chat experience
///////////////////////////////////////////////////////////////////////////////////////////////////
// Trial [200-209]
///////////////////////////////////////////////////////////////////////////////////////////////////
TRIALSIGNUP: 200, // Signing up for a trial
TRIALINITIATE: 201, // Initiating a trial
///////////////////////////////////////////////////////////////////////////////////////////////////
// Signup [210-219]
///////////////////////////////////////////////////////////////////////////////////////////////////
SIGNUP: 210, // Signing up for a notification or service
FREESIGNUP: 211, // Signing up for a free service
///////////////////////////////////////////////////////////////////////////////////////////////////
// Referrals [220-229]
///////////////////////////////////////////////////////////////////////////////////////////////////
PARTNERREFERRAL: 220, // Navigating to a partner's web property
///////////////////////////////////////////////////////////////////////////////////////////////////
// Intents [230-239]
///////////////////////////////////////////////////////////////////////////////////////////////////
LEARNLOWFUNNEL: 230, // Engaging in learning behavior on a commerce page (for example, "Learn more click")
LEARNHIGHFUNNEL: 231, // Engaging in learning behavior on a non-commerce page (for example, "Learn more click")
SHOPPINGINTENT: 232, // Shopping behavior prior to landing on a commerce page
///////////////////////////////////////////////////////////////////////////////////////////////////
// Video [240-259]
///////////////////////////////////////////////////////////////////////////////////////////////////
VIDEOSTART: 240, // Initiating a video
VIDEOPAUSE: 241, // Pausing a video
VIDEOCONTINUE: 242, // Pausing or resuming a video
VIDEOCHECKPOINT: 243, // Capturing predetermined video percentage complete
VIDEOJUMP: 244, // Jumping to a new video location
VIDEOCOMPLETE: 245, // Completing a video (or % proxy)
VIDEOBUFFERING: 246, // Capturing a video buffer event
VIDEOERROR: 247, // Capturing a video error
VIDEOMUTE: 248, // Muting a video
VIDEOUNMUTE: 249, // Unmuting a video
VIDEOFULLSCREEN: 250, // Making a video full screen
VIDEOUNFULLSCREEN: 251, // Making a video return from full screen to original size
VIDEOREPLAY: 252, // Making a video replay
VIDEOPLAYERLOAD: 253, // Loading the video player
VIDEOPLAYERCLICK: 254, // Click on a button within the interactive player
VIDEOVOLUMECONTROL: 255, // Click on video volume control
VIDEOAUDIOTRACKCONTROL: 256, // Click on audio control within a video
VIDEOCLOSEDCAPTIONCONTROL: 257, // Click on the closed-caption control
VIDEOCLOSEDCAPTIONSTYLE: 258, // Click to change closed-caption style
VIDEORESOLUTIONCONTROL: 259, // Click to change resolution
///////////////////////////////////////////////////////////////////////////////////////////////////
// Advertisement Engagement [280-299]
///////////////////////////////////////////////////////////////////////////////////////////////////
ADBUFFERING: 283, // Ad is buffering
ADERROR: 284, // Ad error
ADSTART: 285, // Ad start
ADCOMPLETE: 286, // Ad complete
ADSKIP: 287, // Ad skipped
ADTIMEOUT: 288, // Ad timed out
OTHER: 300 // Other
};
// Application Insights Configuration
var configObj = {
connectionString: "YOUR_CONNECTION_STRING",
extensions: [clickPluginInstance],
extensionConfig: {
[clickPluginInstance.identifier]: {
behaviorValidator: Microsoft.ApplicationInsights.BehaviorMapValidator(behaviorMap),
defaultRightClickBhvr: 9
},
},
};
var appInsights = new Microsoft.ApplicationInsights.ApplicationInsights({
config: configObj
});
appInsights.loadAppInsights();
Ukázková aplikace
Podívejte se na jednoduchou webovou aplikaci s povoleným modulem plug-in Autocollection Click Analytics pro implementaci vlastních vlastností událostí, jako jsou Name a parentid, a také vlastního chování a obsahu. Informace o tom, kde najít data pro kliknutí, najdete v souboru readme ukázkové aplikace.
parentId Příklady klíče
Následující příklady ukazují, která hodnota se načte jako parentId pro různé konfigurace.
Příklady ukazují, že pokud je parentDataTag definován, ale zásuvný modul nemůže tuto značku najít ve stromě DOM, použije id nejbližšího nadřazeného prvku.
Příklad 1
V příkladu 1 parentDataTag není deklarován a data-parentid ani data-*-parentid není definován v žádném prvku. Tento příklad ukazuje konfiguraci, kde se neshromažďuje hodnota parentId .
export const clickPluginConfigWithUseDefaultContentNameOrId = {
dataTags : {
customDataPrefix: "",
parentDataTag: "",
dntDataTag: "ai-dnt",
captureAllMetaDataContent:false,
useDefaultContentNameOrId: true,
autoCapture: true
},
};
<div className="test1" data-id="test1parent">
<div>Test1</div>
<div>with id, data-id, parent data-id defined</div>
<Button id="id1" data-id="test1id" variant="info" onClick={trackEvent}>Test1</Button>
</div>
Pro klikaný prvek <Button> hodnota parentId je not_specified, protože nejsou definovány žádné parentDataTag podrobnosti a v aktuálním prvku není k dispozici žádné ID nadřazeného elementu.
Příklad 2
V příkladu 2 parentDataTag se deklaruje a data-parentid definuje. Tento příklad ukazuje, jak se shromažďují podrobnosti ID rodiče.
export const clickPluginConfigWithParentDataTag = {
dataTags : {
customDataPrefix: "",
parentDataTag: "group",
ntDataTag: "ai-dnt",
captureAllMetaDataContent:false,
useDefaultContentNameOrId: false,
autoCapture: true
},
};
<div className="test2" data-group="buttongroup1" data-id="test2parent">
<div>Test2</div>
<div>with data-id, parentid, parent data-id defined</div>
<Button data-id="test2id" data-parentid = "parentid2" variant="info" onClick={trackEvent}>Test2</Button>
</div>
Pro klikaný prvek <Button>, je hodnota parentIdparentid2. I když parentDataTag je deklarován, data-parentid je přímo definován v rámci elementu. Proto má tato hodnota přednost před všemi ostatními nadřazenými ID nebo podrobnostmi ID definovanými v nadřazených prvcích.
Příklad 3
V příkladu 3 parentDataTag je deklarován a data-parentiddata-*-parentid atribut není definován. Tento příklad ukazuje, jak může být deklarování parentDataTag užitečné pro shromáždění hodnoty pro parentId pro případy, kdy dynamické prvky nemají id nebo data-*-id.
export const clickPluginConfigWithParentDataTag = {
dataTags : {
customDataPrefix: "",
parentDataTag: "group",
dntDataTag: "ai-dnt",
captureAllMetaDataContent:false,
useDefaultContentNameOrId: false,
autoCapture: true
},
};
<div className="test6" data-group="buttongroup1" data-id="test6grandparent">
<div>Test6</div>
<div>with data-id, grandparent data-group defined, parent data-id defined</div>
<div data-id="test6parent">
<Button data-id="test6id" variant="info" onClick={trackEvent}>Test6</Button>
</div>
</div>
Pro kliknutý prvek <Button> je hodnota parentIdtest6parent, protože parentDataTag je deklarován. Tato deklarace umožňuje plug-inu procházet aktuálním stromem prvků, a proto se ID jeho nejbližšího nadřazeného prvku použije, pokud nejsou detaily nadřazeného ID přímo poskytnuty v aktuálním prvku. S definovaným data-group="buttongroup1" modulem plug-in zjistí parentId efektivněji.
Pokud atribut odeberete data-group="buttongroup1" , hodnota parentId je stále test6parent, protože parentDataTag je stále deklarována.
Řešení problému
Projděte si vyhrazený článek o řešení potíží.
Další kroky
- Ověřte, že data proudí.
- Podívejte se do dokumentace k využití sešitu HEART pro rozšířené analýzy produktů.
- Viz úložiště GitHub a balíček npm pro plug-in Click Analytics Autocollection.
- Použijte analýzu událostí v uživatelském prostředí Využití k analýze nejčastějších kliknutí a segmentaci podle dostupných dimenzí.
- Pokud nevíte, jak psát dotaz, podívejte se na kurz služby Log Analytics a dotazy na protokoly ve službě Azure Monitor .
- Vytvořte sešit nebo export do Power BI a vytvořte vlastní vizualizace dat kliknutím.