Influencer Campaign Planner
Run ID: 69cc1fe6fdffe128046c4bd92026-03-31Marketing
PantheraHive BOS
BOS Dashboard

Plan an influencer marketing campaign with ideal influencer profiles, outreach templates, contract terms, content guidelines, and ROI tracking framework.

Step 1 of 3: Audience Analysis for Influencer Campaign Planning

This deliverable outlines a comprehensive analysis of your target audience, a critical foundational step for designing an effective influencer marketing campaign. Understanding your audience profoundly will enable precise influencer selection, compelling content creation, and maximized return on investment.


1. Introduction: The Cornerstone of Campaign Success

The success of any influencer marketing campaign hinges on deeply understanding who you are trying to reach. This analysis provides a framework to identify, segment, and profile your ideal customer, ensuring that subsequent campaign elements – from influencer selection to content strategy and platform choice – are precisely aligned with their preferences and behaviors. This step transforms assumptions into data-driven insights, leading to more impactful and efficient campaigns.


2. Importance of Comprehensive Audience Analysis

  • Precision Targeting: Ensures your message reaches the right people who are most likely to be interested in your product/service.
  • Influencer Alignment: Guides the selection of influencers whose audience demographics, psychographics, and values perfectly match your target market.
  • Content Relevance: Informs the type of content (format, tone, style, topics) that will resonate most effectively with your audience.
  • Platform Optimization: Determines the most effective social media platforms where your audience spends their time and is most receptive to marketing messages.
  • Message Crafting: Helps tailor your campaign messaging to address your audience's pain points, desires, and aspirations.
  • ROI Maximization: Reduces wasted ad spend and increases the likelihood of conversions by targeting engaged and relevant consumers.

3. Key Dimensions of Audience Analysis

To build a holistic view of your target audience, we will analyze data across several critical dimensions:

3.1. Demographic Data

  • Age Range: (e.g., 25-40 years old) – Impacts platform choice, content tone, and product relevance.
  • Gender Identity: (e.g., Predominantly female, balanced, specific gender focus) – Influences product appeal and messaging.
  • Geographic Location: (e.g., Urban areas in North America, specific states/regions, global) – Important for localized campaigns, shipping, and cultural relevance.
  • Income Level/Socioeconomic Status: (e.g., Mid to high income, students, budget-conscious) – Determines affordability, luxury perception, and purchasing power.
  • Education Level: (e.g., College-educated, postgraduate) – Affects communication complexity and content depth.
  • Occupation/Industry: (e.g., Professionals, creatives, tech workers) – Provides insights into daily routines, challenges, and aspirations.
  • Family Status: (e.g., Single, married with children, empty nesters) – Influences needs, priorities, and purchasing decisions.

3.2. Psychographic Data

  • Interests & Hobbies: (e.g., Sustainable living, tech gadgets, fitness, gourmet cooking, travel) – Crucial for identifying relevant influencer niches and content themes.
  • Values & Beliefs: (e.g., Environmental consciousness, social justice, authenticity, community, luxury, practicality) – Helps align with influencers who share similar values, fostering genuine connection.
  • Lifestyle: (e.g., Active and outdoorsy, homebodies, busy professionals, trend-followers) – Informs how and when your product fits into their daily lives.
  • Attitudes & Opinions: (e.g., Early adopters, skeptical buyers, brand loyalists, price-sensitive) – Shapes messaging strategy and urgency.
  • Personality Traits: (e.g., Adventurous, analytical, creative, introverted, extroverted) – Affects preferred content styles and influencer personalities.
  • Pain Points & Challenges: (e.g., Time-poor, overwhelmed by choices, seeking solutions for specific problems) – Allows campaigns to position your product as a solution.
  • Aspirations & Goals: (e.g., Career advancement, personal growth, health improvement, financial independence) – Helps connect your product to their larger life ambitions.

3.3. Behavioral Data

  • Purchase Behavior: (e.g., Frequent online shoppers, research extensively before buying, impulse buyers, subscription service users) – Informs call-to-actions and sales funnel design.
  • Brand Loyalty: (e.g., Loyal to specific brands, open to trying new products, brand agnostic) – Influences messaging around brand switching or loyalty rewards.
  • Content Consumption Habits: (e.g., Prefer short-form video, long-form blogs, podcasts, live streams, visual content) – Dictates content format and platform choice.
  • Social Media Platform Usage: (e.g., Active on Instagram, TikTok, YouTube, LinkedIn, Facebook, Pinterest) – Essential for platform-specific campaign planning.
  • Online Activity: (e.g., Review readers, forum participants, blog commenters, app users) – Reveals where they seek information and interact.
  • Device Usage: (e.g., Primarily mobile, desktop, tablet) – Influences content optimization and user experience.

