emailr_
Tous les articles
usecase·9 min

Email pour le gaming : stratégies d'engagement des joueurs

gamingengagementmodèles

Les plateformes de gaming utilisent l'email pour stimuler l'engagement, célébrer les succès et faire revenir les joueurs. Voici comment concevoir des systèmes d'email pour le gaming efficaces qui améliorent l'expérience des joueurs.

Types d'emails pour le gaming

Les plateformes de gaming envoient :

  • Transactionnels (achats, sécurité du compte)
  • Notifications de succès et mises à jour de progression
  • Notifications sociales (activité des amis)
  • Campagnes de ré‑engagement
  • Annonces d'événements et de mises à jour

Notifications de succès

Célébrations des paliers

interface AchievementEmail {
  player: {
    username: string;
    email: string;
    level: number;
  };
  achievement: {
    name: string;
    description: string;
    rarity: 'common' | 'rare' | 'epic' | 'legendary';
    imageUrl: string;
    unlockedAt: Date;
  };
}


async function sendAchievementEmail(data: AchievementEmail) {
  const rarityColors = {
    common: '#9ca3af',
    rare: '#3b82f6',
    epic: '#8b5cf6',
    legendary: '#f59e0b'
  };

  await sendEmail({
    to: data.player.email,
    subject: `🏆 Achievement Unlocked: ${data.achievement.name}`,
    template: 'achievement-unlocked',
    data: {
      ...data,
      rarityColor: rarityColors[data.achievement.rarity],
      shareUrl: `${baseUrl}/achievements/${data.achievement.id}/share`
    }
  });
}

Mises à jour de progression

// Weekly progress digest
interface ProgressDigest {
  player: Player;
  period: { start: Date; end: Date };
  stats: {
    hoursPlayed: number;
    matchesPlayed: number;
    winRate: number;
    xpEarned: number;
    levelProgress: number;
    achievementsUnlocked: Achievement[];
  };
  comparison: {
    vsLastWeek: {
      hoursPlayed: number;
      winRate: number;
    };
    vsAverage: {
      percentile: number;
    };
  };
}

Notifications sociales

Activité des amis

// Batch friend notifications
async function sendFriendActivityDigest(player: Player) {
  const activities = await getFriendActivities(player.id, {
    since: subHours(new Date(), 24),
    limit: 10
  });

  if (activities.length === 0) return;

  await sendEmail({
    to: player.email,
    subject: `Your friends have been busy!`,
    template: 'friend-activity-digest',
    data: {
      player,
      activities: activities.map(a => ({
        friend: a.friend.username,
        action: formatActivity(a),
        timestamp: a.timestamp
      }))
    }
  });
}

function formatActivity(activity: FriendActivity): string {
  switch (activity.type) {
    case 'achievement':
      return `unlocked "${activity.achievement.name}"`;
    case 'level_up':
      return `reached level ${activity.newLevel}`;
    case 'high_score':
      return `set a new high score in ${activity.game}`;
    default:
      return activity.description;
  }
}

Invitations à des défis

await sendEmail({
  to: challengedPlayer.email,
  subject: `${challenger.username} challenged you!`,
  template: 'challenge-invitation',
  data: {
    challenger: challenger.username,
    game: challenge.game,
    stakes: challenge.stakes,
    expiresAt: challenge.expiresAt,
    acceptUrl: `${baseUrl}/challenges/${challenge.id}/accept`,
    declineUrl: `${baseUrl}/challenges/${challenge.id}/decline`
  }
});

Campagnes de ré‑engagement

Reconquête des joueurs inactifs

const reEngagementSequence = [
  {
    daysInactive: 7,
    template: 'miss-you-7d',
    subject: 'Your squad misses you',
    incentive: null
  },
  {
    daysInactive: 14,
    template: 'miss-you-14d',
    subject: "Here's what you've missed",
    incentive: { type: 'xp_boost', value: '2x XP for 24 hours' }
  },
  {
    daysInactive: 30,
    template: 'miss-you-30d',
    subject: 'A gift is waiting for you',
    incentive: { type: 'item', value: 'Exclusive returning player skin' }
  },
  {
    daysInactive: 60,
    template: 'miss-you-60d',
    subject: 'We want you back',
    incentive: { type: 'currency', value: '500 coins' }
  }
];

