Configurer une infrastructure de suivi de pixels sans serveur

Ce tutoriel explique comment configurer une infrastructure de suivi de pixels, et ne concerne pas la configuration d'un site Web. Il vous indique plutôt comment rendre un pixel disponible via une URL qui peut être intégrée dans une propriété d'éditeur, telle qu'une page Web.

L'exemple d'infrastructure utilisé offre trois fonctionnalités principales, y compris :

  • La diffusion : cette fonctionnalité nécessite un stockage d'objets évolutif et rapide pouvant parfois diffuser plusieurs centaines de milliers de requêtes par seconde. Ce tutoriel explique comment utiliser Cloud Storage.
  • La collecte : cette partie capture les requêtes HTTP effectuées pour le pixel. Ce tutoriel utilise l'équilibreur de charge HTTP Compute Engine et exploite Cloud Logging.
  • Lanalyse : des pixels sont chargés chaque fois qu'un utilisateur visite une page. Ces requêtes peuvent créer des centaines de milliers d'événements par seconde. Ce tutoriel utilise BigQuery pour vous aider à comprendre toutes ces données, y compris les paramètres.

Objectifs

Dans ce tutoriel, vous allez créer les éléments suivants :

  • Un pixel diffusé sur http://[YOUR_IP_ADDRESS]/pixel.png?[PARAMETERS].
  • Un moyen d'enregistrer les requêtes effectuées pour l'URL du pixel.
  • Un environnement de test permettant d'agir comme si le pixel était appelé par une page. Cet environnement appelle des URL avec différentes combinaisons de paires clé-valeur dans la chaîne de paramètres, y compris les éléments suivants :

    • L'ID utilisateur
    • La page affichée
    • Les produits contenus dans le panier
  • La fonctionnalité d'exportation de journaux de BigQuery garantit que les requêtes de pixels sont enregistrées dans BigQuery au fur et à mesure de leur exécution.

  • Des exemples de requêtes qui vous aident à appréhender les points suivants :

    • Les utilisateurs les plus actifs sur le site
    • Les pages visitées
    • Les produits les plus demandés

Coûts

Une telle architecture peut engendrer les coûts suivants :

Bien que cet exemple fonctionne avec BigQuery, plusieurs options (à des tarifs différents) s'offrent à vous selon vos besoins :

  • Exportation vers Cloud Storage : le moyen le moins coûteux d'exporter des journaux de pixels. Les données sont exportées toutes les heures et vous ne payez que le coût du stockage.
  • Exportation vers BigQuery : les données sont disponibles en temps réel dans des outils d'analyse ad hoc. Les coûts associés incluent l'utilisation des fonctionnalités suivantes :

    • Stockage BigQuery
    • API d'insertion en flux continu de BigQuery
    • Requêtes BigQuery
  • Exportation vers Pub/Sub : cette solution, mentionnée à la fin de ce tutoriel, permet l'agrégation en temps réel des données en utilisant Dataflow. Cette approche pourrait limiter le coût de l'API de diffusion BigQuery. Les coûts liés à cette solution incluent :

    • Pub/Sub
    • Dataflow

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.

Avant de commencer

  1. Dans Google Cloud Console, accédez à la page de sélection du projet.

    Accéder au sélecteur de projet

  2. Sélectionnez ou créez un projet Google Cloud.

Configurer la diffusion de pixels

Créer un bucket

Vous pouvez créer un bucket à l'aide de Google Cloud Console ou de l'outil de ligne de commande gsutil. Dans ce tutoriel, nous supposons que vous utilisez un nom de bucket semblable à :

    [YOUR_PREFIX]-gcs-pixel-tracking

Où vous remplacez [YOUR_PREFIX] par une chaîne unique.

Pour créer un bucket :

Cloud Console

  1. Dans Cloud Console, accédez à la page Navigateur.

    Accéder à la page du navigateur

  2. Cliquez sur Créer un bucket.
  3. Sur la page Créer un bucket, spécifiez les attributs suivants :
  4. Cliquez sur Create (Créer).

Ligne de commande

    Créer un bucket Cloud Storage Remplacez YOUR_BUCKET par un nom qui répond aux conditions requises pour le nom des buckets :
    gsutil mb gs://YOUR_BUCKET