4. Data Sources and Collection Methods

To gather these insights, consider leveraging the following resources:

  • Existing Customer Data: CRM data, sales records, website analytics, email subscriber lists.
  • Social Media Analytics: Insights from your existing social media profiles (Facebook Insights, Instagram Insights, TikTok Analytics, YouTube Studio).
  • Website Analytics: Google Analytics provides demographics, interests, and behavior on your site.
  • Market Research Reports: Industry-specific reports, consumer trend analyses.
  • Surveys & Polls: Directly ask your existing audience or a target sample about their preferences.
  • Focus Groups: Qualitative insights into motivations and perceptions.
  • Competitor Analysis: Observe the audience engagement of successful competitors.
  • Third-Party Audience Tools: (e.g., SimilarWeb, Audience Insights tools from ad platforms) for broader market data.

5. Audience Segmentation and Persona Development

Once data is collected, segment your audience into distinct groups based on shared characteristics. For each significant segment, develop a detailed Buyer Persona. A persona is a semi-fictional representation of your ideal customer, based on real data and some educated speculation about demographics, behaviors, motivations, and goals.

Example Persona Structure:

  • Name: (e.g., "Eco-Conscious Emily")
  • Demographics: Age, location, occupation, income, family status.
  • Psychographics: Interests, values, lifestyle, personality.
  • Goals: What are they trying to achieve?
  • Pain Points: What challenges do they face?
  • How We Can Help: How your product/service alleviates their pain points or helps achieve goals.
  • Favorite Social Media Platforms: Where do they spend their time online?
  • Preferred Content Types: What kind of content do they engage with?
  • Influencer Preferences: What type of influencers do they trust/follow?
  • Quote: A representative quote that captures their essence.

6. Data Insights & Trends (General & Actionable)

Based on general market trends and typical audience behaviors relevant to influencer marketing:

  • Authenticity Reigns: Audiences, particularly Gen Z and Millennials, prioritize authenticity and transparency. They trust influencers who genuinely use and believe in products over those who appear to be merely transactional.

* Actionable Insight: Seek influencers whose personal brand genuinely aligns with your product values, rather than just audience size.

  • Visual-First Content: Platforms like Instagram and TikTok dominate attention. Short-form video continues its explosive growth.

* Actionable Insight: Prioritize visual storytelling and consider video-first content strategies for campaigns.

  • Niche Communities & Micro-Influencers: Audiences are increasingly fragmented into niche communities. Micro and nano-influencers often have higher engagement rates and more dedicated followers within specific interests.

* Actionable Insight: Don't solely focus on mega-influencers; explore smaller creators who have highly engaged, relevant audiences.

  • Demand for Value & Education: Beyond entertainment, audiences seek value – whether it's educational content, problem-solving tips, or inspiration.

* Actionable Insight: Encourage influencers to create content that educates, solves problems, or inspires, rather than just showcasing the product.

  • Trust in Peer Recommendations: Word-of-mouth and peer recommendations (including from trusted influencers) remain powerful drivers of purchase decisions.

* Actionable Insight: Frame campaign messaging to feel like a genuine recommendation from a trusted friend.

  • Platform-Specific Content: Audiences expect content to be native and optimized for the platform they are on. A TikTok video should feel different from an Instagram Story or a YouTube review.

* Actionable Insight: Work with influencers to adapt content to their specific platform and audience expectations.


7. Recommendations for Influencer Campaign Alignment

