コード例 #1
0
  /** Add identified visitor infos */
  void setIdentifiedVisitorInfos() {
    if (Boolean.parseBoolean(
        String.valueOf(
            tracker.getConfiguration().get(TrackerConfigurationKeys.PERSIST_IDENTIFIED_VISITOR)))) {
      ParamOption beforeStcPosition =
          new ParamOption()
              .setRelativePosition(ParamOption.RelativePosition.before)
              .setRelativeParameterKey(Hit.HitParam.JSON.stringValue());

      ParamOption beforeStcPositionWithEncoding =
          new ParamOption()
              .setRelativePosition(ParamOption.RelativePosition.before)
              .setRelativeParameterKey(Hit.HitParam.JSON.stringValue())
              .setEncode(true);

      String visitorNumericID =
          Tracker.getPreferences().getString(IdentifiedVisitor.VISITOR_NUMERIC, null);
      String visitorCategory =
          Tracker.getPreferences().getString(IdentifiedVisitor.VISITOR_CATEGORY, null);
      String visitorTextID =
          Tracker.getPreferences().getString(IdentifiedVisitor.VISITOR_TEXT, null);
      if (visitorNumericID != null) {
        tracker.setParam(
            Hit.HitParam.VisitorIdentifierNumeric.stringValue(),
            visitorNumericID,
            beforeStcPosition);
      }
      if (visitorTextID != null) {
        tracker.setParam(
            Hit.HitParam.VisitorIdentifierText.stringValue(),
            visitorTextID,
            beforeStcPositionWithEncoding);
      }
      if (visitorCategory != null) {
        tracker.setParam(
            Hit.HitParam.VisitorCategory.stringValue(), visitorCategory, beforeStcPosition);
      }
    }
  }
コード例 #2
0
  public void dispatch(BusinessObject... businessObjects) {
    ArrayList<BusinessObject> trackerObjects;
    for (BusinessObject businessObject : businessObjects) {
      businessObject.setEvent();

      if (businessObject instanceof AbstractScreen) {
        trackerObjects =
            new ArrayList<BusinessObject>() {
              {
                addAll(tracker.getBusinessObjects().values());
              }
            };

        boolean hasOrder = false;

        for (BusinessObject object : trackerObjects) {
          if (((object instanceof OnAppAd && ((OnAppAd) object).getAction() == OnAppAd.Action.View)
                  || object instanceof Order
                  || object instanceof InternalSearch
                  || object instanceof ScreenInfo)
              && object.getTimestamp() < businessObject.getTimestamp()) {

            if (object instanceof Order) {
              hasOrder = true;
            }

            object.setEvent();
            tracker.getBusinessObjects().remove(object.getId());
          }
        }

        if (tracker.Cart().getCartId() != null
            && (((Screen) businessObject).isBasketScreen() || hasOrder)) {
          tracker.Cart().setEvent();
        }
      } else if (businessObject instanceof Gesture) {
        trackerObjects =
            new ArrayList<BusinessObject>() {
              {
                addAll(tracker.getBusinessObjects().values());
              }
            };

        if (((Gesture) businessObject).getAction() == Gesture.Action.InternalSearch) {
          for (BusinessObject object : trackerObjects) {
            if ((object instanceof InternalSearch)
                && object.getTimestamp() < businessObject.getTimestamp()) {
              object.setEvent();
              tracker.getBusinessObjects().remove(object.getId());
            }
          }
        }
      }

      tracker.getBusinessObjects().remove(businessObject.getId());
      trackerObjects =
          new ArrayList<BusinessObject>() {
            {
              addAll(tracker.getBusinessObjects().values());
            }
          };

      for (BusinessObject object : trackerObjects) {
        if ((object instanceof CustomObject || object instanceof NuggAd)
            && object.getTimestamp() < businessObject.getTimestamp()) {
          object.setEvent();
          tracker.getBusinessObjects().remove(object.getId());
        }
      }
    }

    if (Hit.getHitType(
            tracker.getBuffer().getVolatileParams(), tracker.getBuffer().getPersistentParams())
        == Hit.HitType.Screen) {
      TechnicalContext.screenName =
          Tool.appendParameterValues(
              Hit.HitParam.Screen.stringValue(),
              tracker.getBuffer().getVolatileParams(),
              tracker.getBuffer().getPersistentParams());
      CrashDetectionHandler.setCrashLastScreen(TechnicalContext.screenName);

      String level2 =
          Tool.appendParameterValues(
              Hit.HitParam.Level2.stringValue(),
              tracker.getBuffer().getVolatileParams(),
              tracker.getBuffer().getPersistentParams());
      TechnicalContext.level2 = (!TextUtils.isEmpty(level2)) ? Integer.parseInt(level2) : 0;

      SharedPreferences preferences = Tracker.getPreferences();
      if (!preferences.getBoolean(TrackerConfigurationKeys.CAMPAIGN_ADDED_KEY, false)) {
        String xtor =
            preferences.getString(TrackerConfigurationKeys.MARKETING_CAMPAIGN_SAVED, null);
        if (xtor != null) {
          ParamOption beforeStcPositionWithEncoding =
              new ParamOption()
                  .setRelativePosition(ParamOption.RelativePosition.before)
                  .setRelativeParameterKey(Hit.HitParam.JSON.stringValue())
                  .setEncode(true);

          if (preferences.getBoolean(
              TrackerConfigurationKeys.IS_FIRST_AFTER_INSTALL_HIT_KEY, true)) {
            tracker.setParam(
                Hit.HitParam.Source.stringValue(), xtor, beforeStcPositionWithEncoding);
            preferences
                .edit()
                .putBoolean(TrackerConfigurationKeys.IS_FIRST_AFTER_INSTALL_HIT_KEY, false)
                .apply();
          } else {
            tracker.setParam(
                Hit.HitParam.RemanentSource.stringValue(), xtor, beforeStcPositionWithEncoding);
          }
          preferences.edit().putBoolean(TrackerConfigurationKeys.CAMPAIGN_ADDED_KEY, true).apply();
        }
      }
    }

    setIdentifiedVisitorInfos();

    ParamOption appendWithEncoding = new ParamOption().setAppend(true).setEncode(true);
    tracker.setParam(
        Hit.HitParam.JSON.stringValue(),
        LifeCycle.getMetrics(Tracker.getPreferences()),
        appendWithEncoding);
    if ((Boolean) tracker.getConfiguration().get(TrackerConfigurationKeys.ENABLE_CRASH_DETECTION)) {
      tracker.setParam(
          Hit.HitParam.JSON.stringValue(),
          CrashDetectionHandler.getCrashInformation(),
          appendWithEncoding);
    }

    String referrer = Tracker.getPreferences().getString(TrackerConfigurationKeys.REFERRER, null);
    if (!TextUtils.isEmpty(referrer)) {
      tracker.setParam(Hit.HitParam.Refstore.stringValue(), referrer);
      Tracker.getPreferences().edit().putString(TrackerConfigurationKeys.REFERRER, null).apply();
    }

    Builder builder = new Builder(tracker);
    tracker.getBuffer().getVolatileParams().clear();
    TrackerQueue.getInstance().put(builder);

    tracker.Context().setLevel2(tracker.Context().getLevel2());
  }