response = make_request(account, "reports", body)
if response.status_code == 201:
report_id = response.headers.get("ReportId")
for attempt in range(max_retries):
time.sleep(wait_time)
ready_response = make_request(account, f"reports/{report_id}")
if ready_response.status_code == 200:
response = ready_response
print("Отчёт успешно сгенерирован!")
breakerror_code = error_data['error'].get('error_code')
if error_code in [52, 53]:
wait_time = int(error_data['error'].get('error_detail', delay))
print(f"Лимит запросов. Ждём {wait_time} сек.")
time.sleep(wait_time)
continueINSERT INTO yd_campaigns_stats (
client_login, date, campaign_name, campaign_id,
impressions, clicks, cost, conversions
) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
ON CONFLICT (client_login, date, campaign_id, targeting_location_name)
DO UPDATE SET
impressions = EXCLUDED.impressions,
clicks = EXCLUDED.clicks,
cost = EXCLUDED.cost,
conversions = EXCLUDED.conversions;