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’une AsyncTask 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.

Pour marquer ces types de fonctionnement, vous devez initialiser un nouveau tracker au sein de votre classe dans le cas d’un Service.

Dans le cas d’une AsyncTask, 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 de l’AsyncTask.

 

Exemples de marquage

  1. Marquage d’un service
    public class DemoService extends IntentService {
    
        private Tracker tracker;
    
        public DemoService(String name) {
            super(name);
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
            tracker = ATInternet.getInstance().getTracker("serviceTracker");
            tracker.Context().setBackgroundMode(Context.BackgroundMode.Task);
        }
    
        @Override
        protected void onHandleIntent(Intent intent) {
    
            // Do the work associated with the service
    
            tracker.Gestures().add("intent received").sendDownload();
        }
    }
  2. Marquage d’une AsyncTask avec un tracker dédié
    new AsyncTask<String, String, String>() {
                Tracker tracker = ATInternet.getInstance().getTracker("asyncTaskTracker");
    
                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                    tracker.Context().setBackgroundMode(Context.BackgroundMode.Task);
                }
    
                @Override
                protected String doInBackground(String... params) {
                    tracker.Gestures().add("async task").sendDownload();
                    return null;
                }
    }.execute();
  3. Marquage d’une AsyncTask avec un tracker global
    new AsyncTask<String, String, String>() {
                Tracker tracker = ATInternet.getInstance().getDefaultTracker();
    
                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                    tracker.Context().setBackgroundMode(Context.BackgroundMode.Task);
                }
    
                @Override
                protected String doInBackground(String... params) {
                    tracker.Gestures().add("async task").sendDownload();
                    return null;
                }
    
                @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);
                    tracker.Context().setBackgroundMode(Context.BackgroundMode.Normal);
                }
            }.execute();
    }
Dernière mise à jour : 05/04/2018