Angular에서 Anode Analytics 통합
11754 단어 analyticsangularadobeanalytics
먼저 삽입된 스크립트를 통해 제3자에게 보내야 하는 정보의 스키마를 정의할 유형을 생성해 보겠습니다. 아래의 경우 Adobe 대시보드에서 추적 및 분석하는 데 사용되는 메트릭 모델입니다.
//metrics.model.ts
export interface Metrics {
applicationame: string;
country: string;
language: string;
pagename: string;
userid: string;
userrole: string;
}
타사 스크립트를 호출하려면 헤드 섹션에 스크립트를 포함해야 합니다. 각도 방식을 시도하고 있으므로 AppComponent 로드 시 이 스크립트 노드를 동적으로 추가합니다.
아래와 같이 AppComponent에 구현
OnInit
const scriprtNode = this.document.createElement('script');
scriprtNode.src = environment.adobeAnalyticsUrl;
scriprtNode.type = 'text/javascript';
scriprtNode.async = false;
this.document.getElementsByTagName('head')[0].appendChild(scriprtNode);
AppComponent 내에서 문서를 사용하려면 생성자를 통해 문서를 주입해야 합니다
@Inject(DOCUMENT) private document: Document
.Adobe Analytics는 개체가 window 개체의 미리 정의된 사용자 정의 속성에 바인딩될 것으로 예상합니다. 창 개체에 대한 참조를 가져오고 구성 요소에 주입할 수 있는 서비스를 만들 것입니다. 그 쪽이 더 깨끗합니다.
//window-ref.service.ts
import { Injectable } from '@angular/core';
@Injectable()
export class WindowRef {
get nativeWindow() : any {
return window;
}
}
이전에 만든 유형
Metrics
의 개체를 추적하는 서비스를 만들 수 있습니다. 이 서비스는 포함된 스크립트를 통해 Analytics 서비스에 보낼 개체를 설정하는 데 사용해야 합니다.//adobe-analytics.service.ts
import { Injectable } from '@angular/core';
import { WindowRef } from './window-ref.service';
import { Metrics } from 'src/models/metrics.model.ts';
@Injectable()
export class AdobeAnalyticsService {
metrics: Metrics = {} as Metrics;
constructor(private winRef: WindowRef) {
}
updateMetricsObject(deltaMetrics) {
Object.assign(this.metrics, deltaMetrics)
const wr = this.winRef.nativeWindow;
wr.Org = wr.Org || {};
wr.Org.Metrics = wr.Org.Metrics || {};
wr.Org.Metrics.sc = this.metrics;
return wr.Org.Metrics.sc;
}
sendToAdobe() {
const wr = this.winRef.nativeWindow;
if (wr.metrics_pagenav != undefined) wr.metrics_pagenav('', this.metrics);
}
}
우리는 새 페이지를 탐색할 때마다 이러한 측정항목을 캡처하여 가장 많이 방문한 페이지와 사용자가 이동한 경로 및 사용자 세부정보 및 페이지 이름과 같은 다른 속성에서 파생할 수 있는 다양한 기타 통찰력을 알도록 노력할 것입니다. Angular에서는
Router
events을 사용하여 경로 변경 이벤트를 수신하고 분석 메서드를 호출하여 정보를 푸시할 수 있습니다.//app-routing.module.ts
this.router.events.pipe(filter(e => e instanceof RoutesRecognized))
.subscribe((event) => {
const url: string = event['urlAfterRedirects'];
const regex = /[a-zA-Z]+[-]*[a-zA-Z]+/gm;
var pageName = url.match(regex)[0];
this.adobeAnalyticsService.updateMetricsObject({ pagename: `blahblah|${pageName}` });
this.adobeAnalyticsService.sendToAdobe();
}
);
이제 Adobe 대시보드에서 압정 정보를 확인할 수 있습니다.
원래 게시됨Bitsmonkey
Reference
이 문제에 관하여(Angular에서 Anode Analytics 통합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/0xarjunshetty/integrating-adode-analytics-in-angular-161텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)