clawdbot-workspace/generate_example_campaign.py

149 lines
5.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
Generate a complete multi-variation Facebook Ads campaign
Shows the power of bulk upload for creative testing
"""
from fb_ads_csv_generator import FBAdsCSVGenerator
def generate_full_creative_test():
"""
Generate a complete creative testing campaign with:
- 3 audience segments
- 2 creative variations per audience
- Proper UTM tracking
- Total: 6 ads ready to test
"""
generator = FBAdsCSVGenerator()
all_rows = []
# Define audiences
audiences = [
{
"name": "Tech Early Adopters",
"age_min": "25",
"age_max": "45",
"interests": "Technology,Software,Artificial Intelligence",
},
{
"name": "Business Owners",
"age_min": "30",
"age_max": "55",
"interests": "Small Business,Entrepreneurship,Business Software",
},
{
"name": "Developers",
"age_min": "22",
"age_max": "40",
"interests": "Programming,Software Development,GitHub",
},
]
# Define creative variations
creatives = [
{
"version": "v1_efficiency",
"body": "Stop wasting time on repetitive tasks. OpenClaw automates your entire workflow so you can focus on what matters. Join 10,000+ professionals who've reclaimed their day.",
"title": "Get 10 Hours Back Every Week",
"caption": "Start Your Free 14-Day Trial",
"cta": "SIGN_UP",
"image": "openclaw_efficiency_1080x1080.jpg"
},
{
"version": "v2_power",
"body": "The AI assistant that actually understands what you want. No prompt engineering required. Just tell OpenClaw your goal and watch it handle the complexity for you.",
"title": "AI That Actually Works",
"caption": "See It In Action →",
"cta": "LEARN_MORE",
"image": "openclaw_power_1080x1080.jpg"
},
]
# Generate ad for each audience × creative combination
for audience in audiences:
for creative in creatives:
ad_set_name = f"{audience['name']} - {creative['version']}"
ad_name = f"OpenClaw Ad - {audience['name']} - {creative['version']}"
# Customize targeting for each audience
row = generator.generate_traffic_campaign(
campaign_name="OpenClaw Q1 2026 Launch",
ad_set_name=ad_set_name,
ad_name=ad_name,
daily_budget=40.00, # $40/day per ad set = $240/day total
target_url="https://openclaw.com/?utm_source=facebook&utm_medium=paid_social",
ad_copy={
'body': creative['body'],
'title': creative['title'],
'caption': creative['caption']
},
image_file=creative['image']
)[0]
# Customize targeting
row["Targeting Age Min"] = audience["age_min"]
row["Targeting Age Max"] = audience["age_max"]
row["Targeting Interests"] = audience["interests"]
# Update UTM tracking
audience_slug = audience["name"].lower().replace(" ", "_")
creative_slug = creative["version"]
row["UTM Campaign"] = "openclaw_q1_2026"
row["UTM Content"] = f"{audience_slug}_{creative_slug}"
# Update Call to Action
row["Call To Action"] = creative["cta"]
all_rows.append(row)
return all_rows
if __name__ == "__main__":
generator = FBAdsCSVGenerator()
print("🚀 Generating Complete Creative Testing Campaign...")
print()
campaign_rows = generate_full_creative_test()
filename = "openclaw_creative_test_campaign.csv"
generator.write_csv(campaign_rows, filename)
print()
print("✨ Campaign Generated Successfully!")
print()
print("📊 Campaign Structure:")
print(f" • Total Ads: {len(campaign_rows)}")
print(f" • Audiences: 3 (Tech Early Adopters, Business Owners, Developers)")
print(f" • Creative Variations: 2 per audience")
print(f" • Daily Budget per Ad Set: $40")
print(f" • Total Daily Budget: ${40 * len(campaign_rows)}")
print()
print("🎯 What This Tests:")
print(" • Which audience responds best")
print(" • Which creative message resonates (efficiency vs power)")
print(" • Which CTA drives more clicks (Sign Up vs Learn More)")
print()
print("📸 Required Images:")
print(" • openclaw_efficiency_1080x1080.jpg")
print(" • openclaw_power_1080x1080.jpg")
print()
print("📋 Import Instructions:")
print(f" 1. Upload both images to your computer")
print(f" 2. Go to Meta Ads Manager")
print(f" 3. Click ⋮ > Import & Export > Import Ads")
print(f" 4. Upload {filename}")
print(f" 5. When prompted, upload both creative files")
print(f" 6. Review and publish all 6 ads at once!")
print()
print("⏱️ Time Saved vs Manual:")
print(" • Manual creation: ~45 minutes (6 ads × 7.5 min each)")
print(" • Bulk upload: ~3 minutes")
print(" • Saved: 42 minutes (93% faster)")
print()
print("🔍 Tracking:")
print(" • All ads have unique UTM_Content for attribution")
print(" • Can track performance by audience + creative in analytics")
print(" • Easy to identify winners and scale")