Wenn ein Unternehmen seine Benutzerbasis vergrößern möchte, muss es Daten zum Benutzerbetrieb erfassen und analysieren. Daher sind Trackingdaten von wesentlicher Bedeutung. 1. Manuelles Vergraben Manuelles Tracking bedeutet, dass bei Bedarf ein Code zum Melden von Trackingpunkten hinzugefügt wird. Dies beeinträchtigt das Lesen des Codes und der verstreute eingebettete Code lässt sich nicht bequem verwalten. // src/manual/home/index.tsx Tracking aus "./tracking" importieren; // pageSn ist die „eindeutige Kennung der Seite im Tracking-System“, auf die sich Frontend und Produkt geeinigt haben. Die Kennung der Homepage dieses Projekts ist beispielsweise die Nummer 11664 const SeiteSn = 11111; Standard exportieren () => { // useDidShow ist ein Taro-spezifischer Hook, der dem nativen componentDidShow-Lebenszyklus des Miniprogramms entspricht und aufgerufen wird, wenn die Seite angezeigt wird. useDidShow(() => { // Senden Sie den PV-Einbettungspunkt sendPv (pageSn) über die einheitliche Kapselungsmethode sendPv }); return <View>Seite zum manuellen Einbetten</View>; }; 2. Automatisches Vergraben Das automatische Tracking kann in vollautomatisches Tracking und halbautomatisches Tracking unterteilt werden. Durch die vollautomatische Punktvergrabung werden alle Punkte vergraben, unabhängig davon, ob sie benötigt werden oder nicht. Der Frontend-Entwickler dürfte zufrieden sein und gesagt haben: „Kommen Sie in Zukunft für die Produktentwicklung nicht mehr zu mir.“ Doch der Datenwissenschaftler fing an zu weinen. Beispielsweise haben Tencent und das Taro-Team gemeinsam das automatisierte Tracking Tencent Youshu eingeführt, mit dem sich ganz einfach eine Verbindung herstellen lässt. Wenn Sie beispielsweise „proxyPage“ auf „true“ setzen, werden „alle Ereignisse beim Durchsuchen, Verlassen, Teilen und andere Aktionen auf der Seite gemeldet“, und wenn Sie „autoTrack“ auf „true“ setzen, werden „alle Ereignisse beim Tippen, Ändern, langen Drücken und Bestätigen von Elementen automatisch gemeldet“. In Bezug auf Datenvolumen und Effektivität ist „Vollvergrabung“ jedoch gleichbedeutend mit „Nichtvergrabung“, da „Vollvergrabung“ einerseits einen sehr hohen Datenspeicherbedarf hat und andererseits unseren Studierenden, die für die Datenbereinigung zuständig sind, viel Arbeit bereitet. Als nächstes sollten wir also nach einem Gleichgewicht suchen und uns auf das halbautomatische Tracking konzentrieren. 1. Seitenpräsenz (pv)Seitenpräsenz (PV), die ideale Berichtsmethode ist: Konfigurieren Sie an einer einheitlichen Stelle (z. B. „trackingConf.ts“) die Kennung jeder zu verfolgenden Seite (d. h. „pageSn“). Konkrete Umsetzung (1) Einheitliche Konfiguration der Tracking-Punktfelder, pageSn stellt die Kennung der Seite im Tracking-Punktsystem dar //trackingConf.ts Standard exportieren { "auto/home/index": { SeiteSn: 11111, }, }; Wenn Ihr Unternehmen es Ihnen erlaubt, alle Seiten-PVs zu melden (mit dem Pfad, damit das Produkt selbst filtern kann), können Sie Schritt (1) natürlich überspringen und direkt zu Schritt (2) gehen. Diese Methode kann als „vollautomatisches PV-Tracking“ bezeichnet werden. (2) Kapseln Sie den usePv-Hook ein. Wenn die Seite angezeigt wird, rufen Sie die aktuelle Seite pageSn ab, bestimmen Sie, ob PV eingebettet werden soll, und senden Sie PV bei Bedarf. // verwendenPv.ts // Den aktuellen Seitenpfad mit Taros getCurrentInstance abrufen exportiere const getPath = () => { const Pfad = Taro.getCurrentInstance().router?.Pfad || ""; // Entfernen Sie den führenden /, ändern Sie beispielsweise „/auto/home/index“ in „auto/home/index“ returniere Pfad.Match(/^\/*/) ? Pfad.Ersetzen(/^\/*/, "") : Pfad; }; // Aktuelle Seite pageSn abrufen, bestimmen, ob pv eingebettet werden soll, und wenn ja pv senden // Der Parameter getExtra unterstützt die Übertragung zusätzlicher Parameter const usePv = ({ getExtra, }: { getExtra?: () => beliebig; } = {}) => { // Seitenanzeige useDidShow(() => { const currentPath = getPath(); // pageSn von trackingConf abrufen const pageSn = trackingConf[aktuellerPfad]?.pageSn; console.log("Seite Sn automatisch abrufen", currentPath, Seite Sn); if (SeiteSn) { const extra = getExtra?.(); // Senden Sie den PV-Einbettungspunkt extra über die einheitliche Kapselungsmethode sendPv? sendPv(pageSn, extra) : sendPv(pageSn); } }); }; (3) Kapseln Sie anschließend die Seitenkomponente WrapPage ein und verwenden Sie das obige usePv(): importiere React von „react“; importiere { Ansicht } aus "@tarojs/components"; importiere usePv aus "./usePv"; Funktion WrapPage(Comp) { Rückgabefunktion MyPage(props) { verwendenPv(); zurückkehren ( <Ansicht> <Comp {...Eigenschaften} /> </Anzeigen> ); }; } Standard-WrapPage exportieren; (4) Umhüllen Sie abschließend alle Seitenkomponenten mit einer Schicht WrapPage, um eine „On-Demand-Einbettung aller Seiten“ zu erreichen: // src/auto/home/index.tsx const Index = WrapPage(() => { return <View>Seite zum automatischen Einbetten</View>; }); Wenn Sie später eine neue Seite entwickeln, müssen Sie zusätzlich zum Umschließen mit WrapPage in Schritt (1) nur pageSn der Seite in trackingConf.ts hinzufügen. Fragenrunde Neugierige Kinder fragen vielleicht: (1) Da usePv() in WrapPage gekapselt ist, wie können wir die Berichterstellung für benutzerdefinierte Felder unterstützen? // src/auto/home/index.tsx const Index = () => { verwendenPv({ getExtra: () => { const params = Taro.getCurrentInstance().router?.params; returniere { Parameter }; }, }); return <View>Seite zum automatischen Einbetten</View>; }); (2) Jede Seitenkomponente muss hier mit WrapPage umschlossen werden, was immer noch invasiv für das Geschäft ist. Das native Applet kann die Seite neu schreiben und Pv() direkt in der Seite verwenden. Das Taro-Projekt sollte dazu doch auch in der Lage sein und dabei 0 Geschäftseingriffe erreichen, oder? Im Taro-Projekt ist es tatsächlich möglich, native Seiten gleichmäßig in der App abzufangen, genau wie native Miniprogramme. In diesem Fall wird das oben erwähnte Problem „einige Seiten müssen zusätzliche Parameter berechnen und melden“ jedoch schwer zu lösen sein. 2. Seiten teilenEs gibt zwei Arten des Teilens in WeChat-Miniprogrammen:
Konkrete Umsetzung Nehmen wir useShareAppMessage als Beispiel (dasselbe gilt für useShareTimeline): //trackingConf.ts Standard exportieren { "auto/home/index": { SeiteSn: 11111, shareMessage: {eleSn: 2222, destination: 0 }, // Füge shareMessage hinzu, um die eleSn des geteilten Freundes und den zusätzlichen Serviceparameter destination einzuschließen } }; (2) Kapseln Sie die Methode useShareAppMessage und ersetzen Sie die Methode Taro.useShareAppMessage in allen Geschäftsaufrufen durch diese Methode useShareAppMessage. // Mit Freunden teilen und die Nachricht an einem Ort vergraben export const useShareAppMessage = ( Rückruf: (Nutzlast: ShareAppMessageObject) => ShareAppMessageReturn ) => { let newCallback = (Nutzlast: ShareAppMessageObject) => { const Ergebnis = Rückruf(Nutzlast) const currentPath = getPath(); // getPath ruft den aktuellen Seitenpfad ab, siehe getPath in „1. Seitenpräsenz (pv)“ // pageSn, shareMessage usw. aus trackingConf abrufen const { pageSn, shareMessage } = trackingConf[currentPath] const { eleSn, ...extra } = shareMessage || {} let page_el_sn = eleSn const { imageUrl: Bild-URL, Pfad: Share-URL } = Ergebnis const { from: from_ele } = Nutzlast const BerichtInfo = { von_ele, share_to: 'friend', // 'friend' bedeutet mit Freunden teilenimage_url, Teilen_URL, ...Extra } console.log('...useShareAppMessage-Tracking', { pageSn, page_el_sn, reportInfo }) sendImpr(pageSn, page_el_sn, reportInfo) // Sie können die sendImpr-Methode selbst kapseln, um Freigabeinformationen zu senden und das Rückgabeergebnis zu erhalten. } Taro.useShareAppMessage(neuer Rückruf) } Wenn eine Seite also einen Tracking-Punkt zum Teilen mit Freunden hinzufügen muss, fügen Sie einfach das Element „shareMessage“ in „trackingConf.ts“ hinzu, und dasselbe gilt für „useShareTimeline“. Fragenrunde Neugierige fragen sich vielleicht: Wenn die Seite Tracking-Punkte zum Teilen mit Freunden/Freundeskreisen hinzufügen muss, ist dies ohne Konfiguration möglich (d. h. ohne Änderung der obigen Datei „trackingConf.ts“)? 3. ElementvergrabungspunkteDie Forschung zur automatischen Elementverfolgung ist auf Widerstand gestoßen und wurde bisher nicht umgesetzt. Der folgende Artikel befasst sich hauptsächlich mit den Problemen, die bei verschiedenen Ideen auftreten. Wenn Sie gute Vorschläge haben, können Sie diese gerne im Kommentarbereich mitteilen. Wir betten Elemente ein. Zu den Elementen mit höherer Frequenz gehören Belichtungs- und Klickereignisse, und zu den Elementen mit mittlerer und niedriger Frequenz gehören Scrollen, Schweben und andere Ereignisse. Die manuelle Tracking-Methode besteht darin, sendImpr manuell auszuführen, um den Tracking-Punkt (mit der eindeutigen Seitenkennung pageSn und der eindeutigen Elementkennung eleSn) zu melden, wenn das durch das Element angegebene Ereignis ausgelöst wird. Kann dieser Schritt einfacher gestaltet werden? Es erfolgt kein Eingriff in den Geschäftsbetrieb und der allgemeine Ansatz ist weiterhin: Fügen Sie der Komponente einen Hook hinzu, um das angegebene Ereignis auszulösen -> Bestimmen Sie, ob der Tracking-Punkt gemeldet werden soll -> Melden Sie, wenn die Bedingungen erfüllt sind Das Problem besteht aus zwei Teilen: (1) Rückrufe von Elementereignissen abfangen Sie können die von der Miniprogrammkomponente empfangenen Optionen.Methoden abfangen und durchlaufen. Wenn es sich um eine benutzerdefinierte Funktion handelt, bestimmen Sie beim Aufrufen der Funktion, ob der Typ des ersten Parameters (vorausgesetzt, er heißt e) Ereignissen wie „tap“ entspricht. Ob die Voraussetzungen zur Meldung des Trackingpunktes vorliegen, können Sie zu diesem Zeitpunkt anhand von Informationen wie z.B. // App.js App({ beim Starten() { let old = Komponente Komponente = Funktion(Konfiguration) { //Fängt die vom Unternehmen übergebene Konfiguration ab const newConf = ProxyConfig(Konfiguration) alt(neueConf) } } }) const proxyConfig = Funktion(conf) { const-Methoden = conf.methods // Benutzerdefinierte Methoden abrufen (nach Bedarf einige nicht eingebettete Methoden ausschließen) let diyMethods = Object.entries(Methoden).filter(Funktion (Methode) { let Methodenname = Methode[0] zurückkehren ![ "beim Laden", "aufShow", "bereit", "beim Ausblenden", "beimEntladen", "beiPullDownRefresh", "beiErreichenUnten", "beimScrollen auf der Seite", "beiShareAppMessage", "beiGrößenänderung", "beim Tippen auf TabItem", "Beobachter", ].includes(Methodenname); }) diyMethods.forEach(Funktion(Methode) { const [Methodenname, Methodenfunktion] = Methode // Ändern Sie die Methoden in conf Methoden[Methodenname] = Funktion (...Argumente) { const e = args && args[0] wenn (e && e.type === 'tap') { console.log('...tapping', methodName, args) // Wenn ein Klickereignis ausgelöst wird, melde den Tracking-Punkt nach Bedarf} methodFn.call(diese,...args) } }); // Gib die geänderte Konfiguration zurück Konf zurückgeben } Im Taro-Projekt können Sie Component nicht direkt im Komponentencode verwenden, aber Sie können dasselbe Ziel auf Umwegen erreichen, beispielsweise: // meinProxy.js modul.exports = (funktion() { let OriginPage = Seite let OriginComponent = Komponente return (Seite = Funktion(conf) { conf.forEach(Funktion(e) { let [Methodenname, Methodenfunktion] = e wenn (Typ der MethodeFn === 'Funktion') { conf[Methodenname] = Funktion(...Argumente) { // Machen Sie, was Sie wollen, z. B. die Konfiguration neu schreiben usw. methodFn.call(this, ...args) } } }) Rückgabewert für OriginPage(conf) })( (Komponente = Funktion(conf) { const-Methoden = conf.methods Methoden.fürJedes(Funktion(e) { // Machen Sie, was Sie wollen, z. B. die Konfiguration neu schreiben usw.}) Ursprungskomponente(conf) }) ) })() Importieren Sie dann myProxy.js direkt in app.tsx (2) So generieren Sie automatisch eindeutige Elementkennungen Derzeit werden Elemente eindeutig durch im Tracking-System beantragte Elemente identifiziert. Wenn Sie eine automatische Identifizierung wünschen, kann diese unterteilt werden in:
AbschlussIn diesem Artikel wird die Idee beschrieben, das manuelle Tracking auf das automatische Tracking des WeChat Mini-Programms (Taro) umzustellen. Und entsprechend der Seitenverfolgung (PV, Teilen) und Elementverfolgung wird die Implementierungsmethode analysiert:
Damit ist dieser Artikel mit der detaillierten Erläuterung der Implementierung der manuellen und automatischen Verfolgung von WeChat-Miniprogrammen (Taro) abgeschlossen. Weitere Informationen zur manuellen und automatischen Verfolgung von Miniprogrammen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Mysql 5.7.17 Winx64-Installationstutorial auf Win7
>>: So führen Sie geplante PHP-Aufgaben in CentOS7 aus
1. Zuerst müssen Sie den Zielselektor von CSS3 ve...
Beim Starten von MySQL in einer OS X-Umgebung wir...
1. Linklayout der neuen Site-Startseite 1. Die Pos...
Inhaltsverzeichnis 1. Übersicht 1.1 Was ist ein P...
Die MERGE-Speicher-Engine behandelt eine Gruppe v...
Wirkung: Der Titel hat eine eigene Seriennummer, ...
Inhaltsverzeichnis Während der Entwicklung aufget...
Dieser Artikel veranschaulicht anhand von Beispie...
Welche Produkte möchten Sie erwähnen? Vor kurzem ...
Ich habe Vue.js verwendet, um ein Bildanzeigemodu...
Vorwort: Lynis ist ein Sicherheitsprüfungs- und H...
Absolute Länge px px ist der Pixelwert, also eine...
Nach der Veröffentlichung von CentOS8.0-1905 habe...
Inhaltsverzeichnis Vorwort Frage Prinzip prüfen V...
Die Master-Slave-Synchronisierung, auch Master-Sl...