mhd7music
Your descriptive commit message here
a6912c3
# Store the detailed Gemini prompt
DETAILED_DISCOVER_PROMPT = """
Analyze the provided input (either a news article screenshot or pasted text) for Google Discover optimization patterns. Your goal is to identify characteristics that influence visibility in Google Discover and provide actionable recommendations.
Return your analysis as a single, valid JSON object adhering strictly to the following structure:
{
"input_type": "[Image|Text]", // Specify if the analysis was based on an Image or Text
"content_summary": {
"headline": "string | null", // Extracted main headline. Null if not identifiable.
"source": "string | null", // Publication name/domain. Null if not identifiable.
"core_topic": "string | null", // Concise summary (1-2 sentences) of the main subject. Null if unclear.
"publication_date": "string | null", // Visible date (YYYY-MM-DD, relative, etc.). Null if not found.
"primary_image_description": "string | null", // Description of main visual (if image input). Null otherwise or if no distinct primary image.
"originality_assessment": "string" // Assessment like "Likely original reporting", "Author name visible", "Appears aggregated", "Agency source credited", "Cannot determine".
},
"topic_identification": {
"primary_category": "string | null", // Broad category (e.g., Technology, World News, Health, Finance, Entertainment, Sports, Lifestyle). Null if ambiguous.
"subtopics": ["string"], // List of specific subtopics mentioned (e.g., "AI ethics", "UK general election", "COVID-19 variants"). Empty list if none specific identified.
"named_entities": {
"people": ["string"], // List of recognized people's names.
"places": ["string"], // List of recognized locations.
"organizations": ["string"], // List of recognized organizations/companies.
"products": ["string"], // List of recognized products/services.
"concepts": ["string"] // List of key abstract concepts (e.g., "inflation", "climate change", "machine learning").
},
"timeliness": "string" // Assessment: "Breaking News", "Trending Topic", "Recent Update", "Evergreen Content", "Time-Sensitive Event".
},
"content_structure_analysis": {
"headline_characteristics": {
"length_category": "string", // "Short" (<7 words), "Medium" (7-12 words), "Long" (>12 words).
"style": "string", // "Statement", "Question", "List-based", "How-to", "Intrigue/Clickbait", "Command".
"uses_numbers": "boolean", // True if headline contains digits.
"emotional_sentiment": "string" // "Positive", "Negative", "Neutral", "Evocative/Emotional". Analyze the likely emotional impact.
},
"content_format": "string | null", // Identified format: "News Report", "Listicle", "Opinion/Editorial", "In-depth Analysis", "Q&A/Interview", "Review", "Guide/How-to". Null if unclear.
"visual_elements_usage": "string | null", // Describe image/video use (if image input): "Single prominent featured image", "Multiple inline images", "Image gallery", "Embedded video", "Infographics present", "Minimal visuals". Null if text input or no visuals.
"estimated_content_depth": "string" // Assessment: "Surface-level summary", "Moderate detail", "Comprehensive analysis", "Highly specialized/Technical". Based on visible text/structure.
},
"discover_visibility_patterns": {
"e_e_a_t_signals": { // Assess based *only* on visible cues in the screenshot/text
"experience": "string", // "Demonstrated" (e.g., first-person account, author credentials visible), "Implied", "Not evident".
"expertise": "string", // "High" (e.g., specialized topic, named expert author/source), "Moderate", "General", "Not evident".
"authoritativeness": "string", // "High" (e.g., well-known reputable source visible), "Moderate" (e.g., recognizable but less prominent source), "Low" (e.g., unknown source, blog), "Not evident".
"trustworthiness": "string" // "High" (e.g., objective tone, cited sources visible), "Moderate", "Low" (e.g., sensationalized language, lack of evidence), "Not evident".
},
"personalization_factors": {
"potential_interest_categories": ["string"], // List of Google Discover-like interest categories this might fit (e.g., "Artificial Intelligence", "UK Politics", "Travel", "Personal Finance").
"location_relevance": "string", // "High" (mentions specific local places), "Moderate" (country-specific topic), "Low", "Global".
"demographic_targeting_hints": "string" // Brief assessment like "Broad appeal", "Targets specific age group (e.g., Gen Z)", "Targets professionals in [field]", "Targets hobbyists (e.g., gaming)".
},
"language_and_region": {
"detected_language": "string", // ISO 639-1 code (e.g., "en", "tr", "de").
"primary_regional_target": "string" // Estimated primary target region/country based on context/source (e.g., "UK", "US", "Turkey", "Global", "EU").
},
"topic_popularity_indicators": "string", // "High-interest mainstream topic", "Niche but active community interest", "Tied to major current event", "Seasonal topic", "Generally low interest".
"freshness_and_uniqueness_signals": "string" // "Unique perspective/analysis", "Standard reporting on event", "Appears recently published", "Update to ongoing story", "Timeless/evergreen information".
},
"optimization_recommendations": [ // Provide 3-5 actionable recommendations
{
"category": "string", // "Headline", "Content Structure", "Topic/Angle", "Visuals", "E-E-A-T", "Entities/Keywords"
"recommendation": "string", // Specific advice, e.g., "Make the headline a question to increase intrigue."
"implementation_difficulty": "string", // "Easy", "Medium", "Hard"
"potential_impact": "string" // "Low", "Medium", "High", "Very High"
}
// ... more recommendations
],
"google_discover_score": { // Added scorecard section
"score": "float", // Overall score from 0.00 to 1.00, representing estimated Discover potential based on analysis.
"explanation": "string", // Brief (1-2 sentences) explanation justifying the score based on key factors identified above.
"key_positive_factors": ["string"], // List 2-3 key strengths contributing positively to the score.
"key_negative_factors": ["string"] // List 2-3 key weaknesses detracting from the score.
}
}
IMPORTANT: Ensure the entire output is ONLY a single, valid JSON object. Do not include any text before or after the JSON structure. Double-check for correct syntax, especially commas and quotes.
"""