Commit
·
bf50e29
1
Parent(s):
fb3bb56
- services/generator.py +26 -0
services/generator.py
CHANGED
|
@@ -472,6 +472,18 @@ NICHE-SPECIFIC REQUIREMENTS (GLP-1 / WEIGHT LOSS):
|
|
| 472 |
- AVOID: unrealistic body standards, extreme before/after manipulation
|
| 473 |
- AVOID: medical claims without proper framing, shame-based imagery only
|
| 474 |
- Include elements of: medical authority, social proof, simplicity, variety
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 475 |
"""
|
| 476 |
return ""
|
| 477 |
|
|
@@ -485,6 +497,8 @@ NICHE-SPECIFIC REQUIREMENTS (GLP-1 / WEIGHT LOSS):
|
|
| 485 |
return "Consider using oddly specific prices (e.g., $97.33 instead of $100) if the ad format calls for it. Typical range: $37-$147/month. Only include if it enhances believability and fits the ad format."
|
| 486 |
elif niche == "glp1":
|
| 487 |
return "Consider using specific prices if relevant to the ad format. Typical range: $197-$497. Only include if it enhances the message and fits the ad strategy."
|
|
|
|
|
|
|
| 488 |
return "Use contextually appropriate prices if the ad format requires them. Make them oddly specific (not rounded) for believability."
|
| 489 |
|
| 490 |
def _generate_niche_numbers(self, niche: str) -> Dict[str, str]:
|
|
@@ -517,6 +531,18 @@ NICHE-SPECIFIC REQUIREMENTS (GLP-1 / WEIGHT LOSS):
|
|
| 517 |
"sizes": f"{sizes_dropped} dress sizes",
|
| 518 |
"metric": "pounds lost",
|
| 519 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 520 |
return {}
|
| 521 |
|
| 522 |
def _get_framework_container_compatibility(self, framework_key: str) -> List[str]:
|
|
|
|
| 472 |
- AVOID: unrealistic body standards, extreme before/after manipulation
|
| 473 |
- AVOID: medical claims without proper framing, shame-based imagery only
|
| 474 |
- Include elements of: medical authority, social proof, simplicity, variety
|
| 475 |
+
"""
|
| 476 |
+
elif niche == "auto_insurance":
|
| 477 |
+
return """
|
| 478 |
+
NICHE-SPECIFIC REQUIREMENTS (AUTO INSURANCE):
|
| 479 |
+
- Focus on REALISTIC driving scenarios and protection
|
| 480 |
+
- Show real situations: safe driving, accidents, family safety, financial protection
|
| 481 |
+
- Use authentic emotions: fear of accidents, relief of coverage, family responsibility, savings
|
| 482 |
+
- Target pain points: high premiums, accident fears, coverage gaps, legal requirements
|
| 483 |
+
- Messaging must feel URGENT but trustworthy
|
| 484 |
+
- Visual concepts: real drivers, real cars, real protection scenarios, savings proof
|
| 485 |
+
- AVOID: extreme accident scenes, fear-mongering, unrealistic scenarios
|
| 486 |
+
- AVOID: generic stock photos, overly dramatic crash imagery
|
| 487 |
"""
|
| 488 |
return ""
|
| 489 |
|
|
|
|
| 497 |
return "Consider using oddly specific prices (e.g., $97.33 instead of $100) if the ad format calls for it. Typical range: $37-$147/month. Only include if it enhances believability and fits the ad format."
|
| 498 |
elif niche == "glp1":
|
| 499 |
return "Consider using specific prices if relevant to the ad format. Typical range: $197-$497. Only include if it enhances the message and fits the ad strategy."
|
| 500 |
+
elif niche == "auto_insurance":
|
| 501 |
+
return "Consider using oddly specific prices (e.g., $29.00 or $67.33 instead of $30 or $70) if the ad format calls for it. Typical range: $29-$150/month. Only include if it enhances believability and fits the ad format."
|
| 502 |
return "Use contextually appropriate prices if the ad format requires them. Make them oddly specific (not rounded) for believability."
|
| 503 |
|
| 504 |
def _generate_niche_numbers(self, niche: str) -> Dict[str, str]:
|
|
|
|
| 531 |
"sizes": f"{sizes_dropped} dress sizes",
|
| 532 |
"metric": "pounds lost",
|
| 533 |
}
|
| 534 |
+
elif niche == "auto_insurance":
|
| 535 |
+
# Auto insurance savings numbers
|
| 536 |
+
before = random.randint(1200, 2400)
|
| 537 |
+
savings_pct = random.uniform(0.50, 0.70)
|
| 538 |
+
after = int(before * (1 - savings_pct))
|
| 539 |
+
return {
|
| 540 |
+
"type": "savings",
|
| 541 |
+
"before": f"${before:,}/year",
|
| 542 |
+
"after": f"${after}/year",
|
| 543 |
+
"difference": f"${before - after:,}",
|
| 544 |
+
"metric": "savings per year",
|
| 545 |
+
}
|
| 546 |
return {}
|
| 547 |
|
| 548 |
def _get_framework_container_compatibility(self, framework_key: str) -> List[str]:
|