Sur la Canebière, l’actualité de l’OM se déploie comme une histoire en mouvement : matchs serrés, rotations d’effectif et un mercato qui anime les conversations. Les derniers résultats montrent une équipe capable d’arracher des victoires à l’extérieur (0-1 à Auxerre) et de se heurter à l’Europe (défaite 0-1 face à l’Atalanta au Stade Vélodrome). À la veille de la réception du Stade Brestois, l’entraîneur Roberto De Zerbi doit jongler entre forme des joueurs et attentes des supporters. Pendant ce temps, les initiatives commerciales — de la Boutique OM aux partenariats avec Puma, Winamax et Uber Eats — rappellent que l’ombre du club dépasse le seul rectangle vert. Les tribunes vibrent, notamment le virage sud où l’âme de l’OM Nation pulse, et chaque rendez‑vous au Orange Vélodrome devient une page supplémentaire d’une saison qui vise le retour durable en Europe. Ce texte déroule les fils majeurs : calendrier et résultats, stratégie sportive et mercato, puis l’écosystème autour du club — sponsors, fans et boutique — avec des repères concrets, des tableaux et des chiffres pour comprendre où se situe l’Olympique de Marseille en 2025.
⚽ Résultats récents : victoire à Auxerre, revers face à l’Atalanta 🟦
🔁 Rotation d’effectif : retours et surprises dans le groupe contre Brest 🔄
💼 Mercato : priorités identifiées par la direction sportive 🔍
🟦 Identité : Orange Vélodrome, OM Nation et la Boutique OM au cœur du club 🏟️
Le récit des dernières semaines place l’Olympique de Marseille dans une dynamique contrastée. Après un déplacement fructueux à Auxerre (0-1), l’équipe a connu une soirée européenne plus difficile contre l’Atalanta (0-1), un match où les détails ont fait basculer l’issue. La réception du Stade Brestois apparaît comme une opportunité pour retrouver un équilibre avant un calendrier qui s’intensifie avec des déplacements clés à Nice et des rencontres domestiques capitales pour la course au podium.
📅 Points clés du calendrier 📌
🔹 Match à domicile : l’importance du Orange Vélodrome pour inverser les tendances 🔹
🔹 Gestion des compétitions : concilier Ligue 1 et ambitions européennes 🔹
📆 Date
🆚 Adversaire
📍 Lieu
⚽ Résultat
Sam 1
Auxerre
Extérieur
0 – 1 ✅
Mer 5
Atalanta
Orange Vélodrome 🏟️
0 – 1 ❌
Sam 8
Stade Brestois 29
Domicile
À venir ⏳
Ven 21
Nice
Extérieur
À venir ⚠️
La leçon immédiate : maîtriser les phases décisives et optimiser la rotation pour rester compétitif sur tous les tableaux. C’est un défi tactique qui déterminera la trajectoire du club dans les mois à venir.
Forme individuelle et dossiers à suivre
Parmi les dossiers chauds figurent les performances de joueurs cadres et la gestion de la fatigue. Certains éléments du groupe doivent retrouver de la régularité, tandis que d’autres profitent des rotations pour s’affirmer.
🔎 Joueurs en forme : impact offensif à surveiller 🎯
🩺 Suivi médical : prévenir les pépins physiques avant les périodes clés 🩹
📈 Objectif collectif : stabiliser le jeu pour viser la qualification européenne 🏆
🔑 Joueur
📌 Poste
🔥 Tendance
Geoffrey Kondogbia
Milieu
Solide, récupération importante ⚡
Amine Gouiri
Attaquant
Créatif mais irrégulier 🎯
Mason Greenwood
Ailier/Attaque
Pièce offensive majeure 🔥
Insight : la profondeur du groupe déterminera la capacité de l’OM à tenir la saison sur plusieurs tableaux.
OM – mercato, effectif et ambitions sportives
Les coulisses du mercato racontent une ambition claire : renforcer des zones identifiées sans déséquilibrer l’âme de l’équipe. La direction, guidée par la volonté d’un projet durable, a ciblé des profils capables d’apporter immédiateté et potentiel à moyen terme. L’effectif actuel, riche de 27 professionnels, mixe jeunesse et cadres expérimentés.
💡 Priorités de recrutement : un milieu défensif, un latéral droit, et un profil d’attaquant secondaire ⚽
📌 Philosophie : recruter pour la complémentarité plutôt que l’effet d’annonce 🤝
🧭 Suivi : relations étroites entre la cellule recrutement et l’entraîneur pour des choix concertés 🔄
🔢 Numéro
👤 Joueur
📍 Poste
📝 Statut
1
Gerónimo Rulli
Gardien
Titulaire 🇦🇷
6
Amine Harit
Milieu offensif
Créatif
9
Amine Gouiri
Attaquant
Polyvalent
11
Mason Greenwood
Ailier
Décisif
24
Valentin Rongier
Milieu
Leader de vestiaire
Olympique de Marseille — Infographie 2025
Synthèse interactive : effectif, objectifs, mercato, sponsors et stade
Effectif
27 joueurs
Objectif sportif
Objectif principal : qualification Ligue des Champions
Priorités mercato
Ajustez les poids pour visualiser les priorités (total = 100 %) :
Répartition automatique : les curseurs sont normalisés pour garder la somme à 100 %.
Barres de priorité
Orange Vélodrome
Capacité approximative : ~67 000
0%
Nombre estimé de spectateurs : 50 250
Glissez pour simuler taux de remplissage du stade.
Météo (Orange Vélodrome)
Chargement météo…
Source : Open-Meteo (API publique, sans clé)
Sponsors clés
Cliquez sur un sponsor pour plus d’infos
Sélectionnez un sponsor pour afficher des détails.
/* Visuels légers pour les barres de priorité */
.prio-bar {
height: 10px;
border-radius: 999px;
background: linear-gradient(90deg, rgba(14,165,233,0.2), rgba(59,130,246,0.15));
overflow: hidden;
}
.prio-fill {
height: 100%;
border-radius: 999px;
}
/* Sponsor focus */
.sponsor-chip:focus { outline: 3px solid rgba(59,130,246,0.25); }
/*
Infographie OM — JavaScript
– Toutes les chaînes sont en français.
– Interaction : priorités normalisées, jauge de stade, météo via Open-Meteo (API gratuite), export JSON.
– Accessibilité : labels, aria-live pour retours.
*/
/*
API météo utilisée (gratuite, sans clé) :
URL utilisée (Marseille – Orange Vélodrome approximatif) :
https://api.open-meteo.com/v1/forecast?latitude=43.2965&longitude=5.3698¤t_weather=true&timezone=Europe%2FParis
Exemple de réponse JSON (extrait) :
{
“latitude”: 43.2965,
“longitude”: 5.3698,
“generationtime_ms”: 0.123,
“utc_offset_seconds”: 3600,
“timezone”: “Europe/Paris”,
“timezone_abbreviation”: “CET”,
“elevation”: 30.0,
“current_weather”: {
“temperature”: 15.3,
“windspeed”: 5.1,
“winddirection”: 200,
“weathercode”: 3,
“time”: “2025-03-01T12:00”
}
}
*/
(function(){
// Données initiales (modifiables facilement)
const DATA = {
effectif: 27,
objectif: “qualification Ligue des Champions”,
priorities: { md: 50, rd: 30, att: 20 }, // valeurs initiales (seront normalisées)
sponsors: [“Puma”, “Winamax”, “Caisse d’Epargne CEPAC”, “Uber Eats”, “Fanatics”],
stadiumCapacity: 67000
};
// — Références DOM —
const prioMd = document.getElementById(‘prio-md’);
const prioRd = document.getElementById(‘prio-rd’);
const prioAtt = document.getElementById(‘prio-att’);
const prioMdVal = document.getElementById(‘prio-md-val’);
const prioRdVal = document.getElementById(‘prio-rd-val’);
const prioAttVal = document.getElementById(‘prio-att-val’);
const barsContainer = document.getElementById(‘bars-container’);
const attendanceSlider = document.getElementById(‘attendance-slider’);
const attendanceArc = document.getElementById(‘attendance-arc’);
const attendanceText = document.getElementById(‘attendance-text’);
const attendanceNb = document.getElementById(‘attendance-nb’);
const stadiumCapEl = document.getElementById(‘stadium-cap’);
const sponsorsContainer = document.getElementById(‘sponsors’);
const sponsorDetail = document.getElementById(‘sponsor-detail’);
const exportBtn = document.getElementById(‘export-btn’);
const exportResult = document.getElementById(‘export-result’);
const weatherBox = document.getElementById(‘weather-box’);
const refreshWeatherBtn = document.getElementById(‘refresh-weather’);
// — Initialisation affichage statique —
document.getElementById(‘effectif-count’).textContent = DATA.effectif + ” joueurs”;
document.getElementById(‘objectif-text’).textContent = DATA.objectif;
stadiumCapEl.textContent = “~” + DATA.stadiumCapacity.toLocaleString(‘fr-FR’);
// Populate sponsor chips accessible behavior
Array.from(document.querySelectorAll(‘.sponsor-chip’)).forEach(btn => {
btn.addEventListener(‘click’, (e) => {
const name = btn.dataset.name;
// Simuler plus d’infos accessibles
sponsorDetail.innerHTML = `${escapeHtml(name)} — Sponsor clé. Catégorie : partenariat commercial.`;
btn.focus();
});
});
// — Priorities logic —
// Normalize so total == 100; maintain relative proportions except when all zeros.
function normalizeAndUpdate(changed) {
let a = Number(prioMd.value), b = Number(prioRd.value), c = Number(prioAtt.value);
let sum = a + b + c;
if (sum === 0) {
// distribute evenly if all zeros
a = b = c = 33;
sum = 99;
}
// If change triggered by a single input, keep that fixed and scale others proportionally.
if (changed) {
const fixed = changed;
const fixedVal = Number(document.getElementById(‘prio-‘ + fixed).value);
const others = [‘md’,’rd’,’att’].filter(x => x !== fixed);
const otherSum = (fixed===’md’ ? b+c : fixed===’rd’ ? a+c : a+b);
// if otherSum == 0, distribute remaining evenly
let remaining = 100 – fixedVal;
if (remaining {
const val = Number(document.getElementById(‘prio-‘ + key).value);
const scaled = Math.round((val / otherSum) * remaining);
document.getElementById(‘prio-‘ + key).value = scaled;
});
// Fix rounding to sum exactly 100
let s = Number(prioMd.value) + Number(prioRd.value) + Number(prioAtt.value);
if (s !== 100) {
const diff = 100 – s;
// apply diff to one of them (prefer attacker)
const target = ‘prio-att’;
document.getElementById(target).value = Math.max(0, Number(document.getElementById(target).value) + diff);
}
}
} else {
// No specific changed, normalize straightforwardly
const total = a + b + c;
if (total === 0) {
prioMd.value = 34; prioRd.value = 33; prioAtt.value = 33;
} else {
prioMd.value = Math.round((a/total)*100);
prioRd.value = Math.round((b/total)*100);
prioAtt.value = 100 – (Number(prioMd.value) + Number(prioRd.value));
}
}
// Update labels and bars
prioMdVal.textContent = prioMd.value + ‘%’;
prioRdVal.textContent = prioRd.value + ‘%’;
prioAttVal.textContent = prioAtt.value + ‘%’;
renderPriorityBars();
}
function renderPriorityBars() {
const items = [
{ key: ‘MD’, val: Number(prioMd.value), color: [‘#0ea5e9’, ‘#3b82f6’] },
{ key: ‘LD (RD)’, val: Number(prioRd.value), color: [‘#34d399′,’#059669’] },
{ key: ‘Attaque’, val: Number(prioAtt.value), color: [‘#f97316′,’#f59e0b’] }
];
barsContainer.innerHTML = ”;
items.forEach(it => {
const wrapper = document.createElement(‘div’);
wrapper.className = ‘mb-1’;
wrapper.innerHTML = `
${escapeHtml(it.key)}${it.val}%
`;
barsContainer.appendChild(wrapper);
});
}
// Attach listeners for normalization
prioMd.addEventListener(‘input’, () => normalizeAndUpdate(‘md’));
prioRd.addEventListener(‘input’, () => normalizeAndUpdate(‘rd’));
prioAtt.addEventListener(‘input’, () => normalizeAndUpdate(‘att’));
// Initial normalize/render
normalizeAndUpdate(null);
// — Attendance (donut) logic —
function polarToStroke(percent) {
// Convert percent to stroke-dasharray length on circle (circumference approximated with 100 units)
// For our simple SVG path approach we’ll create an arc path based on percent.
const r = 15.9155; // radius used in SVG path definition
const circumference = 2 * Math.PI * r;
const len = (percent / 100) * circumference;
return { len, circumference };
}
function describeArc(percent) {
// Create an SVG path for an arc representing the given percent of circle.
// We’ll approximate by using circle arc formula for a 0..360 sweep.
const sweep = (percent / 100) * 360;
if (sweep = 360) {
// Full circle
return “M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831”;
}
// Convert to radians for endpoint calculation
const startAngle = 0;
const endAngle = startAngle + sweep;
const radius = 15.9155;
const cx = 18, cy = 18;
const start = polarToXY(cx, cy, radius, startAngle);
const end = polarToXY(cx, cy, radius, endAngle);
const largeArcFlag = sweep > 180 ? 1 : 0;
return `M ${start.x} ${start.y} A ${radius} ${radius} 0 ${largeArcFlag} 1 ${end.x} ${end.y}`;
}
function polarToXY(cx, cy, radius, angleDeg) {
const angleRad = (angleDeg – 90) * Math.PI / 180.0;
return {
x: (cx + (radius * Math.cos(angleRad))).toFixed(4),
y: (cy + (radius * Math.sin(angleRad))).toFixed(4)
};
}
function updateAttendanceUI() {
const pct = Number(attendanceSlider.value);
const nb = Math.round((pct/100) * DATA.stadiumCapacity);
attendanceNb.textContent = nb.toLocaleString(‘fr-FR’);
attendanceText.textContent = pct + ‘%’;
// Set arc path
attendanceArc.setAttribute(‘d’, describeArc(pct));
attendanceArc.setAttribute(‘stroke-width’, ‘2.5’);
attendanceArc.setAttribute(‘stroke-linecap’, ’round’);
// Update aria
attendanceArc.setAttribute(‘aria-label’, `Taux remplissage ${pct} pour cent`);
}
attendanceSlider.addEventListener(‘input’, updateAttendanceUI);
// init
attendanceSlider.value = 75;
updateAttendanceUI();
// — Export JSON —
function buildExportJson() {
const priorities = {
“milieu_defensif”: Number(prioMd.value),
“latéral_droit”: Number(prioRd.value),
“attaquant_complémentaire”: Number(prioAtt.value)
};
const payload = {
effectif: DATA.effectif,
objectif: DATA.objectif,
priorites_mercato: priorities,
sponsors: DATA.sponsors,
stade: {
nom: “Orange Vélodrome”,
capacite: DATA.stadiumCapacity,
public_attendu: Math.round((Number(attendanceSlider.value)/100) * DATA.stadiumCapacity)
},
exported_at: new Date().toISOString()
};
return payload;
}
exportBtn.addEventListener(‘click’, async () => {
const payload = buildExportJson();
const text = JSON.stringify(payload, null, 2);
// Copy to clipboard if possible
try {
await navigator.clipboard.writeText(text);
exportResult.textContent = “Configuration copiée dans le presse-papiers (JSON).”;
// Also display a preview
const pre = document.createElement(‘pre’);
pre.style.maxHeight = ‘200px’;
pre.style.overflow = ‘auto’;
pre.className = ‘mt-2 text-xs bg-gray-50 dark:bg-gray-900 p-2 rounded’;
pre.textContent = text;
exportResult.innerHTML = ”;
exportResult.appendChild(pre);
} catch (e) {
exportResult.textContent = “Impossible de copier automatiquement — voici le JSON : ” + text;
}
});
// — Météo via Open-Meteo (API publique, gratuite, sans clé) —
const WEATHER_API = ‘https://api.open-meteo.com/v1/forecast?latitude=43.2965&longitude=5.3698¤t_weather=true&timezone=Europe%2FParis’;
function weatherCodeToText(code) {
// Simple mapping, not exhaustive
const map = {
0: “Ciel dégagé”,
1: “Principalement ensoleillé”,
2: “Partiellement nuageux”,
3: “Couvert”,
45: “Brouillard”,
48: “Brouillard givrant”,
51: “Bruine légère”,
61: “Pluie faible”,
63: “Pluie modérée”,
71: “Faible chute de neige”,
80: “Averses”,
95: “Orage”
};
return map[code] || “Conditions variables”;
}
async function fetchWeather() {
weatherBox.textContent = “Chargement météo…”;
try {
const res = await fetch(WEATHER_API);
if (!res.ok) throw new Error(‘Erreur réseau météo’);
const json = await res.json();
// Structure : see comment at top for example
const cw = json.current_weather;
if (cw) {
const t = cw.temperature;
const w = cw.windspeed;
const code = cw.weathercode;
weatherBox.innerHTML = `${t}°C, ${escapeHtml(weatherCodeToText(code))} — vent ${w} km/h (données Open-Meteo)`;
} else {
weatherBox.textContent = “Données météo non disponibles.”;
}
} catch (err) {
weatherBox.textContent = “Impossible de charger la météo (API gratuite hors-service ou bloquée).”;
console.warn(err);
}
}
// Initial fetch and refresh button
fetchWeather();
refreshWeatherBtn.addEventListener(‘click’, fetchWeather);
// — Utility —
function escapeHtml(str) {
return String(str).replace(/[&”‘]/g, function (m) { return ({ ‘&’:’&’,”:’>’,'”‘:’"’,”‘”:’'’ })[m]; });
}
// Expose minimal debug in window for dev/test if needed
window.__infographieOM = {
DATA, buildExportJson, fetchWeather
};
})(); // IIFE end
Les choix de l’hiver pourront changer la physionomie de l’équipe ; la cohérence du recrutement avec le projet de jeu restera déterminante pour transformer de bonnes intentions en résultats.
Cas pratique : une fenêtre de mercato réussie
Imaginer le parcours d’un jeune latéral recruté en janvier : du temps d’adaptation aux rotations, à l’impact immédiat en fin de saison. Ce cas illustre la nécessité d’un plan d’intégration soigné — entraînements, langue, relation avec les supporters — pour maximiser la valeur sportive d’un transfert.
🏁 Étape 1 : adaptation tactique et physique 🧩
🤝 Étape 2 : accueil par la OM Nation et présence à la Boutique OM pour créer du lien ❤️
📊 Étape 3 : évaluation sur performances puis montée en puissance 📈
Étape
Objectif
Indicateur
Intégration
Adaptation au système De Zerbi
Temps de jeu et notes match ⭐
Impact
Contribuer aux victoires
Assists / buts / interventions décisives 🎯
Insight : un recrutement bien accompagné peut se transformer en catalyseur pour la fin de saison.
OM – stade, supporters, partenariats et image
Le club ne vit pas uniquement des résultats ; il se nourrit d’une communauté vibrante et d’un réseau commercial solide. Le Orange Vélodrome reste le théâtre principal où l’OM Nation façonne l’ambiance. À côté, la Boutique OM et les partenaires officiels — Puma, Winamax, Caisse d’Epargne CEPAC, Uber Eats, Fanatics — construisent la visibilité et les ressources indispensables au projet sportif.
🎟️ Expérience matchday : programmations, animations et accueil des fans 🎉
🛍️ Merchandising : la Boutique OM et Fanatics pour les maillots officiels 👕
Initiatives territoriales et engagement communautaire
Restauration & sponsoring
Uber Eats 🛵
Offres matchday et visibilité commerciale
Merchandising officiel
Fanatics 🧾
Boutique OM en ligne et gestion catalogue
L’interaction entre tribunes, boutique et sponsors est un levier économique autant qu’un élément d’identité : elle nourrit la passion du public et soutient le projet sportif.
Initiatives locales et engagement des supporters
Les groupes historiques — Winners, Commando Ultra ’84, Fanatics, Dodger’s, MTP — continuent de peser sur l’ambiance et la vie du club. L’engagement associatif, comme le Handi Fan Club, illustre une volonté d’inclusion qui enrichit le récit marseillais.
📣 Actions des groupes : tifos, chants et mobilisation avant les grands matchs 🎶
🤲 Projets solidaires : opérations caritatives soutenues par la Caisse d’Epargne CEPAC ❤️
🛒 Commerce : la Boutique OM et Fanatics pour rapprocher supporters et club 🧢
Groupe
Année de création
Particularité
Winners
1987
Couleur orange, virage sud 🔶
Commando Ultra ’84
1984
Le plus ancien des ultras français 🏅
MTP
1994
Virage Depé, identity forte 💪
Insight : le lien entre supporters, partenaires et club reste la clé pour transformer émotion en projet durable.
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”Quel est l’effectif actuel de l’OM en 2025 ?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”L’effectif professionnel compte 27 joueurs, ru00e9partis entre gardiens, du00e9fenseurs, milieux et attaquants, avec des cadres comme Geru00f3nimo Rulli, Mason Greenwood, Amine Gouiri et Geoffrey Kondogbia.”}},{“@type”:”Question”,”name”:”Qui sont les partenaires officiels de l’Olympique de Marseille ?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Parmi les partenaires officiels figurent Puma (u00e9quipementier), Winamax, la Caisse du2019Epargne CEPAC, Uber Eats et Fanatics, ainsi que d’autres acteurs soutenant les activations commerciales et la Boutique OM.”}},{“@type”:”Question”,”name”:”Ou00f9 se joue l’ambiance mythique de l’OM ?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”L’ambiance se cristallise au Orange Vu00e9lodrome, notamment dans les virages ou00f9 l’OM Nation se mobilise : tifos, chants et animations contribuent u00e0 l’identitu00e9 du stade.”}},{“@type”:”Question”,”name”:”Quels sont les prochains rendez-vous importants pour le club ?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”u00c0 court terme, la ru00e9ception du Stade Brestois et le du00e9placement u00e0 Nice sont des u00e9tapes majeures en Championnat. La pu00e9riode suivante inclura des u00e9chu00e9ances europu00e9ennes, selon la qualification.”}}]}
Quel est l’effectif actuel de l’OM en 2025 ?
L’effectif professionnel compte 27 joueurs, répartis entre gardiens, défenseurs, milieux et attaquants, avec des cadres comme Gerónimo Rulli, Mason Greenwood, Amine Gouiri et Geoffrey Kondogbia.
Qui sont les partenaires officiels de l’Olympique de Marseille ?
Parmi les partenaires officiels figurent Puma (équipementier), Winamax, la Caisse d’Epargne CEPAC, Uber Eats et Fanatics, ainsi que d’autres acteurs soutenant les activations commerciales et la Boutique OM.
Où se joue l’ambiance mythique de l’OM ?
L’ambiance se cristallise au Orange Vélodrome, notamment dans les virages où l’OM Nation se mobilise : tifos, chants et animations contribuent à l’identité du stade.
Quels sont les prochains rendez-vous importants pour le club ?
À court terme, la réception du Stade Brestois et le déplacement à Nice sont des étapes majeures en Championnat. La période suivante inclura des échéances européennes, selon la qualification.