# Comment configurer les événements

Les **événements** sont utilisés pour suivre diverses actions effectuées par les utilisateurs dans l'application. Les données des événements sont stockées historiquement, créant une chronologie du comportement de l'utilisateur. Toutes les informations contextuelles sur l'événement peuvent être transmises sous la forme d'un ensemble d'attributs et de leurs valeurs.

Une fois correctement collectées, ces données peuvent être utilisées pour :

*   déclencher des messages basés sur le comportement ;
*   modifier le flux de communication avec l'utilisateur au sein d'un Customer Journey en fonction de son comportement ;
*   créer des segments d'utilisateurs qui effectuent une action spécifique dans l'application ;
*   obtenir des informations sur le parcours utilisateur, les métriques d'utilisation et d'autres données statistiques.

## Types d'événements

Il existe deux types d'événements dans Pushwoosh :
- Événements par défaut
- Événements personnalisés

### Événements par défaut
Les événements par défaut sont des interactions de base que les utilisateurs effectuent dans les applications ou les sites web, quel que soit leur secteur d'activité ou leur fonctionnalité. Ces actions clés des utilisateurs constituent le cœur de la communication client et peuvent être exploitées pour n'importe quel produit et client, à n'importe quelle étape du cycle de vie du client.
Les événements par défaut sont disponibles dès l'installation avec les dernières versions du SDK et ne nécessitent aucune configuration supplémentaire, à l'exception de [PW_InAppPurchase](/fr/product/audience-data-and-segmentation/events/default-events#pw_inapppurchase).

En savoir plus sur les [événements par défaut](/fr/product/audience-data-and-segmentation/events/default-events)

### Événements personnalisés
Contrairement aux événements par défaut, qui sont universels pour de nombreuses applications et secteurs, les événements personnalisés sont ceux que vous créez spécifiquement pour votre application. Ces événements suivent des actions spécifiques propres à vos besoins, comme terminer un entraînement ou prolonger un abonnement, et vous aident à comprendre comment les utilisateurs interagissent avec vos fonctionnalités spécifiques.

Les événements personnalisés nécessitent que vous les implémentiez de votre côté.

## Implémentation des événements personnalisés

### 1. Créer des événements et définir des attributs

Tous les événements envoyés par votre application doivent d'abord être créés dans Pushwoosh avec l'ensemble des attributs et leurs types ; sinon, Pushwoosh ne les reconnaîtra pas.

Vous pouvez demander à votre équipe marketing de créer des événements directement dans le [panneau de contrôle Pushwoosh](/fr/product/audience-data-and-segmentation/events#1-create-events-in-pushwoosh-control-panel) ou utiliser la méthode API [createEvent](/fr/developer/api-reference/events#createevent). Cela implique de spécifier le nom de l'événement et toutes les données associées que vous souhaitez suivre.

### 2. Appeler l'API /postEvent

Lorsqu'un événement que vous souhaitez suivre se produit dans votre application, appelez l'API [`/postEvent`](/fr/developer/api-reference/user-centric-api#postevent) pour envoyer cet événement à Pushwoosh.

#### iOS

Appelez le [`postEvent`](/fr/developer/api-reference/user-centric-api#postevent) pour envoyer un événement à Pushwoosh :

<Tabs>
<TabItem label="Swift">
```swift
PWInAppManager.shared().postEvent("eventName", withAttributes: nil)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
[[PushNotificationManager pushManager] postEvent:@“eventName” withAttributes:@{}];
```
</TabItem>
</Tabs>

Pour ajouter des détails sur l'événement (réf. aux attributs), utilisez le paramètre d'attributs comme suit :

<Tabs>
<TabItem label="Swift">
```swift
let attributes: [String : Any] = ["AttributedString" : "someString",
                                  "AttributeInt" : 42,
                                  "AttributeList" : [123, 456, "someString"],
                                  "AttributeBool" : true,
                                  "AttributeDate" : NSDate()]

PWInAppManager.shared().postEvent("eventName", withAttributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
NSDictionary *attributes = @{ 
  @"AttributeString" : @"someString",
  @"AttributeInt" : @(42),
  @"AttributeList" : @[ @(123), @(456), @"someString" ],
  @"AttributeBool" : @YES,
  @"AttributeDate" : [NSDate date] 
};

[[PushNotificationManager pushManager] postEvent:@“eventName” withAttributes:attributes];
```
</TabItem>
</Tabs>

#### Android

Lorsqu'un événement se produit dans votre application Android, suivez les instructions suivantes pour envoyer cet événement à Pushwoosh.

Appelez le [`postEvent`](/fr/developer/api-reference/user-centric-api#postevent) pour envoyer un événement à Pushwoosh :

```java
PushwooshInApp.getInstance().postEvent("eventName");
```

Pour ajouter des détails sur l'événement (réf. aux attributs), utilisez le paramètre d'attributs comme suit :

```java
TagsBundle attributes = new TagsBundle.Builder()
				.putInt("AttributeInt", 17)
				.putString("AttributeString", "str")
				.putDate("AttributeDate", new Date())
				.putBoolean("AttributeBool", true)
				.putList("AttributeList", Arrays.asList("item1", "item2", "item3"))
				.build();

PushwooshInApp.getInstance().postEvent("eventName", attributes);
```

<Aside type="note">
Vous pouvez également envoyer des événements depuis [**In-App Javascript**](/fr/developer/guides/messaging-channels/inapp-with-javascript/).
</Aside>