🚀 Auto-Boost & Paid Ads
Integrate your ad accounts to automatically promote your best content. OmniSocial AI monitors post performance in real-time and boosts content that meets your criteria — so you never miss a viral moment.
UniPulse does not yet connect to Meta Ads Manager or TikTok Ads. Today:
- Boost and Auto-Boost create a boost request in UniPulse with status
PENDING. Nothing is created, published or charged on Meta or TikTok. - Pause and Resume change the status in UniPulse only.
- Spend, impressions and clicks are never synced, so the Ads page shows Not synced, and ROAS stays empty.
The Ads page shows a Not connected to Meta Ads banner while this is the case. To promote a post today, boost it in Meta Ads Manager directly.
Connecting Ad Accounts​
Connecting an ad account is not available yet (see the status note above). Boost requests are tracked as AdCampaign records:
| Field | Description |
|---|---|
platform | Ad platform (Meta, TikTok) |
socialAccountId | The connected social account |
platformAdId | The ad ID on the platform |
status | PENDING, ACTIVE_AD, PAUSED_AD, COMPLETED_AD, or FAILED_AD |
budget | Campaign budget amount |
currency | Budget currency |
duration | How long the ad runs |
targetingConfig | JSON object with audience targeting rules |
impressions | Total ad impressions |
clicks | Total clicks |
spend | Actual amount spent |
conversions | Total conversions tracked |
Auto-Boost Rules​
Auto-Boost rules continuously monitor your post performance and automatically create paid promotions when posts meet your criteria.
Creating a Rule​
Each rule is stored as an AutoBoostRule:
| Field | Description |
|---|---|
name | Rule name (e.g., "Boost viral Reels") |
isActive | Whether the rule is currently enabled |
platform | Which platform to monitor |
metric | The metric to watch (likes, comments, shares, engagementRate, reach, etc.) |
operator | Comparison operator (gt, gte, lt, lte, eq) |
threshold | The target value (e.g., 100 likes, 5% engagement rate) |
timeWindowHours | Time window for evaluation (e.g., "within 2 hours of publishing") |
budget | Budget to allocate per boost |
currency | Budget currency |
duration | How long the boosted ad should run |
targetingConfig | JSON audience targeting configuration |
maxBoostsPerDay | Safety cap to prevent overspending |
Example Rules​
| Rule | Configuration |
|---|---|
| "Boost posts with 100+ likes in 2 hours" | metric: likes, operator: gt, threshold: 100, timeWindowHours: 2, budget: 25 |
| "Promote high-engagement product posts" | metric: engagementRate, operator: gte, threshold: 5, timeWindowHours: 6, budget: 50 |
| "Auto-boost Reels with high reach" | metric: reach, operator: gt, threshold: 10000, timeWindowHours: 12, budget: 30 |
Always set maxBoostsPerDay to prevent runaway spending. If multiple posts meet your criteria on the same day, the system respects this cap and prioritizes the highest-performing posts.
Manual Promotion​
You can also manually boost any post by selecting it and clicking Boost:
- Budget — Set the amount to spend
- Duration — How long the promotion runs
- Targeting — Define your audience (demographics, interests, lookalike)
- Objective — Choose between reach, engagement, or conversions
This creates an AdCampaign with status PENDING, which transitions to ACTIVE_AD once the platform approves it.
Ad Campaign Lifecycle​
| Status | Description |
|---|---|
PENDING | Boost request recorded in UniPulse. Not sent to the ad platform (no ad-platform integration yet) |
ACTIVE_AD | Ad is live and running |
PAUSED_AD | Ad temporarily paused |
COMPLETED_AD | Ad finished its scheduled duration |
FAILED_AD | Ad was rejected or encountered an error |
When a boost_post action fires (either from an Auto-Boost rule or a workflow), the system creates a PENDING AdCampaign record in UniPulse. It is not submitted to the platform's API, and no impressions, clicks or spend are tracked until an ad-platform integration exists.
Resume & Edit Campaigns​
Resuming Paused Campaigns​
Paused campaigns can be resumed at any time:
- Navigate to Boost & Promote
- Find the paused campaign
- Click the Resume button
The campaign will immediately return to ACTIVE_AD status and continue delivering.
Editing Auto-Boost Rules​
Previously created rules can now be edited inline:
- Click the pencil icon next to any rule
- Modify the rule parameters (metric, threshold, budget, etc.)
- Click Save Changes
Deleting Rules​
Deleting a rule requires confirmation to prevent accidental removal. Click the trash icon and confirm in the dialog.
Campaign Filters & Pagination​
The campaigns list now supports:
- Status filter — Show only Active, Paused, Pending, Completed, or Failed campaigns
- Platform filter — Filter by Facebook, Instagram, or TikTok
- Pagination — Navigate through large campaign lists with previous/next controls
AI Boost Suggestions​
OmniSocial AI automatically identifies your best-performing unboosted posts and suggests them for promotion:
- Posts must have 50%+ higher engagement than your workspace average
- Suggestions include a recommended budget based on performance multiplier
- Each suggestion shows a confidence score and the reason (viral potential, high engagement, or above average)
Access suggestions via the Boost & Promote page or the API endpoint GET /ads/suggestions.
Ad Performance Tracking​
Track ad spend and ROI in Analytics > Ads:
These figures need ad-platform sync, which is not available yet. Until then they show Not synced (or "—"), never zero.
| Metric | Description |
|---|---|
| Impressions | Total times the ad was shown |
| Clicks | Total ad clicks |
| Spend | Total amount spent |
| Conversions | Total attributed conversions |
| Cost per Engagement | Spend / total engagements |
| Cost per Click (CPC) | Spend / clicks |
| Return on Ad Spend (ROAS) | Revenue / spend |
| Reach: Paid vs. Organic | Comparison of boosted reach vs. organic reach |
Compare the ROAS of auto-boosted posts vs. manually promoted ones to fine-tune your Auto-Boost rules. The AI Advisor also provides recommendations for optimizing your ad spend.
Integration with Workflows​
The boost_post action is available as a node in the Workflow Builder. This gives you more flexibility than standalone Auto-Boost rules because you can:
- Chain conditions (e.g., boost only Reels on Instagram with engagement > 5%)
- Add delays (e.g., wait 3 hours, then check performance, then boost)
- Combine with other actions (e.g., boost AND send a notification to the team)
- Use AI content repurposing before boosting on a different platform
See Triggers & Actions for workflow configuration details.
Integration with Predictions​
Combine Auto-Boost with Predictive Analytics for proactive promotion:
- Posts with high virality scores can be boosted immediately rather than waiting for organic traction
- Posts with high predicted ROAS can receive larger ad budgets
- Posts with low predicted performance can be excluded from auto-boosting to save budget
Related Pages​
- Workflow Builder — Build complex automation flows that include boosting
- Triggers & Actions — Reference for the
boost_postaction node - Revenue Attribution — Track ROAS and conversions from boosted posts
- Predictions — Predict which posts deserve ad spend
- Dashboard — See ad performance in the overall analytics view