Introduction
Social Media Studio lets your users connect their social accounts and publish or schedule their generated ad copies and ad creatives across X (Twitter), LinkedIn, Facebook, Instagram, TikTok, YouTube and YouTube Shorts — all from a single composer with a pixel-accurate live preview for every network. Unlike the generation studios, Social Media Studio is a publishing tool: it pulls the caption from an existing Ad Copy and the media from an existing Ad Creative, validates the combination against each network’s rules, then posts immediately, on a schedule, or on an auto-repost cadence. This guide covers the full lifecycle — where to buy it, how to install it, how to register a developer app on each network and wire up its OAuth keys, how to configure pricing and access, the cron requirement for scheduling, and how each tool works.Included Tools
- Compose — the studio. Load a caption from an ad copy (or write/AI-generate one), attach a creative, pick target accounts, preview per network, then publish now / schedule / auto-repost.
- Connections — connect, pause, reactivate or disconnect social accounts via secure OAuth.
- Calendar — a timeline of every upcoming scheduled/auto-repost delivery plus recently published posts.
- Posts — history of every post with per-network status (posted / scheduled / partial / failed), a detail view and delete.
Supported networks
Purchase & Installation
Social Media Studio is distributed through the in-app plugin marketplace — purchasing and installation both happen inside your MagicAds admin. There’s no third-party download.Open the Plugins marketplace
Purchase (if required)
- Free / already owned → installs directly.
- Paid → routes you to the plugin checkout to complete the purchase.
- Extended License holders → plugins flagged “free for Extended License” install without an extra purchase.
Install / activate
- the plugin’s settings (feature flags, AI caption price and every network’s encrypted OAuth app credentials),
- each user’s connected social accounts (with encrypted access/refresh tokens),
- every composed post (caption + media snapshot + schedule),
- and each network target within a post (its own status, remote id, retry and repost bookkeeping).
social-media-studio:publish-due) which the scheduler runs once a minute.Register a developer app for each network
Social Media Studio publishes on behalf of your users through each network’s official API, which requires an OAuth app (a client ID + secret) that you, the platform owner, register once per network. You then paste those credentials into the plugin config and whitelist the plugin’s callback URL. Two things are true for every network below:- Replace
https://your-domain.comwith your real MagicAds URL (itsAPP_URL). - The exact callback URLs to register are shown, pre-filled and read-only, on the Social Media Studio config screen. Copy them from there to avoid typos.
openai_key) and spends credits. The per-network credentials below are only for publishing — they are separate from the social-login keys some platforms also offer.Callback URLs at a glance
X (Twitter)
X uses OAuth 2.0 Authorization Code with PKCE.Create a developer account
Create an App inside the Project
Enable OAuth 2.0 user authentication
Set the callback and permissions
- Callback URI / Redirect URL:
https://your-domain.com/app/social-media-studio/callback/twitter - Website URL: your MagicAds URL.
- App permissions: Read and write (required to post and upload media).
Copy the credentials
Paste into the plugin
tweet.read tweet.write users.read media.write offline.access.
Create an app
Request products
Set the redirect URL
https://your-domain.com/app/social-media-studio/callback/linkedinCopy the credentials
Paste into the plugin
openid profile email w_member_social.
Facebook (Pages)
Facebook publishing uses the Meta Graph API. Connecting a Facebook account creates one connected destination per Page the user administers.Create a Meta app
Add Facebook Login
Set the redirect URI
https://your-domain.com/app/social-media-studio/callback/facebookAdd permissions
pages_show_list, pages_read_engagement, pages_manage_posts, pages_manage_metadata, plus public_profile.Copy the credentials
Paste into the plugin
pages_show_list,pages_read_engagement,pages_manage_posts,pages_manage_metadata,public_profile.
Instagram (Business / Creator)
Instagram publishing also runs through the Meta Graph API, so it requires an Instagram Business or Creator account that is linked to a Facebook Page. You can reuse the same Meta app as Facebook or create a separate one.Use a Meta app with Instagram
Set the redirect URI
https://your-domain.com/app/social-media-studio/callback/instagramAdd permissions
instagram_basic, instagram_content_publish, pages_show_list, pages_read_engagement, business_management.Copy the credentials
Paste into the plugin
instagram_basic,instagram_content_publish,pages_show_list,pages_read_engagement,business_management.
TikTok
TikTok uses the TikTok for Developers Login Kit + Content Posting API.Create a developer app
Add Login Kit and Content Posting API
Set the redirect URI
https://your-domain.com/app/social-media-studio/callback/tiktokRequest scopes
user.info.basic, user.info.profile, video.upload, video.publish, photo.upload.Copy the credentials
Paste into the plugin
user.info.basic,user.info.profile,video.upload,video.publish,photo.upload.
YouTube & YouTube Shorts
Both use one Google Cloud OAuth client and the YouTube Data API v3.Create a Google Cloud project
Enable the YouTube Data API v3
Configure the OAuth consent screen
.../auth/youtube.upload, .../auth/youtube.readonly, .../auth/userinfo.profile, .../auth/userinfo.email.Create an OAuth client ID
https://your-domain.com/app/social-media-studio/callback/youtubehttps://your-domain.com/app/social-media-studio/callback/youtube-shorts
Copy the credentials
Paste into the plugin
youtube.upload, youtube.readonly, userinfo.profile, userinfo.email.
Configure Social Media Studio
Go to Admin → General Settings → Plugins → Social Media Studio (/app/admin/general/plugins/social-media-studio). The screen has these sections.
General
Networks
One card per network with an enable switch, the Client ID / Secret (or Client Key / Secret for TikTok) fields, and the read-only callback URL(s) to copy into that network’s developer app (see Register a developer app). YouTube shows both the YouTube and Shorts callback URLs. A network only appears for users to connect when its switch is on and its credentials are filled.APP_KEY — never in .env and never shown back in plain text after saving.Scheduling — cron requirement
Immediate posts publish during the web request. Scheduled and auto-repost posts are published by a background command that the Laravel scheduler runs every minute. For scheduling to work, the host must run Laravel’s single scheduler cron entry:social-media-studio:publish-due (guarded so it only runs when installed); each minute it publishes everything that’s due and re-arms the next run for auto-repost campaigns until their end date.
Grant access by plan
Access is gated in two layers:- Platform layer — the master Enable Social Media Studio switch must be on.
- User layer — who actually gets the studio:
- Subscribed users (on any plan): access is granted.
- Non-subscribed users (no plan): access only when both Enable Social Media Studio and Free Tier Access are on.
Go-live checklist
Install the plugin
Register developer apps
Add the credentials
Add an OpenAI key (optional)
Set the AI caption rate
Confirm the cron
php artisan schedule:run runs every minute on the server.Enable the feature
Verify as a user
How to Use
All tools live under Social Media Studio in the user sidebar.Connections
Connect an account with one click — the user is sent to the network’s OAuth consent screen and returned with an authorized, encrypted token. From here they can pause (temporarily exclude an account from publishing), reactivate, or disconnect it. Facebook yields one connection per Page; Instagram one per linked Business account; YouTube and Shorts are separate connections.Compose
The studio centerpiece:Caption
Media
Publish to
When
Live preview

