function seasonalAdjustments() {
  // Configuration des saisons et ajustements
  var SEASONS = {
    WINTER: {
      startMonth: 12,
      endMonth: 2,
      adjustment: -10,
      keywords: ['hiver', 'ski', 'neige']
    },
    SPRING: {
      startMonth: 3,
      endMonth: 5,
      adjustment: 15,
      keywords: ['printemps', 'jardin', 'pâques']
    },
    SUMMER: {
      startMonth: 6,
      endMonth: 8,
      adjustment: 20,
      keywords: ['été', 'plage', 'vacances']
    },
    AUTUMN: {
      startMonth: 9,
      endMonth: 11,
      adjustment: 5,
      keywords: ['automne', 'rentrée', 'halloween']
    }
  };

  // Obtenir la date actuelle
  var currentDate = new Date();
  var currentMonth = currentDate.getMonth() + 1; // getMonth() retourne 0-11

  // Identifier la saison actuelle
  var currentSeason = null;
  for (var season in SEASONS) {
    if (isInSeason(currentMonth, SEASONS[season])) {
      currentSeason = SEASONS[season];
      break;
    }
  }

  // Si aucune saison trouvée, retourner
  if (!currentSeason) return;

  // Récupérer les campagnes actives
  var campaigns = AdsApp.campaigns()
    .withCondition('Status = ENABLED')
    .get();

  while (campaigns.hasNext()) {
    var campaign = campaigns.next();
    var campaignName = campaign.getName().toLowerCase();
    
    // Vérifier si la campagne contient des mots-clés saisonniers
    var isSeasonalCampaign = currentSeason.keywords.some(function(keyword) {
      return campaignName.indexOf(keyword.toLowerCase()) !== -1;
    });

    // Appliquer l'ajustement
    if (isSeasonalCampaign) {
      try {
        var currentBidModifier = 1 + (currentSeason.adjustment / 100);
        campaign.setBidModifier(currentBidModifier);
        
        Logger.log('Ajustement saisonnier appliqué : ' +
                  'Campagne = ' + campaign.getName() +
                  ', Saison = ' + season +
                  ', Ajustement = ' + currentSeason.adjustment + '%');
      } catch (e) {
        Logger.log('Erreur lors de l\'ajustement de la campagne ' + 
                  campaign.getName() + ': ' + e);
      }
    }
  }
}

// Fonction utilitaire pour vérifier si un mois est dans une saison
function isInSeason(month, season) {
  if (season.startMonth <= season.endMonth) {
    return month >= season.startMonth && month <= season.endMonth;
  } else {
    // Pour l'hiver qui chevauche la nouvelle année
    return month >= season.startMonth || month <= season.endMonth;
  }
}

// Exemple d'utilisation dans votre script principal
function main() {
  try {
    seasonalAdjustments();
  } catch (e) {
    Logger.log('Erreur dans l\'exécution des ajustements saisonniers : ' + e);
  }
}

Cette fonction : 
	1.	Définit les saisons avec : 
	◦	Mois de début et de fin 
	◦	Pourcentage d'ajustement 
	◦	Mots-clés associés 
	2.	Identifie la saison actuelle basée sur la date  
	3.	Ajuste les enchères pour les campagnes contenant des mots-clés saisonniers 
Pour l'utiliser : 
	1.	Intégrez cette fonction dans votre script existant 
	2.	Personnalisez les saisons et ajustements selon vos besoins 
	3.	Modifiez les mots-clés selon votre activité 
Vous pouvez facilement modifier : 
	•	Les périodes saisonnières 
	•	Les pourcentages d'ajustement 
	•	Les mots-clés déclencheurs 
	•	La logique d'application des ajustements 
Par exemple, pour ajouter une période spéciale : 
var SEASONS = {
  // ... autres saisons ...
  SALES: {
    startMonth: 7,
    endMonth: 7,
    adjustment: 30,
    keywords: ['soldes', 'promotion', 'réduction']
  }
};