# Intégration de Crashlytics

<Aside type="caution" icon="setting" title="Assistance d'un développeur requise">
 Vous aurez besoin de l'aide de votre équipe de développement pour configurer l'intégration. Veuillez partager ce guide avec eux.
</Aside>

La confiance est quelque chose que vous pouvez construire avec le temps et perdre en un clin d'œil. Une fois que vous avez attiré des personnes dans votre application, vous souhaitez établir une relation à long terme avec elles, et les plantages d'application peuvent devenir un obstacle majeur.

Et si vous aviez la chance de dire « Je suis désolé » d'une manière très personnelle ? Par exemple, vos statistiques montrent que 30 % de vos utilisateurs rencontrent un plantage avec la dernière version, et vous avez juste besoin de leur dire de mettre à jour pour fournir un correctif. Cependant, les 70 % restants pourraient ne pas être ravis d'entendre parler de problèmes potentiels avec l'application qu'ils aiment tant.

C'est là que nous intervenons pour vous aider. L'intégration de Crashlytics et Pushwoosh est très simple. Avec seulement quelques lignes de code, vous pourrez cibler et notifier uniquement les utilisateurs qui ont rencontré un plantage particulier dans l'application, sans avoir à déranger le reste de votre audience.

Voyons comment cela fonctionne.

## Intégration de Crashlytics

Tout d'abord, nous devons fournir un identifiant à [Crashlytics](https://firebase.google.com/docs/crashlytics) qui nous aidera à cibler l'utilisateur plus tard.
Crashlytics fournit la méthode **setUserIdentifier** à cet effet (lien vers [iOS](https://docs.fabric.io/ios/crashlytics/enhanced-reports.html#user-identifiers), lien vers [Android](https://docs.fabric.io/android/crashlytics/enhanced-reports.html#user-information)).

Dans notre cas, nous devons le définir sur le Hardware ID de Pushwoosh. Comme vous le savez peut-être, le Hardware ID de Pushwoosh est _IDFV_ (ou _IDFA_ si vous liez à _AdSupport.framework_) sur iOS et dans la plupart des cas _Android Id_ ou _Serial Number_ sur Android.

Ce code simplifie les choses :

<Tabs>
<TabItem label="Java">
```java
String userId = pushManager.getPushwooshHWID(this);
Crashlytics.setUserIdentifier(userId);
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
NSString * userId = [[PushNotificationManager pushManager] getHWID];
[Crashlytics setUserIdentifier:userId];
```
</TabItem>
</Tabs>

C'est tout ! Vous collectez maintenant les ID utilisateur avec Crashlytics.

## Téléchargement des ID utilisateur depuis les rapports de plantage dans Crashlytics

Veuillez noter que, selon la documentation de Fabric, l'apparition du bouton « Exporter les ID » sur le rapport de détail du plantage dans le tableau de bord de Crashlytics peut prendre jusqu'à 24 heures.

<img src="/integrations-crashlytics-integration-1.webp" alt="Bouton Exporter les ID dans le rapport de détail de plantage de Crashlytics"/>

Cliquer sur le bouton _Export IDs_ téléchargera le fichier _user-data.csv_.
Le fichier a la structure suivante :

```javascript title="user-data.csv"
userId,email,name,mostRecentTimestamp,count
XXXXXXXXXXXXXXXX,test@example.com,John Snow,MAR 03 2016 01:22,1
YYYYYYYYYYYYYYYY,another@example.com,John Snow Jr,MAR 03 2016 01:11,1
```