Afficher données API google analytics
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:
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 |