Based on the audience analysis framework, here are key recommendations for your influencer campaign:

  1. Prioritize Persona-Influencer Match: Select influencers whose own audience mirrors your target personas in demographics, psychographics, and online behavior. Their content style and personal brand should also resonate with your audience's values and preferences.
  2. Strategic Platform Selection: Concentrate your efforts on the social media platforms where your target audience is most active and receptive. For example, if your audience is primarily Gen Z interested in trends, TikTok and Instagram Reels are crucial. If they are professionals seeking thought leadership, LinkedIn might be more effective.
  3. Content Strategy Guided by Consumption Habits: Tailor content formats (video, image, blog, live stream) and length to your audience's preferred consumption habits. If your audience prefers quick, digestible content, focus on short-form videos and engaging stories.
  4. Value-Driven Messaging: Develop campaign messages that directly address your audience's pain points and aspirations. Position your product/service as a solution or an enabler of their goals, communicated through the influencer's authentic voice.
  5. Authenticity and Transparency: Empower influencers to integrate your product/service into their existing content in a way that feels natural and authentic to their personal brand. Mandate clear disclosure of sponsored content to maintain trust.
  6. Engagement Focus: Design calls-to-action (CTAs) that encourage interaction, feedback, and community building, leveraging your audience's desire for connection and participation.

8. Hypothetical Audience Profile Example: "Wellness Warrior Wendy"

To illustrate the depth of analysis, consider this example for a hypothetical plant-based protein powder brand:

  • Name: Wellness Warrior Wendy
  • Age: 28-38
  • Location: Urban/Suburban areas, primarily North America
  • Occupation: Young professional (e.g., Marketing Manager, Software Engineer), often works remotely or hybrid.
  • Income: Mid to High-income ($60k - $120k annually)
  • Family Status: Single or in a partnership, no children yet, or new parents.
  • Interests: Fitness (yoga, HIIT, running), healthy eating, sustainable living, personal development, travel, mental well-being, cooking/meal prep.
  • Values: Health, sustainability, authenticity, convenience, ethical consumption, self-improvement.
  • Lifestyle: Active, busy, conscious consumer, values self-care, enjoys social experiences but also quiet time. Often cooks at home but also enjoys healthy dining out.
  • Pain Points: Time-poor for meal prep, struggles to find convenient healthy options, wants to maintain energy levels, concerned about ingredient quality and sourcing.
  • Goals: Optimize health and fitness, reduce environmental footprint, feel energized and productive, support ethical brands.
  • How Our Product Helps: Provides a convenient, high-quality, sustainable plant-based protein source for busy schedules, aiding muscle recovery and overall well-being.
  • Favorite Social Media Platforms: Instagram (for fitness inspiration, healthy recipes, lifestyle content), TikTok (short-form wellness tips, quick recipe demos), YouTube (longer workout routines, product reviews, "what I eat in a day").
  • Preferred Content Types: Recipe videos, workout routines featuring product, "day in the life" vlogs, educational content on plant-based nutrition, sustainable living tips, authentic product reviews.
  • Influencer Preferences: Authentic fitness trainers, registered dietitians, wellness coaches, sustainable living advocates, healthy food bloggers – individuals who genuinely integrate the product into their lifestyle and provide value.
  • Quote: "I want to fuel my body with the best, but I also need it to be easy and align with my values."

9. Next Steps

Upon reviewing this comprehensive audience analysis, your immediate next steps are:

  1. Validate & Refine: Review the provided framework and hypothetical example. Apply it to your specific product/service. Gather and input your actual audience data to build out your specific personas.
  2. Identify Core Personas: Determine your 1-3 primary target personas based on your most valuable customer segments.
  3. Prioritize Platforms: Based on your personas' social media habits, identify the top 1-2 platforms for your initial campaign focus.
  4. Prepare for Influencer Identification: With your refined personas and platform priorities, you are now ready for the next step: identifying ideal influencer profiles that align perfectly with your target audience.

This detailed audience analysis forms the bedrock of a successful influencer campaign, ensuring every subsequent decision is strategic and audience-centric.

gemini Output

Influencer Campaign Planner: Your Blueprint for Authentic Growth

Welcome to your comprehensive guide for launching and managing a highly effective influencer marketing campaign. In today's dynamic digital landscape, authentic voices drive genuine connections. This planner provides you with the strategic framework, actionable templates, and essential guidelines to harness the power of influencers, elevate your brand, and achieve measurable results.


1. Defining Your Campaign Strategy: Setting the Foundation

Before embarking on your influencer journey, a clear strategy is paramount. This section helps you define your objectives, understand your audience, and craft your core message.

1.1 Campaign Goals: What Do You Want to Achieve?

