> For the complete documentation index, see [llms.txt](https://doc.commandersact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.commandersact.com/fr/premiers-pas/integrating-your-data/migration-guides-to-the-platform-x/migrate-from-old-mobile-sdk.md).

# Migrer depuis l'ancien SDK mobile

Pour suivre l’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)) ou utiliser notre [API de suivi HTTP](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éez votre/vos Source(s) Mobile

Dans le Catalogue des Sources, créez vos nouvelles Sources.\
`Sources > Vue d’ensemble > Ajouter une 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, nécessaire pour les méthodes d’initialisation de notre SDK

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

### Remplacer les modules SDK

Les fichiers de notre 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 du container ID, tout repose 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 d’ajouter une instance TCServerSide dans votre implémentation Consent.
* Vous pourriez avoir besoin d’utiliser la classe TCUser pour transmettre les informations pertinentes concernant vos utilisateurs.

{% hint style="info" %}
Voici 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 uniquement nos modules SDK pour la Privacy, votre migration est terminée à ce stade.

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

### Remplacer les appels de conteneur par des événements

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

Voici un exemple de code montrant comment exécuter un événement :

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

{% hint style="info" %}
Vous pouvez consulter tous les exemples de code des événements [ici](https://doc.commandersact.com/developers/tracking/events-reference)\
Pour plus d’informations sur la spécificité des événements, 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 l’intégration des événements, veuillez visiter 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 faire évoluer le data layer de votre application mobile en utilisant nos propriétés standard autant que possible

### Créez 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 d’assurance qualité sont fortement recommandés avant le lancement en production ! Voici quelques références pour vous aider sur ce point :

* Tests => 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)
* Débogage => liste des méthodes pour afficher les logs dans votre application\
  [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 !

Peut-être avez-vous 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 application ?

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

### Comment puis-je obtenir l’IDFA/AAID ?

Notre SDK ne collecte plus automatiquement l’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 événements 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 seules 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 persistantes ?

Oui, c’est possible !

Si vous devez définir une variable persistante, veuillez consulter cette documentation :\
[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 persistante : c’est une clé/valeur qui restera identique tant que l’application est ouverte\
(exemple : ID de compte Google)
{% endhint %}

### Dois-je modifier/mettre à jour mon fichier JSON ?

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

### Dois-je modifier/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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` 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>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
