<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_hit( self, title, description, keywords, reward, duration_hours, lifetime_days, ad_url, notification_url, approve_requirement, max_assignments, us_only, blacklist=None, annotation=None, ):
 """Create the actual HIT and return a dict with its useful properties."""

        frame_height = 600
        mturk_question = self._external_question(ad_url, frame_height)
        qualifications = self.build_hit_qualifications(
            approve_requirement, us_only, blacklist
        )
        # We need a HIT_Type in order to register for REST notifications
        hit_type_id = self.register_hit_type(
            title, description, reward, duration_hours, keywords, qualifications
        )
        self.set_rest_notification(notification_url, hit_type_id)

        params = {
            "HITTypeId": hit_type_id,
            "Question": mturk_question,
            "LifetimeInSeconds": int(
                datetime.timedelta(days=lifetime_days).total_seconds()
            ),
            "MaxAssignments": max_assignments,
            "UniqueRequestToken": self._request_token(),
        }
        if annotation:
            params["RequesterAnnotation"] = annotation

        response = self.mturk.create_hit_with_hit_type(**params)
        if "HIT" not in response:
            raise MTurkServiceException("HIT request was invalid for unknown reason.")
        return self._translate_hit(response["HIT"])