Every successful campaign starts with clearly defined, measurable goals. Use the SMART framework (Specific, Measurable, Achievable, Relevant, Time-bound).

  • Awareness:

* Increase brand visibility by X% (e.g., impressions, reach).

* Increase brand mentions by X% in Y weeks.

  • Engagement:

* Achieve an average engagement rate of X% on influencer posts.

* Generate X user-generated content (UGC) submissions.

  • Traffic:

* Drive X website visits from influencer content.

* Increase app downloads by X% via influencer referrals.

  • Conversions:

* Generate X sales/leads using unique influencer codes/links.

* Achieve a Cost Per Acquisition (CPA) of $X or less.

  • Brand Sentiment/Perception:

* Improve brand sentiment score by X points among target audience.

* Position brand as [specific attribute, e.g., innovative, sustainable].

1.2 Target Audience: Who Are You Trying to Reach?

Understanding your ideal customer is crucial for selecting the right influencers whose audience aligns with yours.

  • Demographics: Age, gender, location, income, education.
  • Psychographics: Interests, hobbies, values, lifestyle, pain points, aspirations.
  • Online Behavior: Preferred social media platforms, content consumption habits.

1.3 Key Message & Call to Action (CTA): What Should People Do?

Your core message should be concise, compelling, and consistent across all influencer content. Your CTA must be clear and direct.

  • Core Message: What is the single most important thing you want your audience to take away? (e.g., "Our new product solves [problem] effortlessly.")
  • Call to Action (CTA) Examples:

* "Shop now at [link]!"

* "Download our app today!"

* "Use code [INFLUENCERNAME] for 15% off!"

* "Learn more about [product/service] in our bio link."

* "Follow @[YourBrandHandle] for more!"

1.4 Budget Allocation: Investing in Impact

Outline your budget across key categories to ensure efficient resource allocation.

  • Influencer Fees: Compensation for content creation and distribution.
  • Product/Service Costs: Samples, free trials, gifts.
  • Campaign Management Fees: Agency fees, platform subscriptions.
  • Paid Amplification: Boosting influencer content (optional).
  • Tracking & Reporting Tools: Analytics subscriptions.
  • Contingency: 5-10% for unforeseen costs.

2. Ideal Influencer Profiles: Finding Your Brand Advocates

Identifying the right influencers is the cornerstone of a successful campaign. This section details how to define your ideal partner.

2.1 Influencer Tiers & Characteristics

Influencers vary significantly in reach, engagement, and cost. Consider a mix to maximize impact.

  • Nano-Influencers (1K - 10K followers):

* Characteristics: Highly niche, hyper-engaged communities, excellent authenticity, very cost-effective.

* Best for: Niche product launches, highly localized campaigns, user-generated content (UGC) generation, building deep trust.

  • Micro-Influencers (10K - 100K followers):

* Characteristics: Strong engagement rates, perceived as relatable experts, growing reach, moderate cost.

* Best for: Driving conversions, building community, product reviews, sustained brand awareness campaigns.

  • Macro-Influencers (100K - 1M followers):

* Characteristics: Significant reach, professional content creators, broader appeal, higher cost.

* Best for: Mass awareness, large-scale product launches, driving traffic, reaching a wider audience segment.

  • Mega-Influencers / Celebrities (1M+ followers):

* Characteristics: Massive reach, high production value, premium cost, can offer instant credibility.

* Best for: Global brand awareness, major campaigns, celebrity endorsements, reaching mainstream audiences.

2.2 Key Selection Criteria

Use these criteria to evaluate potential partners and ensure a strong brand fit.

  • Audience Demographics & Psychographics Alignment: Does their audience match your target audience? Request audience insights.
  • Engagement Rate: A high engagement rate (likes, comments, shares per post relative to followers) indicates an active and loyal audience. Formula: (Likes + Comments) / Followers 100%*. Aim for 2-5% for macro/mega, 5-10%+ for micro/nano.
  • Content Quality & Aesthetic: Do their visuals, audio, and storytelling align with your brand's quality standards and aesthetic?
  • Brand Alignment & Values: Does the influencer genuinely resonate with your brand's mission, values, and products? Check past collaborations.
  • Authenticity & Trust: Look for genuine interactions, real followers (beware of bots/fake engagement), and a history of transparent communication.
  • Platform Relevance: Is their primary platform where your target audience spends most of their time? (e.g., TikTok for Gen Z, Instagram for fashion/lifestyle, YouTube for in-depth reviews).
  • Past Performance: Have they driven results for similar brands? (If available via platforms or case studies).

