def METHOD_NAME(
    self,
    sync_mode: SyncMode,
    cursor_field: List[str] = None,
    stream_slice: Mapping[str, Any] = None,
    stream_state: Mapping[str, Any] = None,
) -> Iterable[Mapping[str, Any]]:
    """Read the records from the stream."""
    report_infos = self._init_reports(super().METHOD_NAME(sync_mode, cursor_field, stream_slice, stream_state))
    self._try_read_records(report_infos, stream_slice)
    for report_info in report_infos:
        metrics = report_info.metrics
        for campaign_id, records in metrics.items():
            self.logger.info(f"Reports for campaign id: {campaign_id}:")
            yield from records