# Intégration Meta Ads

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

L'intégration [Meta Ads](https://www.facebook.com/business/ads) vous permet de synchroniser les audiences Pushwoosh avec vos comptes publicitaires Meta. Utilisez-la pour cibler ou exclure des utilisateurs dans les campagnes publicitaires et ajouter des publicités payantes comme un autre canal dans votre parcours client.

## Cas d'utilisation

Utilisez cette intégration pour :

* cibler les utilisateurs à forte valeur dans plusieurs canaux pour augmenter les achats ou l'engagement
* recibler les utilisateurs qui sont moins réactifs sur d'autres canaux
* créer des audiences de suppression pour que les clients fidèles ne reçoivent pas de publicités inutiles


## Prérequis
Avant de connecter Meta Ads, assurez-vous que :

* Vous avez le rôle **Admin** dans votre compte Pushwoosh. Consultez [Gérer l'accès et les autorisations des utilisateurs](/fr/product/account-management-and-security/multi-login-accounts/#creating-and-managing-roles-also-known-as-groups) pour savoir comment fonctionnent les rôles et les autorisations.
* Vous avez un [**Facebook Business Manager**](https://www.facebook.com/business/tools/business-manager) configuré pour gérer les actifs Facebook de votre marque, y compris les comptes publicitaires, les pages et les applications.
* Vous avez un [**Compte publicitaire Facebook**](https://www.facebook.com/business/tools/ads-manager) actif lié à votre Business Manager.
* L'administrateur de votre Facebook Business Manager vous a accordé les autorisations **Gérer les campagnes** ou **Gérer les comptes publicitaires** pour les comptes publicitaires que vous prévoyez d'utiliser avec Pushwoosh.
* Vous avez accepté les conditions générales du compte publicitaire pour ces comptes.
* Vous avez accepté les [**Conditions d'utilisation des Audiences personnalisées de Facebook**](https://business.facebook.com/legal/terms/customaudience) pour les comptes publicitaires Facebook que vous prévoyez d'utiliser avec Pushwoosh.

## Configurer Meta Ads dans Pushwoosh

1. Dans Pushwoosh, allez dans **Paramètres** > **Intégrations tierces**.

2. Dans la carte Meta Ads, cliquez sur **Page de connexion**.

<img src="/integrations-meta-ads-integration-1.webp" alt="Page des intégrations tierces avec la carte Meta Ads montrant les liens Configuration, Guide de configuration et Page de connexion"/>

3. Connectez-vous à votre compte Meta, puis cliquez sur **Continuer**.

4. Sélectionnez les comptes publicitaires que vous souhaitez connecter.
<img src="/integrations-meta-ads-integration-6.webp" alt="Écran Meta pour choisir l'option d'accès professionnel pour l'intégration connectée" width="480" />

5. Examinez les autorisations demandées pour l'accès au compte publicitaire et à l'entreprise.

6. Cliquez sur **Enregistrer**. Meta affiche alors une confirmation que votre compte est connecté.

### Examiner l'état de la connexion


Après la configuration, vous serez redirigé vers la page **Meta Ads** dans Pushwoosh.

<img src="/integrations-meta-ads-integration-8.webp" alt="Page Meta Ads de Pushwoosh avec le badge Connecté, le tableau des comptes publicitaires avec la colonne du compte professionnel, les actions de l'en-tête et Comment synchroniser les audiences avec Meta" />

Le tableau des comptes publicitaires liste chaque compte connecté avec :

* **Nom du compte publicitaire**
* **Compte professionnel**
* **ID**

Ouvrez les trois points à la fin d'une ligne et choisissez **Supprimer le compte publicitaire** pour supprimer ce compte publicitaire de la liste dans Pushwoosh.

### Gérer les comptes publicitaires connectés

Sur la page **Meta Ads**, cliquez sur **Gérer les comptes** pour ouvrir la boîte de dialogue. Utilisez le bouton à bascule sur chaque ligne pour inclure ou exclure ce compte publicitaire de l'intégration.
Cliquez sur **Appliquer** pour enregistrer les modifications ou sur **Annuler** pour fermer sans enregistrer.

Pour ajuster la vue de la liste :

* Activez ou désactivez **Afficher uniquement les comptes connectés** pour limiter les lignes qui apparaissent.
* Tapez dans **Rechercher par nom ou ID...** pour trouver des comptes dans la liste.

<img src="/integrations-meta-ads-integration-4.webp" alt="Boîte de dialogue Gérer les comptes publicitaires avec le bouton Afficher uniquement les comptes connectés, la recherche par nom ou ID, les boutons à bascule des lignes avec les badges Connecté ou Déconnecté, Annuler et Appliquer" />



### Mapper les tags du projet aux champs Meta

Le mappage des propriétés utilisateur vous permet d'indiquer à Pushwoosh quels attributs utilisateur Meta doivent mettre à jour quels champs **Nom du Tag** dans votre projet. De cette façon, lorsque les données proviennent de Meta, elles sont enregistrées là où vous vous y attendez.

<Aside type="note">
Pour la synchronisation d'audience, Pushwoosh envoie toujours un identifiant par utilisateur depuis **E-mail**, **Numéro de téléphone** ou **MADID**, en fonction de ce qui existe sur le profil. Configurez le mappage lorsque vous souhaitez que Meta reçoive des attributs utilisateur **supplémentaires** au-delà des identifiants ci-dessus.
</Aside>

1. Sur la page **Meta Ads**, cliquez sur **Mapper les données utilisateur**.

2. Pour chaque **Champ Facebook** dans la colonne de gauche, choisissez un **Nom du Tag** dans votre projet à partir du contrôle de droite.
Mappez uniquement les lignes dont vous avez besoin.

<img src="/integrations-meta-ads-integration-3.webp" alt="Fenêtre modale Mapper les tags du projet aux champs Meta avec les colonnes Champ Facebook et Nom du Tag, case à cocher d'écrasement, Annuler et Enregistrer" width="480" />

<Aside type="note" title="Champs mappés automatiquement">
Pushwoosh mappe ces champs automatiquement. Vous ne les définissez pas dans **Mapper les tags du projet aux champs Meta** :

* **E-mail**
* **Numéro de téléphone**
* **MADID**
</Aside>
3. Cliquez sur **Enregistrer** pour appliquer le mappage ou sur **Annuler** pour fermer sans enregistrer.

## Activer la collecte de MADID dans le SDK

Meta Ads fait correspondre les utilisateurs à l'aide d'identifiants d'appareil (MADID) collectés via le SDK mobile.
Le SDK Pushwoosh ne collecte pas automatiquement les identifiants publicitaires (GAID sur Android, IDFA sur iOS).
Les deux plateformes exigent le consentement explicite de l'utilisateur avant que l'identifiant puisse être lu.
Dans votre application, demandez le consentement de l'utilisateur, lisez l'identifiant lorsque cela est autorisé, et transmettez la valeur au SDK.

<Tabs syncKey="maid-sdk">
<TabItem label="Android">

**1. Ajoutez la dépendance**

```groovy
implementation 'com.google.android.gms:play-services-ads-identifier:...'
```

**2. Déclarez l'autorisation AD_ID (requise pour targetSdk ≥ 33)**

Ajoutez ceci à votre `AndroidManifest.xml` :

```xml
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
```

<Aside type="caution">
Sans cette autorisation sur Android 13+, `AdvertisingIdClient.getAdvertisingIdInfo()` renvoie silencieusement un UUID nul (`00000000-0000-0000-0000-000000000000`). Le SDK Pushwoosh normalise cela en `null`, donc aucun MADID n'est envoyé au serveur et la correspondance d'audience Meta ne fonctionnera pas.
</Aside>

**3. Récupérez le GAID et transmettez-le au SDK**

`getAdvertisingIdInfo` doit être appelé sur un thread d'arrière-plan :

```java

String gaid = AdvertisingIdClient.getAdvertisingIdInfo(context).getId();

Pushwoosh.getInstance().setAdvertisingId(gaid);

```

Pour effacer la valeur stockée sur le backend, passez `null` ou une chaîne vide :

```java
Pushwoosh.getInstance().setAdvertisingId(null);
```

**Notes de comportement :**

- Si la valeur n'a pas changé depuis le dernier appel réussi, aucune requête réseau n'est effectuée.
- Si la requête réseau échoue, réessayez au prochain lancement de l'application.
- L'appel est ignoré lorsque `Pushwoosh.stopCommunication()` est actif.
- L'UUID nul (`00000000-0000-0000-0000-000000000000`) est traité de la même manière que `null` — le MADID stocké est effacé sur le backend.

</TabItem>
<TabItem label="iOS">

**1. Ajoutez la description de l'utilisation à `Info.plist`**

Apple exige cette clé avant d'afficher la boîte de dialogue d'autorisation ATT :

```xml
<key>NSUserTrackingUsageDescription</key>
<string>Nous utilisons votre identifiant publicitaire pour vous montrer des publicités pertinentes.</string>
```

**2. Déclarez le domaine de suivi dans votre manifeste de confidentialité**

Si votre application utilise l'IDFA pour le suivi, Apple exige que vous listiez les domaines qui reçoivent les données de suivi dans votre [manifeste de confidentialité](https://developer.apple.com/documentation/bundleresources/privacy-manifest-files) (`PrivacyInfo.xcprivacy`). Consultez [TN3182](https://developer.apple.com/documentation/technotes/tn3182-adding-privacy-tracking-keys-to-your-privacy-manifest) pour les exigences complètes.

Définissez `NSPrivacyTracking` sur `true` et ajoutez le domaine de suivi Pushwoosh à `NSPrivacyTrackingDomains` :

```xml
<key>NSPrivacyTracking</key>
<true/>
<key>NSPrivacyTrackingDomains</key>
<array>
    <string>tracking.svc-nue.pushwoosh.com</string>
</array>
```

<Aside type="note">
Si l'utilisateur n'a pas accordé l'autorisation ATT, iOS bloque les requêtes réseau vers tous les domaines listés dans `NSPrivacyTrackingDomains`. Le MADID ne sera pas envoyé, peu importe ce que fait votre code.
</Aside>

**3. Demandez l'autorisation de suivi et transmettez l'IDFA au SDK**

`ATTrackingManager` nécessite iOS 14 ou une version ultérieure. Si votre cible de déploiement est inférieure à iOS 14, enveloppez l'appel dans une vérification de disponibilité.

Le SDK Pushwoosh n'appelle pas `ATTrackingManager`. Demandez l'autorisation de suivi dans votre application, puis transmettez le résultat au SDK :

```swift
import AppTrackingTransparency
import AdSupport

if #available(iOS 14, *) {
    ATTrackingManager.requestTrackingAuthorization { status in
        let idfa = status == .authorized
            ? ASIdentifierManager.shared().advertisingIdentifier.uuidString
            : nil
        Pushwoosh.configure.setAdvertisingId(idfa)
    }
}
```


Pour effacer la valeur stockée sur le backend, passez `nil` ou une chaîne vide :

```swift
Pushwoosh.configure.setAdvertisingId(nil)
```

**Notes de comportement :**

- Si la valeur n'a pas changé depuis le dernier appel réussi, aucune requête réseau n'est effectuée.
- Si la requête réseau échoue, appelez à nouveau `setAdvertisingId` au prochain lancement de l'application.
- L'appel est ignoré lorsque `Pushwoosh_ALLOW_SERVER_COMMUNICATION` est désactivé.
- L'UUID nul (`00000000-0000-0000-0000-000000000000`) est traité de la même manière que `nil` ou une chaîne vide — le MADID stocké est effacé sur le backend.

> Appelez `requestTrackingAuthorization` depuis le flux principal de l'interface utilisateur de votre application. Apple recommande de le faire après avoir affiché votre propre écran explicatif, pas immédiatement au lancement.

</TabItem>
</Tabs>

### Comment ça marche

Une fois que vous appelez `setAdvertisingId`, le SDK envoie la valeur au point de terminaison de suivi de Pushwoosh en tant que champ `madid` avec le code de l'application et l'ID matériel de l'appareil. Pushwoosh utilise cet identifiant pour faire correspondre vos enregistrements d'appareils avec les audiences Meta Ads pour la synchronisation.


## Synchroniser les audiences dans les parcours

Le point **Synchronisation d'audience** dans le **Journey Builder** lie votre parcours à une Audience personnalisée Meta. Chaque fois qu'un utilisateur atteint ce point, Pushwoosh demande à Meta de l'ajouter à l'audience ou de l'en retirer.

Par exemple, vous pouvez utiliser cela pour cesser de montrer une publicité de webinaire aux utilisateurs qui se sont déjà inscrits, afin de ne pas gaspiller de budget publicitaire sur des personnes qui n'ont plus besoin de la voir.

Pour configurer la synchronisation d'audience :

1. Ouvrez le [**Journey Builder**](/fr/product/customer-journey/pushwoosh-journey-overview/).

2. Ajoutez une [**Entrée basée sur l'audience**](/fr/product/customer-journey/journey-elements/entry-elements/audience-based-entry/). Dans **Source de l'audience**, choisissez un segment ou une liste Pushwoosh qui définit qui entre dans ce parcours. Par exemple, un segment **Utilisateurs avec le tag `webinar_registered` défini sur `true`**. Seuls ces utilisateurs avanceront dans le parcours et atteindront la **Synchronisation d'audience**.

3. Ajoutez le point **Synchronisation d'audience**.

4. Sous **Comment synchroniser les informations des utilisateurs avec l'audience Meta**, choisissez une option :
   * **Ajouter des utilisateurs à l'audience**. Ajoute chaque utilisateur qui atteint cette étape à l'audience Meta que vous sélectionnez. Par exemple, utilisez ceci pour commencer à montrer une publicité aux utilisateurs qui se sont inscrits mais n'ont pas encore participé.
   * **Supprimer des utilisateurs de l'audience**. Supprime chaque utilisateur qui atteint cette étape de cette audience Meta. Dans cet exemple, sélectionnez cette option pour cesser de montrer la publicité du webinaire aux utilisateurs qui se sont déjà inscrits.

5. Dans **Compte Meta Ads**, sélectionnez le compte publicitaire connecté.

6. Dans **Audience**, sélectionnez l'audience Meta, par exemple **Webinaire**.

<img src="/integrations-meta-ads-integration-10.webp" alt="Panneau de synchronisation d'audience avec le menu déroulant Audience et l'Audience personnalisée Meta sélectionnée" />

7. Cliquez sur **Appliquer** pour enregistrer le point ou sur **Annuler** pour fermer sans enregistrer.

8. Terminez la configuration du parcours, puis lancez-le.

<img src="/integrations-meta-ads-integration-9.webp" alt="Panneau de synchronisation d'audience avec le nom de l'étape, ajouter ou supprimer des utilisateurs, compte Meta Ads, Audience, Appliquer et Annuler" />

Lorsque ces utilisateurs atteignent la **Synchronisation d'audience**, ils sont retirés de l'audience **Webinaire** dans Meta, de sorte qu'ils ne voient plus la publicité du webinaire là-bas.

## Comportement et gestion des erreurs

Le traitement du parcours dépend de la disponibilité du compte et de l'audience Meta :

* Meta met à jour l'audience uniquement lorsqu'il peut faire correspondre l'utilisateur à partir des données fournies par Pushwoosh. Si Meta ne peut pas faire correspondre l'utilisateur, l'audience ne change pas pour cet utilisateur, et il continue dans le parcours.
* Si un profil atteint le point **Synchronisation d'audience** alors que le compte publicitaire connecté est déconnecté, le parcours s'arrête pour ce profil et Pushwoosh envoie des notifications système et par e-mail.
* Si une audience sélectionnée n'est pas trouvée dans Meta et que l'API renvoie une erreur, le parcours s'arrête pour ce profil et Pushwoosh envoie des notifications système et par e-mail.

## Statistiques de synchronisation d'audience
Après le lancement, ouvrez les statistiques de l'étape **Synchronisation d'audience** pour voir le volume d'entrées, les ajouts et les suppressions, et les profils ignorés. Pour plus de détails sur les métriques, consultez [**Synchronisation d'audience**](/fr/product/statistics-and-analytics/journey-statistics/journey-element-statistics/#audience-sync) dans les **Statistiques du parcours client**.

<img src="/integrations-meta-ads-integration-11.webp" alt="Statistiques de synchronisation d'audience avec Entrées totales, Ajoutés à l'audience Meta, Supprimés de l'audience Meta, Ignorés non synchronisés passe à l'étape suivante, Exporter les utilisateurs et Compte Meta Ads pour la synchronisation" />