File size: 5,259 Bytes
6bdfadc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
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"
})
|