adloop 0.32.0__tar.gz → 0.32.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {adloop-0.32.0 → adloop-0.32.1}/PKG-INFO +1 -1
- {adloop-0.32.0 → adloop-0.32.1}/pyproject.toml +1 -1
- {adloop-0.32.0 → adloop-0.32.1}/pyproject.toml.orig +1 -1
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/merchant/read.py +11 -1
- {adloop-0.32.0 → adloop-0.32.1}/README.md +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/__main__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/_mcp_patches.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/ai_max.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/audiences.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/brands.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/client.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/conversion_actions.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/currency.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/custom_conversion_goals.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/enums.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/forecast.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/gaql.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/image_fetch.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/pmax.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/read.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/shopping.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/validate_only.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ads/write.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/auth.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/cli.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/config.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/crossref.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/diagnostics.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ga4/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ga4/client.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ga4/reports.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ga4/tracking.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/ga4/write.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/gsc/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/gsc/client.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/gsc/reports.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/gtm/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/gtm/client.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/gtm/entities.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/gtm/read.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/gtm/write.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/merchant/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/merchant/client.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/pagespeed.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/reddit/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/reddit/auth.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/reddit/client.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/reddit/read.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/reddit/schedule.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/reddit/write.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules/adloop.md +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules/commands/analyze-performance.md +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules/commands/budget-plan.md +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules/commands/create-ad.md +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules/commands/create-campaign.md +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules/commands/diagnose-tracking.md +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules/commands/optimize-campaign.md +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/rules_install.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/runtime.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/safety/__init__.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/safety/approval.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/safety/approval_card.html +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/safety/audit.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/safety/guards.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/safety/preview.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/server.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/tracking.py +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/upload_card.html +0 -0
- {adloop-0.32.0 → adloop-0.32.1}/src/adloop/uploads.py +0 -0
|
@@ -216,7 +216,17 @@ def get_merchant_feed_health(
|
|
|
216
216
|
f"severity — CRITICAL means offers stop serving entirely: "
|
|
217
217
|
+ "; ".join(i["title"] for i in critical[:3])
|
|
218
218
|
)
|
|
219
|
-
if not
|
|
219
|
+
if not serving_total:
|
|
220
|
+
# Zero products is not a healthy feed: Shopping and Performance Max
|
|
221
|
+
# have nothing to advertise.
|
|
222
|
+
insights.append(
|
|
223
|
+
"The account has no products at all (0 approved, pending or "
|
|
224
|
+
"disapproved), so Shopping and Performance Max campaigns have "
|
|
225
|
+
"nothing to show. Either no feed or data source is set up yet, "
|
|
226
|
+
"products were added in the last ~30 minutes (status lags), or "
|
|
227
|
+
"the products live in another Merchant Center account."
|
|
228
|
+
)
|
|
229
|
+
elif not account_issues and not totals["disapproved"]:
|
|
220
230
|
insights.append("No disapprovals or account issues — feed is healthy.")
|
|
221
231
|
|
|
222
232
|
return {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|