# Integração com o Crashlytics

<Aside type="caution" icon="setting" title="É necessária a ajuda do desenvolvedor">
 Você precisará da ajuda da sua equipe de desenvolvimento para configurar a integração. Por favor, compartilhe este guia com eles.
</Aside>

A confiança é algo que você pode construir ao longo do tempo e perder em um piscar de olhos. Depois de atrair as pessoas para o seu aplicativo, você deseja ter um relacionamento de longo prazo com elas, e as falhas do aplicativo podem se tornar um fator decisivo.

E se você tivesse a chance de dizer "Sinto muito" de uma forma muito pessoal? Por exemplo, suas estatísticas mostram que 30% dos seus usuários estão enfrentando uma falha com a versão mais recente, e você só precisa dizer a eles para atualizarem para entregar uma correção. No entanto, os outros 70% podem não ficar felizes em ouvir sobre possíveis problemas com o aplicativo que tanto amam.

É aqui que entramos para ajudar. A integração do Crashlytics com o Pushwoosh é muito simples. Com apenas algumas linhas de código, você poderá segmentar e notificar apenas os usuários que enfrentaram uma falha específica no aplicativo, sem precisar incomodar o resto do seu público.

Vamos ver como funciona.

## Integrando o Crashlytics

Primeiramente, temos que fornecer algum identificador ao [Crashlytics](https://firebase.google.com/docs/crashlytics) que nos ajudará a segmentar o usuário mais tarde.
O Crashlytics fornece o método **setUserIdentifier** para esse fim (link para [iOS](https://docs.fabric.io/ios/crashlytics/enhanced-reports.html#user-identifiers), link para [Android](https://docs.fabric.io/android/crashlytics/enhanced-reports.html#user-information)).

No nosso caso, precisamos defini-lo como o Hardware ID do Pushwoosh. Como você deve saber, o Hardware ID do Pushwoosh é _IDFV_ (ou _IDFA_ se você vincular ao _AdSupport.framework_) no iOS e, na maioria dos casos, _Android Id_ ou _Serial Number_ no Android.

Este código simplifica o processo:

<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>

É isso! Agora você está coletando IDs de usuário com o Crashlytics.

## Baixando IDs de usuário dos relatórios de falhas no Crashlytics

Observe que pode levar até 24 horas, de acordo com a documentação do Fabric, para que o botão "Export IDs" apareça no relatório de detalhes da falha no painel do Crashlytics.

<img src="/integrations-crashlytics-integration-1.webp" alt="Botão Export IDs no relatório de detalhes da falha do Crashlytics"/>

Clicar no botão _Export IDs_ fará o download do arquivo _user-data.csv_.
O arquivo tem a seguinte estrutura:

```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
```