| from typing import Dict | |
| BENCHMARKS = { | |
| "Apparel & Accessories": { | |
| "retention": { | |
| "best_arc": "Hook-Feature-Benefit-Action", | |
| "best_arc_short": "HFBA", | |
| "uplift_percent": 5.8, | |
| "recommendation": "Start with strong hook, quickly show product features and benefits" | |
| }, | |
| "ctr": { | |
| "best_arc": "AIDA", | |
| "best_arc_short": "AIDA", | |
| "uplift_percent": 8.9, | |
| "recommendation": "Build desire through aspirational content before call-to-action" | |
| }, | |
| "cvr": { | |
| "best_arc": "Social-Proof-Action", | |
| "best_arc_short": "SPA", | |
| "uplift_percent": 4.6, | |
| "recommendation": "Lead with testimonials and reviews to build trust" | |
| } | |
| }, | |
| "Beauty": { | |
| "retention": { | |
| "best_arc": "Hook-Problem-Demo-Solution", | |
| "best_arc_short": "HPDS", | |
| "uplift_percent": 4.9, | |
| "recommendation": "Hook attention, show problem, demonstrate product solving it" | |
| }, | |
| "ctr": { | |
| "best_arc": "Hook-Feature-Benefit-Action", | |
| "best_arc_short": "HFBA", | |
| "uplift_percent": 2.8, | |
| "recommendation": "Focus on product features and benefits after initial hook" | |
| }, | |
| "cvr": { | |
| "best_arc": "Social-Proof-Action", | |
| "best_arc_short": "SPA", | |
| "uplift_percent": 3.7, | |
| "recommendation": "Beauty buyers respond well to testimonials and reviews" | |
| } | |
| }, | |
| "Food": { | |
| "retention": { | |
| "best_arc": "Problem-Agitate-Solution", | |
| "best_arc_short": "PAS", | |
| "uplift_percent": 6.3, | |
| "recommendation": "Amplify the problem/need before showing solution" | |
| }, | |
| "ctr": { | |
| "best_arc": "AIDA", | |
| "best_arc_short": "AIDA", | |
| "uplift_percent": 4.8, | |
| "recommendation": "Build appetite and desire psychologically" | |
| }, | |
| "cvr": { | |
| "best_arc": "Problem-Agitate-Solution", | |
| "best_arc_short": "PAS", | |
| "uplift_percent": 8.5, | |
| "recommendation": "Strong problem-solution narrative drives food conversions" | |
| } | |
| }, | |
| "Beverages": { | |
| "retention": { | |
| "best_arc": "Hook-Problem-Solution", | |
| "best_arc_short": "HPS", | |
| "uplift_percent": 4.1, | |
| "recommendation": "Quick hook into problem-solution flow" | |
| }, | |
| "ctr": { | |
| "best_arc": "Feature-Benefit-Action", | |
| "best_arc_short": "FBA", | |
| "uplift_percent": 3.9, | |
| "recommendation": "Direct product focus works for beverages" | |
| }, | |
| "cvr": { | |
| "best_arc": "Feature-Benefit-Action", | |
| "best_arc_short": "FBA", | |
| "uplift_percent": 5.1, | |
| "recommendation": "Detailed feature explanation drives beverage conversions" | |
| } | |
| }, | |
| "Other": { | |
| "retention": { | |
| "best_arc": "Hook-Feature-Benefit-Action", | |
| "best_arc_short": "HFBA", | |
| "uplift_percent": 5.0, | |
| "recommendation": "General best practice: hook + features + benefits" | |
| }, | |
| "ctr": { | |
| "best_arc": "AIDA", | |
| "best_arc_short": "AIDA", | |
| "uplift_percent": 5.0, | |
| "recommendation": "Classic AIDA funnel works across categories" | |
| }, | |
| "cvr": { | |
| "best_arc": "Social-Proof-Action", | |
| "best_arc_short": "SPA", | |
| "uplift_percent": 4.0, | |
| "recommendation": "Social proof generally effective for conversions" | |
| } | |
| } | |
| } | |
| MISSING_ELEMENT_IMPACT = { | |
| "Hook": { | |
| "impact": "+5-8% retention in first 2 seconds", | |
| "suggestion": "Add attention-grabbing opening (question, surprising visual, bold statement)" | |
| }, | |
| "Problem Setup": { | |
| "impact": "+4-6% retention", | |
| "suggestion": "Establish relatable pain point before showing product" | |
| }, | |
| "Social Proof": { | |
| "impact": "+3-5% CVR", | |
| "suggestion": "Add testimonial, review, or crowd validation before CTA" | |
| }, | |
| "Urgency Trigger": { | |
| "impact": "+2-4% CVR", | |
| "suggestion": "Add time-limited element (limited time offer, countdown)" | |
| }, | |
| "Call-to-Action": { | |
| "impact": "Critical for conversions", | |
| "suggestion": "Add clear CTA (Shop Now, Learn More, Get Started)" | |
| }, | |
| "Outcome": { | |
| "impact": "+3-5% retention and CVR", | |
| "suggestion": "Show transformation or result after using product" | |
| } | |
| } | |
| GOAL_MAPPING = { | |
| "Retention (Dwell Rate)": "retention", | |
| "Click-Through (CTR)": "ctr", | |
| "Conversions (CVR)": "cvr" | |
| } | |
| def get_benchmark(industry: str, goal: str) -> Dict: | |
| """Get benchmark data for industry and goal.""" | |
| goal_key = GOAL_MAPPING.get(goal, "retention") | |
| return BENCHMARKS.get(industry, BENCHMARKS["Other"]).get(goal_key, {}) | |
| def get_missing_element_recommendation(element: str) -> Dict: | |
| """Get recommendation for missing element.""" | |
| return MISSING_ELEMENT_IMPACT.get(element, { | |
| "impact": "May improve ad performance", | |
| "suggestion": f"Consider adding {element} to strengthen narrative" | |
| }) | |