Respect de la vie privée

  • iOS
  • watchOS
  • tvOS
 

Avant-propos

Afin de respecter la vie privée des utilisateurs et de suivre les réglementations des différents pays, le tracker met à disposition deux fonctionnalités :

  • Désactivation du suivi de l’utilisateur
  • Hashage de l’identifiant utilisateur
  • Gestion de la sauvegarde des hits hors ligne (si l’option est activée)
 

Désactivation du suivi utilisateur

Si votre application propose un écran permettant à l’utilisateur d’activer ou désactiver son suivi à des fins statistiques, vous pouvez enregistrer cette information via la propriété statique optOut de la classe ATInternet.

Les hits seront tout de même envoyés. Seule la variable idclient permettant le suivi utilisateur aura la valeur « opt-out »

Pour modifier ce comportement, vous pouvez utiliser la clé de configuration sendHitWhenOptOut disponible depuis la version 2.13.0 du Tracker. En passant la valeur à false (true par défaut), vous bloquerez l’envoi de hit dans le cas où l’utilisateur est en « opt-out ».

let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
tracker.setSendHitWhenOptOutEnabled(false, sync: true, completionHandler: nil)
// Tracker is now preventing hit from being sent when the user is in opt-out mode
Tracker* tracker = [ATInternet sharedInstance].defaultTracker;
[tracker.ecommerce setSendHitWhenOptOutEnabled:NO sync:YES completionHandler:nil];
// Tracker is now preventing hit from being sent when the user is in opt-out mode

 

Exemples

  1. Désactivation du suivi utilisateur

    @IBAction func disableTracking(sender: UIButton) {
        // deprecated: Tracker.doNotTrack
        ATInternet.optOut = true
    }
    - (IBAction)disableTracking:(UIButton *)sender {
        // deprecated: Tracker.doNotTrack
        ATInternet.optOut = YES;
    }
  2. Récupération du statut du suivi utilisateur

    override func viewDidLoad() {
        super.viewDidLoad()
        // deprecated: Tracker.doNotTrack
        let optOut = ATInternet.optOut
    }
    - (void)viewDidLoad {
        [super viewDidLoad];
        // deprecated: Tracker.doNotTrack
        BOOL optOut = ATInternet.optOut;
    }
 

Hashage de l’identifiant utilisateur

Le SDK propose d’ajouter automatiquement l’identifiant utilisateur dans vos hits (uuid, idfv). Vous pouvez également ajouter votre propre identifiant utilisateur via la méthode setHashUserIdEnabled du tracker.

Afin d’assurer l’’anonymat d’’un visiteur tout en conservant son identification dans vos analyses, il est possible de faire un hash sur l’identifiant unique (SHA-256). Pour cela, utilisez la méthode setHashUserIdEnabled (ou setConfig) du tracker comme suit :

import UIKit
import Tracker

class ViewController: UIViewController {
    let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        tracker.setHashUserIdEnabled(true, completionHandler: { isSet in
            print("User ID will now be hashed")
        }
    }
}
#import "ViewController.h"
#import "SmartTracker/SmartTracker-Swift.h"

@interface ViewController ()
@property (nonatomic, strong) Tracker *tracker;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self.tracker setHashUserIdEnabled:YES completionHandler:^(BOOL isSet) {
        NSLog(@"hashing enabled")
    }];
}

@end
 

Gestion de la sauvegarde des hits hors ligne

Les hits hors ligne sont sauvés dans le dossier de l’application documentDirectory. Apple permet à ce dossier d’être synchronisé sur iCloud, pour désactiver cette potentielle synchronisation, la classe ATInternet met à disposition un marqueur preventICloudSync.

Si vous le souhaitez, vous pouvez aussi changer le chemin de sauvegarde de vos hits hors ligne via la propriété statique databaseDirectory de la classe ATInternet.

Notez que si ce chemin est incorrect, la base de donnée ne sera pas initialisé et les hits hors ligne seront perdus.

  1. Désactivation de la synchronisation iCloud

        // Before any Tracker usage
        ATInternet.preventICloudSync = true
    
        // Before any Tracker usage
        ATInternet.preventICloudSync = YES;
    
  2. Changement de chemin de sauvegarde des hits hors ligne

        // Before any Tracker usage
        ATInternet.databaseDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).last!
    
        // Before any Tracker usage
        ATInternet.databaseDirectory = [[NSURL alloc] initWithString:[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]];