| Server IP : 85.155.190.233 / Your IP : 216.73.216.103 Web Server : nginx/1.24.0 System : Linux antigravity-cli 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64 User : wp-moonbloom ( 1001) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/log/ |
Upload File : |
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-9cce7efbfa3d Creating
Container moonbloom-dashboard-collector-run-9cce7efbfa3d Created
2026-07-21 10:21:21,930 INFO collector: collector run starting: window 2026-07-18 .. 2026-07-21
2026-07-21 10:21:25,964 INFO collector: [google_ads] OK: 243 rows
2026-07-21 10:21:28,799 INFO collector: [pinterest_ads] OK: 62 rows
2026-07-21 10:22:47,544 INFO collector: [pinterest_organic] OK: 217 rows
2026-07-21 10:22:48,198 INFO collector: [pinterest_audience] OK: 67 rows
2026-07-21 10:22:50,260 INFO collector: [ga4] OK: 145 rows
2026-07-21 10:22:50,267 INFO collector: [etsy_orders] OK: 4 rows
2026-07-21 10:22:50,268 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-21 10:22:50,286 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-21 10:22:50,287 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-18 .. 2026-07-21)
------------------------------------------
google_ads 243 rows
pinterest_ads 62 rows
pinterest_organic 217 rows
pinterest_audience 67 rows
ga4 145 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
Container moonbloom-dash-postgres Running
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-95ef9ac45151 Creating
Container moonbloom-dashboard-collector-run-95ef9ac45151 Created
2026-07-22 06:00:03,577 INFO collector: collector run starting: window 2026-07-19 .. 2026-07-22
2026-07-22 06:00:08,780 INFO collector: [google_ads] OK: 128 rows
2026-07-22 06:00:08,927 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-22 06:00:09,053 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-22 06:00:09,054 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-22 06:00:09,192 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-22 06:00:09,310 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-22 06:00:09,439 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-22 06:00:09,440 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-22 06:00:09,574 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-22 06:00:09,701 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-22 06:00:09,827 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-22 06:00:09,828 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-22 06:00:11,840 INFO collector: [ga4] OK: 162 rows
2026-07-22 06:00:11,846 INFO collector: [etsy_orders] OK: 4 rows
2026-07-22 06:00:11,846 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-22 06:00:11,865 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-22 06:00:11,866 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-19 .. 2026-07-22)
------------------------------------------
google_ads 128 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 162 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-898085bdc61f Creating
Container moonbloom-dashboard-collector-run-898085bdc61f Created
2026-07-23 06:00:04,148 INFO collector: collector run starting: window 2026-07-20 .. 2026-07-23
2026-07-23 06:00:09,962 INFO collector: [google_ads] OK: 92 rows
2026-07-23 06:00:10,318 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-23 06:00:10,409 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-23 06:00:10,410 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-23 06:00:10,501 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-23 06:00:10,610 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-23 06:00:10,719 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-23 06:00:10,720 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-23 06:00:10,810 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-23 06:00:10,906 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-23 06:00:10,994 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-23 06:00:10,994 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-23 06:00:12,502 INFO collector: [ga4] OK: 174 rows
2026-07-23 06:00:12,509 INFO collector: [etsy_orders] OK: 4 rows
2026-07-23 06:00:12,510 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-23 06:00:12,534 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-23 06:00:12,535 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-20 .. 2026-07-23)
------------------------------------------
google_ads 92 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 174 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
Container moonbloom-dash-postgres Running
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-317325f89b0e Creating
Container moonbloom-dashboard-collector-run-317325f89b0e Created
2026-07-24 06:00:03,677 INFO collector: collector run starting: window 2026-07-21 .. 2026-07-24
2026-07-24 06:00:07,271 INFO collector: [google_ads] OK: 90 rows
2026-07-24 06:00:07,373 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-24 06:00:07,460 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-24 06:00:07,461 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-24 06:00:07,550 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-24 06:00:07,638 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-24 06:00:07,729 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-24 06:00:07,730 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-24 06:00:07,817 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-24 06:00:07,908 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-24 06:00:07,997 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-24 06:00:07,997 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-24 06:00:10,303 INFO collector: [ga4] OK: 175 rows
2026-07-24 06:00:10,309 INFO collector: [etsy_orders] OK: 4 rows
2026-07-24 06:00:10,310 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-24 06:00:10,333 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-24 06:00:10,334 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-21 .. 2026-07-24)
------------------------------------------
google_ads 90 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 175 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
Container moonbloom-dash-postgres Running
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-dc53a20cac1d Creating
Container moonbloom-dashboard-collector-run-dc53a20cac1d Created
2026-07-25 06:00:03,479 INFO collector: collector run starting: window 2026-07-22 .. 2026-07-25
2026-07-25 06:00:07,900 INFO collector: [google_ads] OK: 113 rows
2026-07-25 06:00:08,018 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-25 06:00:08,109 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-25 06:00:08,109 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-25 06:00:08,198 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-25 06:00:08,292 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-25 06:00:08,378 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-25 06:00:08,379 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-25 06:00:08,466 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-25 06:00:08,560 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-25 06:00:08,657 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-25 06:00:08,658 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-25 06:00:10,655 INFO collector: [ga4] OK: 171 rows
2026-07-25 06:00:10,661 INFO collector: [etsy_orders] OK: 4 rows
2026-07-25 06:00:10,662 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-25 06:00:10,686 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-25 06:00:10,687 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-22 .. 2026-07-25)
------------------------------------------
google_ads 113 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 171 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-93241fd8b9c5 Creating
Container moonbloom-dashboard-collector-run-93241fd8b9c5 Created
2026-07-26 06:00:03,752 INFO collector: collector run starting: window 2026-07-23 .. 2026-07-26
2026-07-26 06:00:07,494 INFO collector: [google_ads] OK: 139 rows
2026-07-26 06:00:07,627 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-26 06:00:07,757 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-26 06:00:07,758 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-26 06:00:07,887 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-26 06:00:08,013 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-26 06:00:08,142 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-26 06:00:08,142 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-26 06:00:08,273 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-26 06:00:08,408 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-26 06:00:08,538 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-26 06:00:08,539 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-26 06:00:09,880 INFO collector: [ga4] OK: 148 rows
2026-07-26 06:00:09,887 INFO collector: [etsy_orders] OK: 4 rows
2026-07-26 06:00:09,887 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
Collector run summary (2026-07-23 .. 2026-07-26)
------------------------------------------
google_ads 139 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 148 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
2026-07-26 06:00:09,906 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-26 06:00:09,906 INFO collector: [etsy_offsite_ads] OK: 0 rows
Container moonbloom-dash-postgres Running
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-5f190457ff37 Creating
Container moonbloom-dashboard-collector-run-5f190457ff37 Created
2026-07-27 06:00:03,961 INFO collector: collector run starting: window 2026-07-24 .. 2026-07-27
2026-07-27 06:00:08,182 INFO collector: [google_ads] OK: 194 rows
2026-07-27 06:00:08,291 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-27 06:00:08,381 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-27 06:00:08,381 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-27 06:00:08,469 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-27 06:00:08,559 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-27 06:00:08,647 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-27 06:00:08,648 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-27 06:00:08,736 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-27 06:00:08,830 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-27 06:00:08,932 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-27 06:00:08,933 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-27 06:00:10,181 INFO collector: [ga4] OK: 129 rows
2026-07-27 06:00:10,189 INFO collector: [etsy_orders] OK: 4 rows
2026-07-27 06:00:10,189 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-27 06:00:10,215 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-27 06:00:10,216 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-24 .. 2026-07-27)
------------------------------------------
google_ads 194 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 129 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
Container moonbloom-dash-postgres Running
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-4c1a569c9d85 Creating
Container moonbloom-dashboard-collector-run-4c1a569c9d85 Created
2026-07-28 06:00:03,300 INFO collector: collector run starting: window 2026-07-25 .. 2026-07-28
2026-07-28 06:00:07,740 INFO collector: [google_ads] OK: 249 rows
2026-07-28 06:00:07,846 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-28 06:00:07,937 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-28 06:00:07,937 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-28 06:00:08,026 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-28 06:00:08,113 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-28 06:00:08,202 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-28 06:00:08,203 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-28 06:00:08,291 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-28 06:00:08,383 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-28 06:00:08,484 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-28 06:00:08,485 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-28 06:00:09,832 INFO collector: [ga4] OK: 114 rows
2026-07-28 06:00:09,838 INFO collector: [etsy_orders] OK: 4 rows
2026-07-28 06:00:09,839 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-28 06:00:09,859 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-28 06:00:09,859 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-25 .. 2026-07-28)
------------------------------------------
google_ads 249 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 114 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
Container moonbloom-dash-postgres Running
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-9783aa4740e5 Creating
Container moonbloom-dashboard-collector-run-9783aa4740e5 Created
2026-07-29 06:00:03,420 INFO collector: collector run starting: window 2026-07-26 .. 2026-07-29
2026-07-29 06:00:08,076 INFO collector: [google_ads] OK: 281 rows
2026-07-29 06:00:08,182 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-29 06:00:08,271 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-29 06:00:08,272 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-29 06:00:08,359 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-29 06:00:08,448 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-29 06:00:08,536 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-29 06:00:08,536 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-29 06:00:08,623 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-29 06:00:08,715 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-29 06:00:08,805 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-29 06:00:08,806 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-29 06:00:10,348 INFO collector: [ga4] OK: 126 rows
2026-07-29 06:00:10,355 INFO collector: [etsy_orders] OK: 4 rows
2026-07-29 06:00:10,356 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-29 06:00:10,380 INFO collector: [etsy_ads_csv] OK: 201 rows
Collector run summary (2026-07-26 .. 2026-07-29)
------------------------------------------
google_ads 281 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 126 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
2026-07-29 06:00:10,381 INFO collector: [etsy_offsite_ads] OK: 0 rows
Container moonbloom-dash-postgres Running
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-1c006987320b Creating
Container moonbloom-dashboard-collector-run-1c006987320b Created
2026-07-30 06:00:03,574 INFO collector: collector run starting: window 2026-07-27 .. 2026-07-30
2026-07-30 06:00:09,995 INFO collector: [google_ads] OK: 312 rows
2026-07-30 06:00:10,135 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-30 06:00:10,266 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-30 06:00:10,267 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-30 06:00:10,396 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-30 06:00:10,523 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-30 06:00:10,641 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-30 06:00:10,641 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-30 06:00:10,772 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-30 06:00:10,899 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-30 06:00:11,020 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-30 06:00:11,021 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-30 06:00:12,569 INFO collector: [ga4] OK: 127 rows
2026-07-30 06:00:12,575 INFO collector: [etsy_orders] OK: 4 rows
2026-07-30 06:00:12,576 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-30 06:00:12,596 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-30 06:00:12,597 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-27 .. 2026-07-30)
------------------------------------------
google_ads 312 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 127 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic
Container moonbloom-dash-postgres Running
Container moonbloom-dash-grafana Running
Container moonbloom-dash-postgres Waiting
Container moonbloom-dash-postgres Healthy
Container moonbloom-dashboard-collector-run-9e0f19de2f02 Creating
Container moonbloom-dashboard-collector-run-9e0f19de2f02 Created
2026-07-31 06:00:03,675 INFO collector: collector run starting: window 2026-07-28 .. 2026-07-31
2026-07-31 06:00:09,529 INFO collector: [google_ads] OK: 426 rows
2026-07-31 06:00:09,675 WARNING collector.pinterest_ads: pinterest_ads: could not list campaigns for account_daily on 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-31 06:00:09,776 WARNING collector.pinterest_ads: pinterest_ads: could not list ads for 549770501688: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-31 06:00:09,776 INFO collector.pinterest_ads: pinterest_ads: no ads found for account 549770501688 — skipping pins_daily
2026-07-31 06:00:09,863 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list campaigns: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/campaigns?page_size=100
2026-07-31 06:00:09,953 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ad_groups: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ad_groups?page_size=100
2026-07-31 06:00:10,041 WARNING collector.pinterest_ads: pinterest_ads: structure_snapshot could not list ads: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/ads?page_size=100
2026-07-31 06:00:10,042 INFO collector: [pinterest_ads] OK: 0 rows
2026-07-31 06:00:10,133 ERROR collector: [pinterest_organic] FAILED: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
Traceback (most recent call last):
File "/app/collect.py", line 145, in main
rows = pinterest_organic.fetch(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 93, in fetch
boards = _fetch_boards(access_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/sources/pinterest_organic.py", line 41, in _fetch_boards
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/requests/models.py", line 1024, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/boards?page_size=100
2026-07-31 06:00:10,225 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_TOTAL_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_TOTAL_AUDIENCE
2026-07-31 06:00:10,316 WARNING collector.pinterest_audience: pinterest_audience: fetch failed for YOUR_ENGAGED_AUDIENCE (ignored): 401 Client Error: Unauthorized for url: https://api.pinterest.com/v5/ad_accounts/549770501688/audience_insights?audience_insight_type=YOUR_ENGAGED_AUDIENCE
2026-07-31 06:00:10,317 INFO collector: [pinterest_audience] OK: 0 rows
2026-07-31 06:00:11,586 INFO collector: [ga4] OK: 155 rows
2026-07-31 06:00:11,591 INFO collector: [etsy_orders] OK: 4 rows
2026-07-31 06:00:11,592 INFO collector.etsy_csv: etsy_csv: parsing Etsy Ads CSV(s) ['etsy_ads_stats_2026-01-01_2026-07-20.csv'] (spend converted USD->EUR at 0.92)
2026-07-31 06:00:11,611 INFO collector: [etsy_ads_csv] OK: 201 rows
2026-07-31 06:00:11,612 INFO collector: [etsy_offsite_ads] OK: 0 rows
Collector run summary (2026-07-28 .. 2026-07-31)
------------------------------------------
google_ads 426 rows
pinterest_ads 0 rows
pinterest_audience 0 rows
ga4 155 rows
etsy_orders 4 rows
etsy_ads_csv 201 rows
etsy_offsite_ads 0 rows
FAILED sources: pinterest_organic