in python/activation/main.py [0:0]
def process(self, element):
"""
Transforms the output of the inference pipeline into a format suitable for sending to the Google Analytics 4 Measurement Protocol API.
Args:
element: A dictionary containing the output of the inference pipeline.
Yields:
A dictionary containing the Measurement Protocol payload.
"""
# Removing bad shaping strings in client_id
_client_id = element['client_id'].replace(r'<img onerror="_exploit_dom_xss(20007)', '')
_client_id = element['client_id'].replace(r'<img onerror="_exploit_dom_xss(20023)', '')
_client_id = element['client_id'].replace(r'<img onerror="_exploit_dom_xss(20013)', '')
_client_id = element['client_id'].replace(r'<img onerror="_exploit_dom_xss(20010)', '')
_client_id = element['client_id'].replace(r'q="><script>_exploit_dom_xss(40007)</script>', '')
_client_id = element['client_id'].replace(r'q="><script>_exploit_dom_xss(40013)</script>', '')
result = {}
result['client_id'] = _client_id
if element['user_id']:
result['user_id'] = element['user_id']
result['timestamp_micros'] = self.date_to_micro(element["inference_date"])
result['non_personalized_ads'] = False
result['consent'] = self.consent_obj
result['user_properties'] = self.extract_user_properties(element)
result['events'] = [self.extract_event(element)]
yield result