code: public void setCustomTrackingParameter(String key, Object value){
          if (key == null){
              throw new NullPointerException("Key cannot be null.");
          }
          if (value == null){
              customTrackingParameters.remove(key);
          }
          else{
              List l = new ArrayList();
              l.add(value);
              customTrackingParameters.put(key, l);
          }
      }
docs: Set a custom tracking parameter whose toString() value will be sent to
  the Piwik server.  These parameters are stored separately from named Piwik
  parameters, meaning it is not possible to overwrite or clear named Piwik
  parameters with this method.  A custom parameter that has the same name
  as a named Piwik parameter will be sent in addition to that named parameter.
  @param key the parameter's key.  Cannot be null
  @param value the parameter's value.  Removes the parameter if null