Adjusted all 6 Amazon check weights to equal 1.67 each based on test results showing incorrect scoring. Refined prompts for box placement (format-aware positioning, better tape description), required elements (subhead now optional for OOH), logo country (country match as primary factor), margins (visual assessment over pixel estimates), and headline layout (natural language break detection, tall format awareness). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
91 lines
5 KiB
Python
91 lines
5 KiB
Python
import os
|
|
import sys
|
|
|
|
# Add parent directory to path to import shared modules
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
|
|
|
from visual_qc_apps.flask_app_template import FlaskAppTemplate
|
|
|
|
class AmazonLogoCountryApp(FlaskAppTemplate):
|
|
"""
|
|
Amazon ASD 2025 - Logo & Country Compliance Check
|
|
Validates correct Amazon logo or URL logo per country/locale on the box.
|
|
"""
|
|
|
|
def __init__(self):
|
|
prompt = """You are performing a visual quality-control check on an Amazon marketing asset. Your task is to verify that the correct Amazon logo or URL is used for the correct country/locale.
|
|
|
|
THIS IS THE MOST IMPORTANT ASPECT OF THIS CHECK: The country/locale shown on the asset MUST match the language of the content. A mismatch between the country URL/logo and the asset language is a CRITICAL failure.
|
|
|
|
AMAZON LOGO & COUNTRY RULES:
|
|
|
|
ESTABLISHED LOCALES (use Amazon smile logo):
|
|
- These markets use the standard Amazon smile logo (the curved arrow/smile underneath the word "amazon").
|
|
- Established markets: US, UK, Germany (DE), France (FR), Italy (IT), Spain (ES), Japan (JP), Canada, Australia, Netherlands, etc.
|
|
- The logo may appear on the box graphic, or separately in the layout (e.g. "amazon prime day", "amazon.de prime day").
|
|
|
|
EMERGING LOCALES (use URL logo):
|
|
- These markets use a country-specific URL (e.g. "Amazon.com.br", "Amazon.sa", "Amazon.eg") instead of the standard smile logo.
|
|
- The URL logo appears on the box or in the layout.
|
|
|
|
COUNTRY MATCHING (PRIMARY CHECK — this is the most heavily weighted factor):
|
|
- The country/locale indicated by the logo, URL, or domain text MUST match the language of the headline and other text on the asset.
|
|
- Examples of CORRECT matching:
|
|
- Italian text ("Quattro giorni di grandi offerte") with amazon.it or Italian market branding → PASS
|
|
- German text ("Neuer Tag. Neue Angebote.") with amazon.de or German market branding → PASS
|
|
- English text ("Four days of big deals") with amazon.ie or amazon.co.uk → PASS
|
|
- Examples of WRONG matching (instant fail — score very low):
|
|
- Italian text with amazon.ie (Irish URL on Italian content) → FAIL
|
|
- German text with amazon.fr → FAIL
|
|
- Any mismatch between text language and country/URL → FAIL
|
|
|
|
HOW TO DETERMINE LOCALE:
|
|
1. FIRST: Look for explicit URL or domain text anywhere on the asset (e.g. "amazon.ie", "amazon.de", "amazon.it", "amazon prime day"). This is the strongest indicator.
|
|
2. SECOND: Look for language clues in the headline, date, and legal text to determine the target market.
|
|
3. THIRD: Check if the URL/domain matches the language. If they don't match, this is a FAIL.
|
|
|
|
LOGO APPEARANCE (SECONDARY CHECK — less important than country matching):
|
|
- The Amazon logo should be recognisable (smile arrow or wordmark visible).
|
|
- The logo may appear in different colours or treatments depending on the campaign, box angle, and lighting. Do NOT penalise for logo colour variations — the logo on an angled 3D box will naturally appear in various tones.
|
|
- What matters is that the logo is RECOGNISABLE as an Amazon logo, not that it matches a specific colour spec.
|
|
|
|
LOGO TYPE CHECK:
|
|
- Established locales should use the Amazon smile logo (not a URL logo)
|
|
- Emerging locales should use the URL logo (not the smile logo)
|
|
- Using the wrong logo TYPE for the locale is a moderate issue
|
|
|
|
STEPS TO EVALUATE:
|
|
1. Identify the language of the text content on the asset (headline, date, legal line)
|
|
2. Look for any URL, domain, or country-specific branding text on the asset
|
|
3. CHECK: Does the country/URL match the language? If not → FAIL (critical mismatch)
|
|
4. Determine if this is an established or emerging locale
|
|
5. Check if the correct logo type is used (smile vs URL)
|
|
6. Check that the logo is recognisable
|
|
|
|
SCORING GUIDANCE:
|
|
- Country/URL matches language AND correct logo type → High score (8-10)
|
|
- Country/URL matches language BUT minor logo appearance issue → Good score (6-8)
|
|
- Cannot determine country clearly but no obvious mismatch → Moderate score (5-7)
|
|
- Country/URL does NOT match the language of the content → Very low score (1-3), this is a critical error
|
|
|
|
YOUR OUTPUT:
|
|
Format your response as JSON:
|
|
{
|
|
"logo_country_check": "Pass" or "Fail",
|
|
"locale_detected": "Description of detected locale/country",
|
|
"content_language": "Language of the text on the asset",
|
|
"country_url_found": "Any URL, domain, or country text found (e.g. 'amazon.ie', 'amazon.it') or 'none found'",
|
|
"country_language_match": true or false or "unable to determine",
|
|
"locale_type": "established" or "emerging" or "undetermined",
|
|
"logo_type_detected": "Amazon smile logo" or "URL logo" or "Logo without box" or "No logo found",
|
|
"logo_recognisable": true or false,
|
|
"explanation": "Detailed reasoning — focus on whether country matches content language",
|
|
"recommendations": ["List specific recommendations if applicable, else an empty array"]
|
|
}"""
|
|
|
|
super().__init__(__name__, prompt)
|
|
|
|
# Run the app if executed directly
|
|
if __name__ == "__main__":
|
|
app_instance = AmazonLogoCountryApp()
|
|
app_instance.run()
|