async function processLapsedPlayers() {
  for (const step of reEngagementSequence) {
    const players = await getLapsedPlayers(step.daysInactive);
    
    for (const player of players) {
      if (await hasReceivedEmail(player.id, step.template)) continue;
      
      await sendEmail({
        to: player.email,
        subject: step.subject,
        template: step.template,
        data: {
          player,
          incentive: step.incentive,
          lastPlayed: player.lastActiveAt,
          friendsOnline: await getOnlineFriendCount(player.id)
        }
      });
    }
  }
}

Annonces d'événements

interface GameEvent {
  name: string;
  type: 'seasonal' | 'tournament' | 'update' | 'limited';
  startDate: Date;
  endDate: Date;
  rewards: Reward[];
  requirements?: {
    minLevel?: number;
    prerequisite?: string;
  };
}

async function announceEvent(event: GameEvent) {
  // Segment by eligibility
  const eligiblePlayers = await getEligiblePlayers(event.requirements);
  
  for (const player of eligiblePlayers) {
    await sendEmail({
      to: player.email,
      subject: `🎮 ${event.name} starts ${formatDate(event.startDate)}!`,
      template: 'event-announcement',
      data: {
        event,
        player,
        personalizedRewards: getRelevantRewards(event.rewards, player)
      }
    });
  }
}

Emails d'achat et de transaction

Confirmation d'achat dans le jeu

await sendEmail({
  to: player.email,
  subject: `Purchase confirmed: ${item.name}`,
  template: 'purchase-confirmation',
  data: {
    player,
    item: {
      name: item.name,
      type: item.type,
      imageUrl: item.imageUrl
    },
    transaction: {
      id: transaction.id,
      amount: transaction.amount,
      currency: transaction.currency,
      paymentMethod: maskPaymentMethod(transaction.paymentMethod),
      timestamp: transaction.timestamp
    },
    howToUse: getItemUsageInstructions(item.type)
  }
});

Gestion des abonnements

// Battle pass or subscription emails
const subscriptionEmails = {
  'subscription.started': {
    subject: 'Welcome to Premium!',
    template: 'subscription-welcome',
    data: (sub) => ({
      benefits: getPremiumBenefits(),
      exclusiveContent: getExclusiveContent()
    })
  },
  'subscription.renewing': {
    subject: 'Your Premium renews soon',
    template: 'subscription-renewal-reminder',
    data: (sub) => ({
      renewalDate: sub.renewsAt,
      amount: sub.price,
      manageUrl: `${baseUrl}/account/subscription`
    })
  },
  'subscription.expired': {
    subject: 'Your Premium has ended',
    template: 'subscription-expired',
    data: (sub) => ({
      lostBenefits: getPremiumBenefits(),
      resubscribeUrl: `${baseUrl}/premium`,
      specialOffer: getWinBackOffer(sub.player)
    })
  }
};

Préférences de notification pour les joueurs

interface GamerNotificationPrefs {
  // Transactional (can't disable)
  purchases: true;
  accountSecurity: true;
  
  // Engagement (can disable)
  achievements: boolean;
  weeklyProgress: boolean;
  friendActivity: boolean;
  challengeInvites: boolean;
  
  // Marketing (can disable)
  eventAnnouncements: boolean;
  newContent: boolean;
  specialOffers: boolean;
  
  // Timing preferences
  digestFrequency: 'realtime' | 'daily' | 'weekly';
  quietHours: {
    enabled: boolean;
    start: string; // "22:00"
    end: string;   // "08:00"
    timezone: string;
  };
}

Bonnes pratiques pour les emails de gaming

  1. Célébrer les succès - Donnez aux joueurs le sentiment d'accomplissement
  2. Utiliser des visuels du jeu - Inclure des illustrations de personnages et des images d'objets
  3. Créer de l'urgence - Les événements à durée limitée stimulent l'engagement
  4. Respecter les habitudes de jeu - N'envoyez pas d'emails pendant les heures de jeu typiques
  5. Personnaliser le contenu - Faites référence à leur personnage, leur progression, leurs amis
  6. Rendre partageable - Inclure le partage social pour les succès

Les emails de gaming doivent être perçus comme une extension de l'expérience de jeu, pas comme du spam marketing. Concentrez‑vous sur l'amélioration du parcours du joueur et la célébration de sa progression.

e_

Écrit par l'équipe emailr

Nous construisons l'infrastructure email pour les développeurs

Prêt à commencer à envoyer ?

Obtenez votre clé API et envoyez votre premier email en moins de 5 minutes. Aucune carte de crédit requise.