code: public static synchronized void engage(Context context, String event, Map<String, Object> customData) {
  		engage(context, event, null, customData, (ExtendedData[]) null);
  	}
docs: This method takes a unique event string, stores a record of that event having been visited,
  determines if there is an interaction that is able to run for this event, and then runs it. If
  more than one interaction can run, then the most appropriate interaction takes precedence. Only
  one interaction at most will run per invocation of this method. This task is performed
  asynchronously. If you would like to know whether this method will launch an Apptentive
  Interaction, use {@link Apptentive#engage(Context, String, BooleanCallback, Map)}.
  
  @param context    The context from which to launch the Interaction. This should be an Activity,
  except in rare cases where you don't have access to one, in which case
  Apptentive Interactions will launch in a new task.
  @param event      A unique String representing the line this method is called on. For instance,
  you may want to have the ability to target interactions to run after the user
  uploads a file in your app. You may then call
  <strong><code>engage(context, "finished_upload");</code></strong>
  @param customData A Map of String keys to Object values. Objects may be Strings, Numbers, or
  Booleans. This data is sent to the server for tracking information in the
  context of the engaged Event.
  @return true if the an interaction was shown, else false.