3. Influencer Outreach: Crafting Compelling Introductions

Your initial outreach is crucial for making a strong first impression. Personalization and clarity are key.

3.1 General Outreach Best Practices

  • Personalization is Paramount: Address them by name, reference specific content, and explain why you admire their work.
  • Be Clear & Concise: Get straight to the point but provide enough context.
  • Highlight Mutual Value: Explain what's in it for them (and their audience).
  • Professionalism: Maintain a respectful and enthusiastic tone.
  • Clear Call to Action: What do you want them to do next? (e.g., schedule a call, reply with interest).
  • Follow-Up Strategy: Don't give up after one attempt. A polite follow-up can often secure a response.

3.2 Outreach Templates

Template 1: Initial Contact (Email/Direct Message)

Subject Line Options:

  • Partnership Opportunity: [Your Brand Name] x [Influencer Name]
  • Collaboration Idea for [Influencer Name] & [Your Brand Name]
  • Loving Your Content, [Influencer Name]! Partnership Idea

Body:

Hi [Influencer Name],

My name is [Your Name] and I'm the [Your Title] at [Your Brand Name]. I've been following your [Platform, e.g., Instagram/TikTok] content for a while now, and I'm particularly impressed by your [mention specific post/series, e.g., "authentic reviews of sustainable products" or "engaging travel vlogs"]. Your audience's [mention audience characteristic, e.g., "passion for ethical living" or "adventurous spirit"] truly resonates with our brand.

At [Your Brand Name], we [briefly describe what your brand does, e.g., "create eco-friendly skincare products" or "offer unique travel experiences"]. We're currently planning an exciting campaign to [briefly state campaign goal, e.g., "introduce our new product line" or "promote sustainable travel solutions"], and we immediately thought of you as an ideal partner.

We believe your unique voice and engaged community would be a perfect fit to [explain potential benefit for them/their audience, e.g., "authentically share the benefits of our products" or "inspire your followers to explore responsible tourism"].

Would you be open to a brief chat next week to discuss this potential collaboration in more detail? Please let me know what time works best for you.

Looking forward to hearing from you!

Best regards,

[Your Name]

[Your Title]

[Your Brand Name]

[Your Website]

[Your Social Media Link]

Template 2: Follow-Up (Email/Direct Message)

Subject Line Options:

  • Following Up: [Your Brand Name] x [Influencer Name] Partnership Idea
  • Quick Follow-Up: Collaboration with [Your Brand Name]

Body:

Hi [Influencer Name],

Just wanted to gently follow up on my previous message from [Date] regarding a potential collaboration between [Your Brand Name] and you.

I understand you're incredibly busy, but I genuinely believe this could be a fantastic opportunity for both of us, and particularly for your audience who [reiterate why it's a good fit].

If you're interested in learning more, please let me know a good time for a quick 15-minute call. If not, no worries at all, and I wish you all the best!

Thanks,

[Your Name]

Template 3: Partnership Proposal (After Initial Interest)

Subject Line: Partnership Proposal: [Your Brand Name] & [Influencer Name] - [Campaign Name]

Body:

Hi [Influencer Name],

Thank you so much for your interest in partnering with [Your Brand Name]! It was great to connect and learn more about your [audience/content style].

As discussed, we're planning a campaign around [Campaign Theme/Product] with the goal of [Campaign Goal]. We believe your unique approach to [mention their specific content style] would be perfect for this.

Here's a brief overview of our proposed partnership:

Campaign Name: [e.g., "Summer Glow Up with [Your Brand Name]"]

