Envoi des hits en arrière-plan

 

Intérêt de l’identification

L’identification vous permet de distinguer les hits envoyés suite à l’utilisation directe de votre application, des hits envoyés automatiquement et indépendamment de l’utilisateur en arrière-plan, à l’aide d’un BackgroundWorker par exemple.

 

Marquage

Le tracker possède un objet Context qui possède une propriété BackgroundMode. C’est une énumération de type BackgroundMode.

Par défaut, cette propriété est positionnée à Normal. Dans tous les cas de marquage d’un comportement automatique et indépendant de l’utilisateur, il faut la positionner à Task.

Dans le cas d’une BackgroundWorker, il est recommandé d’utiliser une instance de tracker dédiée. Si vous souhaitez utiliser une seule instance de tracker, il faut alors penser à repositionner la propriété à Normal à la fin de l’exécution du BackgroundWorker.

 

Exemples de marquage

  1. Marquage d’un BackgroundWorker avec un tracker dédié
    private void bw_DoWork(object sender, DoWorkEventArgs e)
    {
         Tracker bgTracker = SmartTag.Instance.Tracker("backgroundTracker");
         bgTracker.Context.BackgroundMode = BackgroundMode.Task;
         bgTracker.Gestures.Add("async_download").SendDownload();
         // ...
    }
    
    public void BackgroundTask ()
    {
         BackgroundWorker bw = new BackgroundWorker();
         bw.DoWork += new DoWorkEventHandler(bw_DoWork);
         bw.RunWorkerAsync();
    }
    
  2. Marquage d’un BackgroundWorker avec un tracker global
    private void bw_DoWork(object sender, DoWorkEventArgs e)
    {
         tracker = SmartTag.Instance.defaultTracker;
         tracker.Context.BackgroundMode = BackgroundMode.Task;
         tracker.Gestures.Add("async_download").SendDownload();
         // ...
    }
    
    private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
         bgTracker.Context.BackgroundMode = BackgroundMode.Normal;
    }
    
    public void BackgroundTask ()
    {
         BackgroundWorker bw = new BackgroundWorker();
         bw.DoWork += new DoWorkEventHandler(bw_DoWork);
         bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
         bw.RunWorkerAsync();
    }
    
 

Cet article vous a-t-il été utile ?

Dernière mise à jour : 29/10/2015