# Migrer depuis l’ancien SDK mobile

Pour suivre une application mobile sur la nouvelle plateforme, vous pouvez soit installer notre nouveau SDK ([Android](/fr/fonctionnalites/sources/sources-catalog/mobile-app/android.md) et [iOS](/fr/fonctionnalites/sources/sources-catalog/mobile-app/ios.md)) soit utiliser notre [HTTP tracking API](https://community.commandersact.com/platform-x/features/integrations/sources/sources-catalog/http-tracking-api).

## Étapes à suivre pour la migration de SDK v4 vers SDK v5

### Créer votre/vos Mobile Source(s)

Dans le Sources Catalog, créez vos nouvelles Sources.\
`Sources > Overview > Add Source`

<figure><img src="/files/d2d135bb1fea5063562ce445abda127c1ececac4" alt=""><figcaption></figcaption></figure>

À la dernière étape de la configuration de la Source, vous obtiendrez une Source Key, requise pour les méthodes d’initialisation de notre SDK

<figure><img src="/files/903d47d1705832759c60f618bf266c7bf2013d29" alt=""><figcaption></figcaption></figure>

### Remplacer les modules SDK

Nos fichiers SDK ont changé. Vous devez remplacer les anciens. Obtenez nos dernières versions :

Android : <https://github.com/CommandersAct/AndroidV5#latest-available-versions>\
iOS : [https://github.com/CommandersAct/iOSV5#latest-available-versions](https://github.com/CommandersAct/iosV5#latest-available-versions)

{% hint style="info" %}
Certains noms de nos modules ont également évolué, voici leurs correspondances :

TCSDK -> TCServerSide

TCPrivacy -> TCConsent
{% endhint %}

### Modifier les méthodes d’initialisation

La manière d’initialiser notre SDK est désormais différente, vos anciennes méthodes ne seront plus reconnues.

* Vous n’avez plus besoin de container ID, tout se fait sur le même site ID. À la place d’un container ID, vous aurez besoin d’une clé spécifique pour définir la source.
* Vous n’avez plus besoin de mettre une instance TCServerSide dans votre implémentation du Consent.
* Vous devrez peut-être utiliser la classe TCUser pour transmettre les informations pertinentes concernant vos utilisateurs.

{% hint style="info" %}
Il existe un exemple de code que vous pouvez consulter ici :

[https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#example\
https://github.com/CommandersAct/iosV5/tree/master/TCServerSide#example](https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#examplehttps://github.com/CommandersAct/iosV5/tree/master/TCServerSide#example)
{% endhint %}

{% hint style="success" %}
Si votre application mobile utilise nos modules SDK uniquement pour la Privacy, votre migration est terminée à ce stade.

\
Si vous souhaitez bénéficier de tous les avantages du tracking avec des destinations server-side, ou si vous utilisiez des containers server-side v1 pour envoyer des données à vos partenaires, veuillez suivre les étapes suivantes !
{% endhint %}

### Remplacer les appels de container par des events

Avec l’ancienne plateforme, vous aviez l’habitude d’envoyer un appel de container, avec toutes les variables. Ce n’est plus compatible.\
À la place, vous devez envoyer des events avec des propriétés.

Voici un exemple de code pour exécuter un event :

```swift
let event = TCPageViewEvent(type: "product list")
	event?.pageName = "Best sellers"
	serverside?.execute(event)
```

{% hint style="info" %}
Vous pouvez consulter tous les exemples de code des events [ici](https://doc.commandersact.com/developers/tracking/events-reference)\
Pour plus d’informations sur la spécificité des events, veuillez vous référer à [cette page](https://doc.commandersact.com/developers/tracking/about-events/mobile-sdk-event-specificity#fields-details) de notre documentation.
{% endhint %}

Pour la documentation technique sur la manière d’intégrer les events, veuillez consulter notre GitHub :\
<https://github.com/CommandersAct/iOSV5/tree/master/TCServerSide#executing-events>\
<https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#executing-an-event>

### Mettre à niveau votre data layer

La nouvelle plateforme utilise des propriétés standard, nous vous recommandons donc de mettre à niveau le data layer de votre application mobile en utilisant autant que possible nos propriétés standard

### Créer vos destinations

Vous pouvez désormais utiliser notre plateforme pour [créer de nouvelles destinations](https://doc.commandersact.com/features/destinations/add-destination) et envoyer des données à vos partenaires

### Test et validation

Un test et une validation Quality Assurance sont fortement recommandés avant le lancement en production ! Voici quelques références pour vous aider sur ce point :

* Testing => conseils pour tester

  [https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#testing](https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide)

  [https://github.com/CommandersAct/iosV5/tree/master/TCServerSide#testing](https://github.com/CommandersAct/iosV5/tree/master/TCServerSide)
* Debugging => liste des méthodes pour afficher les logs dans votre app\
  [https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#debugging](https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide)\
  [https://github.com/CommandersAct/iosV5/tree/master/TCServerSide#debugging](https://github.com/CommandersAct/iosV5/tree/master/TCServerSide)
* Liste des erreurs courantes

  [https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#common-errors](https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide)

  [https://github.com/CommandersAct/iosV5/tree/master/TCServerSide#common-errors](https://github.com/CommandersAct/iosV5/tree/master/TCServerSide)

{% hint style="success" %}
Votre migration est terminée !

Vous avez peut-être des besoins spécifiques ? N’oubliez pas de consulter la FAQ suivante
{% endhint %}

## FAQ

### Mon data layer doit-il être identique pour mon site web et mon app ?

C’est une bonne pratique !\
Nous recommandons fortement d’avoir le même data layer pour le web et l’application mobile\
Principal avantage : configurer une seule destination pour les deux sources !\
La configuration de votre destination sera reconnue par le web et le mobile

### Comment puis-je obtenir le IDFA/AAID ?

Notre SDK ne collecte plus automatiquement le IDFA/AAID, mais nous proposons une méthode simple pour suivre cette information :

[Android](https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#getting-aaid) `ServerSideInstance.addAdvertisingIDs());`\
[iOS](https://github.com/CommandersAct/iosV5/tree/master/TCServerSide#getting-idfa) `[ServerSideInstance addAdvertisingIDs];`

### Puis-je créer des events personnalisés ?

Oui, c’est possible !

Pour plus d’informations, consultez cette partie de notre documentation :\
[https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#custom-events](https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide)\
[https://github.com/CommandersAct/iosV5/tree/master/TCServerSide#custom-events](https://github.com/CommandersAct/iosV5/tree/master/TCServerSide)

### Puis-je utiliser des paramètres supplémentaires ?

Oui, c’est possible ! Si vous devez envoyer plus de données que les propriétés requises, utilisez simplement la méthode « additional property », comme suit :

[Exemple Android :](https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#customising-events)

```
TCPageViewEvent pageViewEvent = new TCPageViewEvent("Consent");
pageViewEvent.pageName = "Configuration";
pageViewEvent.addAdditionalProperty("currentConsent", "refused");
```

[Exemple iOS :](https://github.com/CommandersAct/iosV5/tree/master/TCServerSide#customising-events)

```
TCPageViewEvent *pageViewEvent = [[TCPageViewEvent alloc] initWithType: @"Consent"];
pageViewEvent.pageName = @"Configuration";
[pageViewEvent addAdditionalProperty: @"currentConsent" withStringValue: @"refused"];
```

### Puis-je ajouter des variables Persisting ?

Oui, c’est possible !

Si vous devez définir une variable persistante, veuillez vous référer à cette doc :\
[https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide#persisting-variables](https://github.com/CommandersAct/AndroidV5/tree/master/TCServerSide)[https://github.com/CommandersAct/iosV5/tree/master/TCServerSide#persisting-variables](https://github.com/CommandersAct/iosV5/tree/master/TCServerSide)

{% hint style="info" %}
Définition d’une variable Persisting : c’est une clé/valeur qui restera identique tant que l’application est ouverte\
(exemple : Google account ID)
{% endhint %}

### Dois-je changer/mettre à jour mon fichier Json ?

Ce n’est pas requis !\
Votre json actuel est toujours valide pour notre nouveau SDK

### Dois-je changer/mettre à jour mes callbacks pour les statistiques de consentement ?

Ce n’est pas requis !\
Votre configuration actuelle est toujours valide pour notre nouveau SDK


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.commandersact.com/fr/premiers-pas/integrating-your-data/migration-guides-to-the-platform-x/migrate-from-old-mobile-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