Key Message: [Reiterate core

gemini Output

Influencer Campaign Planner: Optimized & Finalized Deliverable

This document provides a comprehensive and finalized plan for your influencer marketing campaign, covering ideal influencer profiles, outreach strategies, contractual terms, content guidelines, and a robust ROI tracking framework.


1. Ideal Influencer Profiles

To ensure maximum impact and alignment with your brand values and campaign objectives, we will target influencers who embody the following characteristics:

  • Niche Alignment:

* Primary: Directly relevant to [Your Product/Service Category, e.g., sustainable fashion, gourmet coffee, SaaS for small businesses].

* Secondary: Complementary niches that share audience interests (e.g., lifestyle, wellness, tech reviews).

  • Audience Demographics:

* Age Range: [Specify Age Range, e.g., 25-45]

* Gender Split: [Specify Gender Split, e.g., 60% Female, 40% Male, or Gender Neutral]

* Geographic Location: [Specify Key Regions/Countries, e.g., USA, Canada, UK, or Global]

* Interests: [List specific interests, e.g., eco-friendly living, fitness, home decor, entrepreneurship].

  • Engagement Rate:

* Target: Consistently above [e.g., 3-5%] for micro/mid-tier influencers, and above [e.g., 1-2%] for macro influencers.

* Quality: Look for genuine comments and interactions, not just likes. Avoid accounts with high bot activity.

  • Content Quality & Aesthetic:

* Visuals: High-quality photography/videography, consistent aesthetic that aligns with [Your Brand's Visual Style, e.g., minimalist, vibrant, professional].

* Storytelling: Ability to craft engaging narratives that resonate with their audience.

* Authenticity: Genuine voice and connection with their followers.

  • Brand Alignment & Past Collaborations:

* Values: Influencers whose personal brand values align with [Your Brand's Values, e.g., sustainability, innovation, community].

* Past Partnerships: Review previous collaborations to ensure they've worked with reputable brands and maintained authenticity. Avoid influencers who frequently promote competing products.

  • Platform Focus:

* Primary: [Specify Primary Platform, e.g., Instagram (Stories, Reels, Feed), TikTok, YouTube, Blog].

* Secondary: [Specify Secondary Platforms, if applicable, e.g., Pinterest, Facebook].

  • Follower Count Tiers (Flexible based on campaign budget and goals):

* Nano-Influencers: 1,000 - 10,000 followers (High engagement, niche focus, authentic voice).

* Micro-Influencers: 10,000 - 100,000 followers (Strong community, good ROI potential).

* Mid-Tier Influencers: 100,000 - 500,000 followers (Broader reach, still high engagement).

* Macro-Influencers: 500,000 - 1M+ followers (Significant reach, higher cost, brand awareness focus).


2. Outreach Templates

These templates are designed for initial contact. Remember to personalize each message significantly for higher response rates.

2.1. Initial Email Outreach Template (General)

Subject: Collaboration Opportunity: [Your Brand Name] x [Influencer's Name/Handle]

Hi [Influencer's Name],

My name is [Your Name] and I'm the [Your Title] at [Your Brand Name]. I've been following your work on [Platform, e.g., Instagram/YouTube] for a while, and I'm consistently impressed by your [Specific Compliment about their content, e.g., "unique aesthetic," "insightful reviews," "engaging storytelling"]. Your recent post about [Specific Post/Content Piece] particularly caught my eye, as it perfectly aligns with our brand's mission to [Your Brand's Mission/Value].

At [Your Brand Name], we [Briefly describe your brand and what you offer, e.g., "create sustainable, high-quality [Product Category]" or "provide innovative [Service] solutions"]. We're currently planning an exciting campaign to [Campaign Goal, e.g., "launch our new product line," "raise awareness for X cause," "drive engagement around Y theme"], and we immediately thought of you.

We believe your authentic voice and engaged audience would be an ideal fit to introduce [Your Product/Service] to your community. We're envisioning a collaboration that involves [Suggest content type, e.g., "a dedicated Instagram Reel," "a series of Stories," "a YouTube review"].

Would you be open to a brief call next week to discuss this potential partnership further? I'd love to share more details about our brand and how we could create something truly impactful together.

Looking forward to hearing from you!

Best regards,

[Your Name]

[Your Title]

[Your Brand Name]

[Your Website]

[Your Social Media Link]

2.2. Initial DM Outreach Template (Instagram/TikTok)

Hi [Influencer's Name/Handle]! 👋

Love your content, especially your [Specific Compliment, e.g., "recent reel on X," "aesthetic feed"]. Your [Specific aspect, e.g., "passion for sustainability," "tech reviews"] really resonates with us at [Your Brand Name].

We're [Briefly describe your brand, e.g., "a sustainable fashion brand," "a new coffee subscription service"] and we're looking for authentic creators to collaborate on our upcoming campaign. We think your audience would truly appreciate [Your Product/Service].

Would you be open to learning more? We can send over an email with full details!

Thanks,

[Your Name] from [Your Brand Name]


3. Contract Terms

A clear and comprehensive contract is crucial for a successful partnership. Key terms to include:

  • Scope of Work & Deliverables:

* Specific Content: Number of posts, stories, reels, videos, blog posts, etc.

* Platforms: Which social media channels or blogs.

* Key Messages: Mandatory talking points or calls-to-action.

* Deadlines: Content submission for approval, posting dates.

  • Payment & Compensation:

* Fee Structure: Flat fee, per-post, commission-based (affiliate), product exchange, or a hybrid.

* Payment Schedule: Upfront, upon approval, upon posting, net 30/60.

* Payment Method: Bank transfer, PayPal.

* Performance Bonuses (Optional): For exceeding certain metrics.

  • Usage Rights & Content Ownership:

* License: Granting your brand a non-exclusive, perpetual, worldwide license to use, reproduce, distribute, and display the content for marketing purposes (e.g., on your website, social media, ads).

* Ownership: Clarify if ownership remains with the influencer or is transferred to the brand. Generally, influencers retain ownership but grant extensive usage rights.

* Exclusivity:

* Product/Category Exclusivity: Influencer agrees not to promote competing products/services for a specified period.

* Brand Exclusivity: Influencer agrees not to work with any other brand during the campaign period.

  • Disclosure Requirements (FTC/ASA/CMA Compliance):

* Mandatory: Clear and conspicuous disclosure of sponsored content (e.g., #Ad, #Sponsored, #BrandPartner).

* Placement: Specify where the disclosure must appear (e.g., beginning of caption, verbally in video).

  • Approval Process:

* Content Review: Brand's right to review and request revisions before content goes live.

* Number of Revisions: Specify allowable revisions.

* Timeline: Deadlines for brand approval.

  • Confidentiality:

* Non-disclosure of campaign details, product information, or contract terms.

  • Termination Clause:

* Conditions under which either party can terminate the agreement (e.g., breach of contract, failure to meet deadlines, negative publicity).

* Consequences of termination (e.g., prorated payment, return of products).

  • Representations & Warranties:

* Influencer confirms they have the right to create and post content, that it's original, and doesn't infringe on third-party rights.

  • Indemnification:

* Each party agrees to compensate the other for losses incurred due to breaches of the agreement.

  • Governing Law:

* Specify the jurisdiction whose laws will govern the contract.


4. Content Guidelines

These guidelines ensure consistency, brand messaging, and legal compliance while allowing influencers creative freedom.

  • Campaign Objective & Key Message:

* Primary Goal: [e.g., Drive awareness for X, generate leads for Y, increase sales of Z].

* Core Message: [e.g., "Our product solves [problem] by [solution]," "Experience the [benefit] of [product/service]."]

* Call-to-Action (CTA): Clear and specific (e.g., "Shop now at [link in bio]," "Use code [DISCOUNT CODE] for 15% off," "Learn more at [website]").

  • Product/Service Integration:

* Authenticity: Encourage natural integration into their daily life/content style.

* Key Features/Benefits: Highlight [List 2-3 key features/benefits to mention].

* Demonstration: How to use the product/service effectively.

  • Visual & Aesthetic Requirements:

* Brand Colors/Palette: Encourage use of complementary colors or adherence to a general mood board.

* Lighting: Natural, bright lighting preferred.

* Backgrounds: Clean, uncluttered, relevant to the product/brand.

* Imagery: High-resolution photos/videos only. Avoid blurry or pixelated content.

* Mood/Tone: [e.g., fun, aspirational, informative, luxurious, relatable].

  • Mandatory Elements:

* Disclosure: #Ad, #Sponsored, #BrandPartner (as per contract and legal requirements).

* Brand Tag: Tag [@YourBrandHandle] in photos/videos and captions.

* Hashtags: Include [YourCampaignHashtag] and [YourBrandHashtag], plus 2-3 relevant niche hashtags.

* Link: Direct link to [Your Landing Page URL] in bio/swipe up (if applicable).

  • Prohibited Content:

* Offensive Language/Imagery: No hate speech, discrimination, or explicit content.

* Misinformation: No false or misleading claims about the product or competition.

* Competitor Mentions: Do not mention or compare to competitors.

* Illegal Activities: No content promoting illegal or harmful activities.

* Sensitive Topics: Avoid overly political, religious, or controversial topics unless directly aligned with brand values and pre-approved.

  • Approval Process:

* Draft Submission: Influencers must submit content drafts (visuals + captions/scripts) to [Your Email Address] by [X date] for review.

* Feedback & Revisions: Brand will provide feedback within [X hours/days]. Influencers must implement requested changes.

* Final Approval: Content can only go live after explicit written approval from [Your Brand Name].


5. ROI Tracking Framework

Measuring the return on investment is critical for evaluating campaign success and informing future strategies.

5.1. Key Performance Indicators (KPIs)

  • Reach & Awareness:

* Impressions: Total number of times content was displayed.

* Reach: Unique number of users who saw the content.

* Follower Growth (Influencer & Brand): Increase in followers for both the influencer and your brand during/after the campaign.

* Brand Mentions: Number of times your brand is mentioned outside of the sponsored content.

  • Engagement:

* Engagement Rate: (Likes + Comments + Shares + Saves) / Reach or Followers.

* Comments: Quality and quantity of comments on sponsored posts.

* Shares & Saves: Indicates content resonance and future reference.

* Story Views & Swipe-Ups: For Instagram Stories.

  • Website Traffic & Conversions:

* Website Clicks: Number of clicks to your website from influencer content.

* Landing Page Visits: Visits to specific campaign landing pages.

Conversion Rate: (Number of conversions / Number of website clicks) 100.

* Leads Generated: For campaigns focused on lead generation.

* Sales Revenue: Total revenue generated directly from influencer-driven traffic/codes.

* Average Order Value (AOV): For sales-driven campaigns.

  • Sentiment & Brand Perception:

* Comment Sentiment: Positive, neutral, or negative sentiment analysis of comments.

* Brand Perception Surveys (Optional): Pre- and post-campaign surveys to gauge changes in brand perception.

* Qualitative Feedback: Direct messages, comments, or emails expressing interest or positive sentiment.

  • Cost Efficiency:

* Cost Per Engagement (CPE): Total campaign cost / Total engagements.

* Cost Per Click (CPC): Total campaign cost / Total website clicks.

* Cost Per Acquisition (CPA): Total campaign cost / Total conversions/sales.

5.2. Tracking Tools & Methods

  • Unique Discount Codes:

* Provide each influencer with a unique discount code (e.g., [INFLUENCERNAME]15).

* Track redemptions directly through your e-commerce platform.

  • UTM Parameters:

* Create unique UTM-tagged links for each influencer for all their calls-to-action (e.g., yourwebsite.com/?utm_source=instagram&utm_medium=influencer&utm_campaign=[CampaignName]&utm_content=[InfluencerHandle]).

* Track clicks, website traffic, and conversions in Google Analytics or similar web analytics platforms.

  • Platform Analytics:

* Influencer-Provided Data: Request screenshots or reports from influencers' native platform analytics (Instagram Insights, TikTok Analytics, YouTube Studio) for reach, impressions, engagement, and audience demographics.

* Brand's Social Media Analytics: Monitor your brand's follower growth and engagement spikes.

  • Third-Party Influencer Marketing Platforms:

* Consider using tools like Upfluence, Grin, AspireIQ, or HypeAuditor for consolidated tracking, reporting, and influencer relationship management.

  • Google Analytics / E-commerce Platform:

* Monitor direct and assisted conversions, user behavior, and revenue generated from UTM-tagged links.

  • Surveys (Optional):

* Include a "How did you hear about us?" question at checkout or on lead forms.

5.3. Reporting Frequency & Structure

  • Mid-Campaign Check-in (Optional):

* Frequency: [e.g., Weekly] for longer campaigns.

* Purpose: Monitor initial performance, identify top-performing content/influencers, and make real-time adjustments.

  • Post-Campaign Report:

* Frequency: Within [e.g., 2 weeks] of campaign completion.

* Structure:

1. Executive Summary: Overview of campaign goals, key results, and overall ROI.

2. Campaign Overview: Dates, number of influencers, platforms.

3. Performance by KPI: Detailed breakdown of Reach, Engagement, Traffic, Conversions, Sales.

4. Influencer Breakdown: Performance metrics per influencer (identifying top performers and areas for improvement).

5.

influencer_campaign_planner.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}