docs: def _send_impression_event(self, experiment, variation, user_id, attributes):
      """ Helper method to send impression event.
  
      Args:
        experiment: Experiment for which impression event is being sent.
        variation: Variation picked for user for the given experiment.
        user_id: ID for user.
        attributes: Dict representing user attributes and values which need to be recorded.
      """
  
      impression_event = self.event_builder.create_impression_event(experiment,
                                                                    variation.id,
                                                                    user_id,
                                                                    attributes)
  
      self.logger.debug('Dispatching impression event to URL %s with params %s.' % (
        impression_event.url,
        impression_event.params
      ))
  
      try:
        self.event_dispatcher.dispatch_event(impression_event)
      except:
        self.logger.exception('Unable to dispatch impression event!')
  
      self.notification_center.send_notifications(enums.NotificationTypes.ACTIVATE,
                                                  experiment, user_id, attributes, variation, impression_event)