Analytics multi-tenant
Modele recommande
Section intitulée « Modele recommande »Note d’usage avance : cette page documente une restitution de statistiques par boutique, compte ou client. Le multi-tenant est un modele d’organisation et d’acces aux statistiques, pas un niveau de collecte par nature. Les exemples API requierent un plan ou l’API tenant est activee et une configuration compatible avec ce niveau de restitution.
Pour un produit partage sur un seul hostname comme market.example.com,
Pomelo recommande ce modele :
| Concept | Role | Exemple |
|---|---|---|
site | Entite analytics globale | market.example.com |
tenant | Boutique ou espace analytique | demo-shop |
hostname / path | Contexte de routage | market.example.com/demo-shop |
site_id reste l’identite de la marketplace. tenant_id reste l’identite stable
de la boutique. tenant_slug sert au routage et tenant_name a l’affichage.
Noms de variables
Section intitulée « Noms de variables »| Surface | Variables |
|---|---|
| SDK JavaScript | tenantId, tenantSlug, tenantName, targetTenantId, targetTenantSlug, targetTenantName |
| API publique / wire | tenant_id, tenant_slug, tenant_name |
| Stockage interne | group_type, group_id, group_slug, group_name, group_source |
Registre des boutiques
Section intitulée « Registre des boutiques »Votre plateforme reste source de verite des boutiques et synchronise ce
registre vers Pomelo. Pomelo resout ensuite tenant_slug -> tenant_id a
partir de ce registre.
L’attribution suit cet ordre :
tenant_idexplicitetenant_slugexplicite- premier segment du path, par exemple
/demo-shop - aucun tenant
Le fallback par path est utile pour les pages boutiques, mais le registre reste
la source canonique. Si un tenant explicite est fourni mais ne peut pas etre
resolu, l’evenement reste unresolved et ne retombe pas sur le path. Le filtre
page n’est donc pas une strategie multi-tenant.
Voir aussi : Guide multi-tenant.
Definir le tenant courant
Section intitulée « Definir le tenant courant »<script defer src="https://cdn.pomeloanalytics.com/latest/analytics.js" data-site-id="site_marketplace" onload="window.pomelo?.setTenant({ tenantId: 'tenant_demo_shop', tenantSlug: 'demo-shop', tenantName: 'Demo Shop' })"></script>Sur les pages tenant, remplacez la balise Pomelo standard par la seule balise
avec contexte tenant affichee ici, ou appelez setTenant() depuis le callback
SDK pret de votre framework sur le meme script. Ne chargez pas analytics.js
deux fois. Quand cet appel a lieu pendant le demarrage du SDK, Pomelo applique
le contexte tenant avant de rejouer le premier pageview bufferise.
Le premier pageview de demarrage et les evenements pageview, engagement,
perf.* et error.* suivants heritent alors de ce tenant courant.
Cibler une boutique depuis une page globale
Section intitulée « Cibler une boutique depuis une page globale »window.pomelo?.track('boutique.contact_click', { action_id: 'shop:contact_click', targetTenantId: 'tenant_demo_shop', targetTenantSlug: 'demo-shop', targetTenantName: 'Demo Shop',});Revenir a une page globale
Section intitulée « Revenir a une page globale »window.pomelo?.clearTenant();API publique
Section intitulée « API publique »Lister les boutiques d’un site
Section intitulée « Lister les boutiques d’un site »curl -sS -G "https://api.pomeloanalytics.com/v1/tenants" \ -H "Authorization: Bearer $POMELO_API_TOKEN" \ --data-urlencode "site_id=site_marketplace"Requeter une boutique
Section intitulée « Requeter une boutique »curl -sS -G "https://api.pomeloanalytics.com/v1/metrics/timeseries" \ -H "Authorization: Bearer $POMELO_API_TOKEN" \ --data-urlencode "site_id=site_marketplace" \ --data-urlencode "tenant_id=tenant_demo_shop" \ --data-urlencode "metric=pageviews"Ventiler par boutique
Section intitulée « Ventiler par boutique »curl -sS -G "https://api.pomeloanalytics.com/v1/metrics/breakdown" \ -H "Authorization: Bearer $POMELO_API_TOKEN" \ --data-urlencode "site_id=site_marketplace" \ --data-urlencode "dimension=tenant"Quand dimension=tenant, chaque ligne utilise le tenant_id stable comme
key. La reponse inclut aussi tenant_slug et tenant_name comme labels
d’affichage.
Tokens et securite
Section intitulée « Tokens et securite »Les tokens peuvent etre restreints a :
allowedSiteIdsallowedTenantIds
Quand un token est restreint a des boutiques, passez toujours tenant_id
dans les requetes analytics.