اذهب إلى المحتوى

السؤال

نشر

عندما أقوم بعمل موقع عادي (ليس من نوع SPA) يمكنني أن أقوم بوضع كود Google analytics بدون مشكلة لأنه سيتم تشغيله في كل صفحة، لكن عندما أقوم بعمل مشروع SPA بإستخدام React فسيتم تنفيذ كود Google analytics مرة واحدة فقط حتى وإن قام المستخدم بالدخول إلى صفحة أخرى بإستخدام React-router. كيف أقوم بإخبار Google analytics بأن المستخدم قد ذهب إلى صفحة معينة حتى أستطيع عمل Tracking للصفحات التي يزورها المستخدمون؟

Recommended Posts

  • 0
نشر (معدل)

يمكنك الإستعانة بهاته الحزمة لتحقيق الغرض.

  1. بداية قم بتثبيت الحزمة عن طريق مدير الحزم : 
npm install react-ga --save

    2. تضمين الموديلات اللازمة بملف App.js :

import ReactGA from "react-ga";

    3. مصادقة غوغل انالتكس مع الحزمة , أيضا قم بتعريف ثابت بشكل globally (سنأتي لإستعماله في الخطوة التالية): 

ReactGA.initialize("TRACKING-ID");
const history= createHistory(window);

 4. بداخل وسم LocationProvider بالراوتر قم بتعريف الخاصية history و قم بإرفاقها بالثابت الذي تم تعريفه على هذا النحو : 

<LocationProvider history={history}>
  <Router>
    ..
  </Router>
</LocationProvider>

الان يتم رصد أي تغيير يخص الكائن window . ينبغي الان فقط الإستماع لهاته التغيرات و التصرف بناءا عليها . 

مثال : 

history.listen( window => {
  ReactGA.pageview(window.location.pathname + window.location.search);
});

و هذا جواب سؤالك :

بتاريخ 47 دقائق مضت قال Adam Ebrahim:

 كيف أقوم بإخبار Google analytics بأن المستخدم قد ذهب إلى صفحة معينة حتى أستطيع عمل Tracking للصفحات التي يزورها المستخدمون؟

 

تم التعديل في بواسطة Adnane Kadri
  • 0
نشر

يمكنك استخدام react-ga مع history قم بتثبيت المكتبات

npm i react-ga history -S

بعد ذلك  تحتاج ببساطة إلى استيراد الحزمة react-ga وتهيئتها في التطبيق الخاص بك.

import ReactGA from 'react-ga';

const trackingId = "XXXXXXXXXXXXX"; // قم بنسخ مفتاح التراكينغ الخاص بك
ReactGA.initialize(trackingId);

بعد ذلك ، نحتاج ببساطة إلى توصيل  المتصفح الخاص بك بال Router وGoogle Analytics 

import React from 'react';
import ReactDOM from 'react-dom';
import ReactGA from 'react-ga';
import { createBrowserHistory } from 'history';
import { Router } from 'react-router-dom';

const history = createBrowserHistory();


history.listen(location => {
  ReactGA.set({ page: location.pathname }); 
  ReactGA.pageview(location.pathname); 
});

const App = () => (
  <Router history={history}>
   .....
  </Router>
);

ReactDOM.render(<App />, document.getElementById('root'));

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...