Modifier les autorisations relatives au bucket

Une fois que vous avez créé le bucket, celui-ci est répertorié dans Cloud Console. Vous allez ensuite rendre le bucket accessible au public.

  1. Dans Cloud Console, cliquez sur le signe Plus à droite de la ligne de votre bucket, puis sélectionnez Edit bucket permissions (Modifier les autorisations liées au bucket).

    Configurer des autorisations sur le bucket

  2. Dans le champ Ajouter des comptes utilisateur, saisissez allUsers.

  3. Dans la liste Sélectionner un rôle, sélectionnez Reader (Lecteur).

    Autorisations configurées sur le bucket

  4. Cliquez sur Ajouter.

Importer le pixel

Vous pouvez copier un pixel directement depuis le bucket Cloud Storage public de Google :

gsutil cp gs://solutions-public-assets/pixel-tracking/pixel.png  gs://[YOUR_PREFIX]-gcs-pixel-tracking

Vous pouvez également créer un pixel en local, puis l'importer dans Cloud Console.

  1. Dans la liste des buckets, cliquez sur [YOUR_PREFIX]-gcs-pixel-tracking.
  2. Cliquez sur Importer des fichiers, sélectionnez les fichiers que vous souhaitez importer dans la boîte de dialogue qui s'affiche, puis cliquez sur Ouvrir.
  3. Dans la liste des objets du bucket, cochez la case Public link (Lien public) en regard du pixel que vous avez importé.

    Rendre le pixel public

Configurer l'équilibreur de charge

Vous disposez à présent d'un bucket Cloud Storage comportant un seul pixel invisible et accessible au public. Vous allez ensuite configurer un moyen de consigner toutes les requêtes effectuées dans le bucket en créant un équilibreur de charge HTTP devant celui-ci.

  1. Dans Cloud Console, accédez à la page Équilibrage de charge.

    ACCÉDER À LA PAGE "ÉQUILIBRAGE DE CHARGE"

  2. Cliquez sur Créer un équilibreur de charge.

  3. Dans la section Équilibrage de charge HTTP(S), cliquez sur Démarrer la configuration.

  4. Configurez un backend pour votre bucket Cloud Storage. Les résultats sont semblables à l'image suivante. Pour en savoir plus sur la création d'un bucket de backend, consultez la documentation relative au bucket de backend.

    Configurer le backend

  5. Configurez l'hôte et le chemin d'accès selon vos besoins ou laissez-les tels quels pour une configuration de base.

  6. Cliquez sur Create (Créer). Vous devrez obtenir un environnement semblable au suivant :

    Configuration de bucket

Collecter des journaux

Vous collectez des journaux à l'aide de l'exportation Cloud Logging. Dans ce cas, vous pouvez exporter les données directement vers BigQuery. Pour configurer l'exportation, vous devez créer un ensemble de données pour recevoir les données de journalisation, puis configurer les règles d'exportation.

Créer un ensemble de données de réception dans BigQuery

  1. Accédez à BigQuery :

    OUVRIR BigQuery

  2. Cliquez sur la flèche située à côté du nom de votre projet.

  3. Cliquez sur Créer un ensemble de données.

  4. Dans le champ du nom, saisissez gcs_pixel_tracking_analytics.

Configurer l'exportation

  1. Dans Cloud Console, accédez à la page Exportations.

    ACCÉDER À LA PAGE "EXPORTATIONS"

  2. Ajoutez un filtre pour votre équilibreur de charge. Remplacez [YOUR_LB_NAME] par le nom de votre équilibreur de charge.

    resource.type = http_load_balancer AND resource.labels.url_map_name = "[YOUR_LB_NAME]"
    
  3. Cliquez sur Créer une exportation.

  4. Indiquez un Sink Name (Nom de récepteur).

  5. Dans la liste Sink Service (Service du récepteur), sélectionnez BigQuery.

  6. Dans la liste Sink Destination (Destination du récepteur), sélectionnez l'ensemble de données que vous avez créé précédemment.

  7. Cliquez sur Créer un récepteur.

    Créer le récepteur

Créer des exemples de données

