Bonjour,

J'ai créé un module JavaScript qui me permet d’afficher des chiffres, j’aimerais que ces chiffres soit un compteur du nombre de vue de mon site et qu’à chaque rafraîchissement de page, les chiffres donnés soit mis à jours sur la page.


J'ai le critères qui me convient sur google Analytics à savoir :

(Vues Nombre d'écrans d'application ou de pages Web consultés par les utilisateurs. Les vues répétées d'une même page ou d'un même écran sont prises en compte (événements screen_view et page_view).

Je vous joins mon code JS que j'ai écrit mais qui ne fonctionne pas (erreur retournée ReferenceError: Can't find variable: gapi) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
const title = document.getElementById('autotext');
 
const getUsersCount = () => {
  return gapi.client.analytics.data.ga.get({
    'ids': 'ga:384286597',
    'start-date': '30daysAgo',
    'end-date': 'today',
    'metrics': 'ga:users',
    'dimensions': 'ga:date'
  })
  .then(response => {
    const data = response.result.rows;
    const usersCount = data.reduce((total, row) => total + parseInt(row[1]), 0);
    return usersCount;
  })
  .catch(error => {
    console.error('Erreur lors de la récupération du nombre d\'utilisateurs :', error);
    return 0; // Retourne 0 en cas d'erreur
  });
};
 
let index = 0;
let timer;
 
const randomSpeed = (min, max) => {
  return Math.floor(Math.random() * (max - min) + min);
};
 
const play = async () => {
  const usersCount = await getUsersCount();
  const paddedNumber = String(usersCount).padStart(3, '0'); // Ajoute trois zéros en tête du nombre d'utilisateurs
  const randomNumber = paddedNumber.slice(0, index);
  title.innerHTML = randomNumber;
 
  index++;
 
console.log(paddedNumber)
 
  if (index > paddedNumber.length) {
    clearInterval(timer);
    setTimeout(() => {
      index = 0;
      timer = setInterval(play, randomSpeed(70, 500));
    }, 3000); // Attend 3 secondes avant de recommencer le processus
  }
};
 
gapi.client.init({
  'apiKey': 'AIzaSyD83C1ylqT8zf1ZqR4vTMRtzG6kbo3PCeQ',
  'clientId': '163143196731-ctrfrp154c41vb5va73em6ka743hor20.apps.googleusercontent.com',
  'discoveryDocs': ['https://www.googleapis.com/discovery/v1/apis/analytics/v3/rest'],
  'scope': 'https://www.googleapis.com/auth/analytics.readonly'
})
.then(() => {
  // Appel de la fonction pour récupérer le nombre d'utilisateurs
  return getUsersCount();
})
.then(usersCount => {
  // Utiliser le nombre d'utilisateurs pour afficher les statistiques
  const paddedNumber = String(usersCount).padStart(3, '0');
  const randomNumber = paddedNumber.slice(0, index);
  title.innerHTML = randomNumber;
 
  index++;
 
  if (index > paddedNumber.length) {
    clearInterval(timer);
    setTimeout(() => {
      index = 0;
      timer = setInterval(play, randomSpeed(70, 500));
    }, 3000);
  }
})
.catch(error => {
  console.error('Erreur lors de l\'initialisation de l\'API Google Analytics :', error);
});
 
timer = setInterval(play, randomSpeed(70, 500)); // Démarre immédiatement le processus