Vous disposez désormais d'un pixel prêt à être diffusé, mais rien ne vaut une démonstration. Bien sûr, votre pixel n'est pas encore actif sur un site qui reçoit des milliers de pages vues. Pour effectuer une analyse de trafic avec BigQuery et comprendre son fonctionnement à grande échelle, vous pouvez créer des exemples de données en utilisant des paramètres personnalisés ajoutés à l'URL du pixel.

Pour cela, vous pouvez utiliser Vegeta. Le tutoriel dédié à la configuration d'un environnement de test de charge se trouve dans GitHub. Le test de charge envoie des requêtes pour l'URL de pixel en ajoutant des valeurs aléatoires aux paramètres d'URL, comme suit :

GET http://[YOUR_IP_ADDRESS]/pixel.png?[YOUR_PARAMETERS]

Les paramètres peuvent être semblables à l'exemple suivant :

uid=19679&pn=checkout&purl=http%3A%2F%2Fexample.com%2Fpage&e=pl&pr=prod1;prod2:

Dans l'exemple précédent :

  • uid est l'ID utilisateur du client visiteur.
  • purl est l'URL de la page qu'il visite.
  • e est l'événement.
  • pr est une liste des produits présents dans le panier à ce moment-là.

Analyser des journaux

Il existe différents moyens d'analyser des données dans BigQuery. Ce tutoriel analyse les journaux via l'interface utilisateur Web BigQuery.

Les sections suivantes présentent les requêtes fréquemment utilisées pour le scénario de suivi des pixels.

Les 5 premiers clients déjà connus avec le plus de visites

La requête suivante répertorie les ID utilisateur (uid) et le nombre de requêtes adressées à l'URL hébergeant le pixel (c_uid), pour chaque ID. La requête limite les résultats aux cinq décomptes les plus élevés, par ordre décroissant.

SELECT
  count(REGEXP_EXTRACT(httpRequest.requestUrl, r"^.+uid=([0-9]*)")) as c_uid,
  REGEXP_EXTRACT(httpRequest.requestUrl, r"^.+uid=([0-9]*)") as uid
FROM
  `YOUR_PROJECT.YOUR_DATASET.request_*`
GROUP BY uid
ORDER BY c_uid DESC
LIMIT 5

Les résultats sont les suivants :

Configuration de bucket

Les 5 principaux produits

Dans cet exemple, la chaîne de paramètre contient pr=product1;product2;product3. La requête suivante exploite les tableaux BigQuery pour comptabiliser l'apparition de chaque produit dans tous les éditeurs, afin que vous puissiez savoir quels produits ont suscité l'intérêt du visiteur.

SELECT
  DATE(timestamp) day,
  product,
  count(product) c_prod
FROM
  `[PROJECT_ID].gcs_pixel_tracking_analytics.[TABLE_ID]`
CROSS JOIN UNNEST(SPLIT(REGEXP_EXTRACT(httpRequest.requestUrl, r"^.+pr=(.*)"), ";")) as product
GROUP By product, day
ORDER by c_prod desc

Remplacez [PROJECT_ID] et [TABLE_ID] par les valeurs appropriées.

Vous pouvez effectuer des analyses supplémentaires en modifiant les données, en les enregistrant dans une autre table BigQuery et en créant des tableaux de bord à l'aide de Google Data Studio, par exemple.

Tests de charge

Si vous souhaitez effectuer un test de charge pour votre configuration, il existe un dépôt GitHub contenant une liste d'URL personnalisées. Le test atteint 100 000 requêtes par seconde, mais vous pouvez également l'effectuer pour une quantité de requêtes plus élevée.

Nettoyer

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer le projet

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer des ressources individuelles

Suivez les étapes ci-dessous pour supprimer des ressources individuelles au lieu de supprimer tout le projet.

Supprimer le bucket Cloud Storage

  1. Dans Cloud Console, accédez à la page Navigateur.

    Accéder à la page du navigateur

  2. Cochez la case correspondant au bucket que vous souhaitez supprimer.
  3. Pour supprimer le bucket, cliquez sur  Supprimer.

Supprimer les ensembles de données BigQuery

  1. Ouvrez l'interface utilisateur Web BigQuery.

    OUVRIR BigQuery

  2. Sélectionnez les ensembles de données BigQuery que vous avez créés au cours du tutoriel.

Étape suivante

  • Testez d'autres fonctionnalités de Google Cloud. Découvrez nos tutoriels.