content:
FAQ SOP: I used 'admin' as my username — how do I fix it safely?

You cannot rename a username in the dashboard. Do it by migration.

— Step 1: Create a new Administrator with a non-obvious username and a strong password.
— Step 2: Log out, log back in as the new admin.
— Step 3: Delete the old 'admin' user. When prompted, attribute all content to the new user — do not delete the posts.
— Step 4: Confirm the display name is not the same as the login name (display names leak in author URLs).
— Step 5: Verify: visit /?author=1 and confirm it does not expose a guessable login.

Half of brute-force traffic targets 'admin' literally. Remove the free hint.

Run this on every legacy site you inherit.


network: usawave

cluster: webmaster

channel_name: Lockdown Ledger

format: evergreen

content:
FAQ SOP: Is plain FTP really that bad? What do I use instead?

Yes, it is bad. FTP sends your password in cleartext. Switch with this checklist.

— Step 1: Disable FTP (port 21) at the host entirely.
— Step 2: Use SFTP (port 22) or SSH key auth only.
— Step 3: Generate a key pair: ssh-keygen -t ed25519. Add the public key to the server.
— Step 4: Disable password SSH login: PasswordAuthentication no in sshd_config.
— Step 5: Verify: try connecting with FTP and confirm it is refused; confirm SFTP with key works.

Anyone on the same network as you can sniff an FTP password. SFTP encrypts the whole session.

Run this on every server you touch.


content:
FAQ SOP: How often should I back up, and where?

"Sometimes" is not a backup plan. Follow 3-2-1.

— Frequency: daily for the database, weekly for full files. Hourly DB if you take orders.
— Copies: keep 3 total, on 2 different media, with 1 off-site.
— Off-site: push to S3 / Backblaze, never only on the same server.
— Retention: keep 30 days. Ransomware often sits quiet for weeks.
— Test restores monthly — an untested backup is a guess.

— Verify: restore last night's DB to a staging site and confirm it loads.

A backup you have never restored is not a backup. Prove it works.

Run this review every month.


content:
<b>FAQ SOP: How do I know if a plugin is safe to install?</b>

Most hacks start with one bad plugin. Vet before you click install.

— Check 1: Last updated within 6 months. Abandoned code = unpatched holes.
— Check 2: Active installs above 1,000 and a review average over 4 stars.
— Check 3: Search "[plugin name] CVE" and "[plugin name] vulnerability".
— Check 4: Confirm the developer responds in the support forum.
— Check 5: Install on staging first; watch error logs for a day.

— Verify: after install, run a malware scan to catch anything bundled.

Nulled or pirated plugins are the worst offenders — they frequently ship with injected backdoors. Never use them.

Run this before every new plugin.


content:
<b>FAQ SOP: I have the padlock / HTTPS — am I secure now?</b>

The padlock means encrypted transport, nothing more. Finish the job.

— Step 1: Force HTTPS site-wide with a 301 redirect, not just the homepage.
— Step 2: Fix mixed content — update internal http:// links and asset URLs to https://.
— Step 3: Add HSTS so browsers refuse to downgrade.
— Step 4: Set auto-renewal for the certificate; an expired cert breaks the whole site.
— Step 5: Verify: open DevTools console and confirm zero mixed-content warnings.

HTTPS protects data in transit. It does nothing against a weak password, a stale plugin, or a writable file. It is step one, not the finish line.

Run this check on every domain.


content:
FAQ SOP: On cheap shared hosting, can a neighbor's hack reach me?

Yes, if accounts are not isolated. Reduce the blast radius.

— Step 1: Ask the host whether accounts are CageFS / open_basedir isolated. If they cannot answer, that is your answer.
— Step 2: Confirm your files are not world-readable: find . -perm -o+r -name 'wp-config.php' should return nothing.
— Step 3: Use a unique database user and prefix per site, never shared.
— Step 4: Disable directory listing in .htaccess: Options -Indexes.
— Step 5: Verify: try browsing a folder with no index file and confirm a 403.

Cross-account contamination is a real shared-hosting failure mode. Isolation or upgrade.

Run this audit when you onboard any host.


content:
FAQ SOP: Should I hide my WordPress version number?

Hiding it is cosmetic — patching is the real fix. Do both, in order.

— Step 1: Patch first. Enable auto-updates for minor core releases and security plugin updates.
— Step 2: Remove the generator meta tag: remove_action('wp_head','wp_generator');.
— Step 3: Strip the ?ver= query string from enqueued scripts so plugin versions stop leaking.
— Step 4: Block readme.html and license.txt at the server.
— Step 5: Verify: view page source and confirm no <meta name="generator"> line.

Hiding the version slows targeted scanners by minutes. An unpatched site is found anyway. Patch, then hide.

Run this on every install.


content:
FAQ SOP: Does changing the wp_ database prefix help?

Marginally. It blunts some automated SQL-injection payloads. Set it correctly, once.

— Step 1: Best done at install — pick a random prefix like x7k2_ in wp-config.php.
— Step 2: Changing it on a live site is risky: edit wp-config, rename all tables, and update two option rows plus usermeta keys.
— Step 3: Back up the full database before touching anything.
— Step 4: Use a tested plugin for the rename rather than manual SQL if unsure.
— Step 5: Verify: log in and confirm capabilities and roles still work — a missed usermeta key locks you out.

It is a small hardening layer, not a fix for injection itself. Patch your code too.

Run this at install, carefully later.


content:
FAQ SOP: Should I turn off the theme/plugin code editor in wp-admin?

Yes. That built-in editor lets a compromised admin account rewrite your whole site instantly. Disable it.

— Step 1: Add to wp-config.php: define('DISALLOW_FILE_EDIT', true);.
— Step 2: To also block uploads-based installs, add define('DISALLOW_FILE_MODS', true); (this stops plugin/theme installs too — use only where you deploy via Git).
— Step 3: Confirm your deploy pipeline still works after the second constant.
— Step 4: Verify: in Appearance and Plugins menus, the "Editor" option is gone.

This turns a stolen admin session from "edit the database" into "cannot inject PHP through the dashboard." Cheap, high-value.

Run this on every install.


content:
FAQ SOP: Is the WordPress REST API a security hole I should close?

Do not close it — Gutenberg and many plugins need it. Restrict the leaky parts.

— Step 1: Do not fully disable /wp-json; that breaks the editor.
— Step 2: Block unauthenticated user enumeration: deny anonymous access to /wp-json/wp/v2/users.
— Step 3: Require authentication for all write methods (POST/PUT/DELETE).
— Step 4: Rate-limit /wp-json at the edge to stop scraping.
— Step 5: Verify: as a logged-out visitor, hit /wp-json/wp/v2/users and confirm it returns no usernames.

The risk is enumeration, not the API itself. Lock the user endpoint, keep the rest.

Run this on every new site.


content:
FAQ SOP: I think I'm hacked — what do I do first?

Stay methodical. Do these in order, do not skip.

— Step 1: Take the site offline or into maintenance mode to stop further damage and visitor infection.
— Step 2: Rotate everything: all admin passwords, the database password, and the wp-config salts.
— Step 3: Audit users — delete any Administrator you did not create.
— Step 4: Scan for modified core files: wp core verify-checksums.
— Step 5: Restore from a known-clean backup rather than cleaning in place if you cannot find the entry point.
— Step 6: Only then reopen the site, and watch logs for 48 hours.

Do not just delete the visible defacement — find how they got in first.

Run this whenever something looks wrong.


cluster: affiliate

channel_name: Smartlink Ops

content:
SOP: Build your first fallback chain
Beginners ask "what happens if my main offer dies at 3am?" A fallback chain answers that. It's an ordered list the smartlink walks down until something pays.

Step 1 — List offers by EPC, highest first. That's your default order.
Step 2 — Tag each with a trigger: cap_reached, geo_blocked, offer_paused, no_payout.
Step 3 — Set the last slot to a guaranteed catch-all (in-house page or a default CPI offer), never a dead URL.
Step 4 — Test by force-pausing slot 1 and confirming traffic lands on slot 2, not a 404.

Rule: every chain ends in something that returns 200, even if payout is low. A click on a dead link earns zero.

Repeat the force-pause test weekly.


content:
<b>FAQ: Weights vs priority — which do I use?</b>
Beginners mix these up and split traffic the wrong way.

Priority = ordered fallback. Offer 2 only runs if Offer 1 is unavailable. Use for "backup," not for testing.

Weight = simultaneous split. 70/30 means both run at once, sharing live traffic. Use for A/B and scaling proven offers.

SOP to decide:
☐ Testing two unknowns? Weight 50/50.
☐ One proven, one new? Weight 80/20, not 50/50 — protect revenue.
☐ One main, one safety net? Priority, weight stays 100/0.
☐ Three offers, all capped? Priority order by cap reset time.

Common mistake: setting weights AND priorities on the same group. Pick one mode per rotation, or the router behaves unpredictably.

Review weights weekly; promote the winner, drop the loser to backup.


content:
<b>SOP: Your first geo rule</b>
New operators ask "how do I send US to one offer and everyone else to another?" Build it in this order.

Step 1 — Create a Tier 1 group: US, UK, CA, AU. Point it at your highest-payout offer.
Step 2 — Create a Tier 2/3 catch-all for everything else. Never leave "rest of world" unmapped.
Step 3 — Set rule evaluation order: most specific country first, broad region last. The router stops at the first match.
Step 4 — Add a default at the bottom so an unrecognized GEO still routes somewhere paying.

Check: use a VPN to hit the link from US, DE, and IN. Confirm three different (correct) destinations.

Mistake to avoid: mapping by language instead of country. A German speaker in Switzerland is not Germany.

Re-verify GEO mapping weekly.


content:
SOP: Split traffic by device
"My mobile offer converts but desktop tanks" — fix it with device routing.

Step 1 — Read the User-Agent the router parses: mobile, tablet, desktop. Treat tablet as its own bucket, not "mobile."
Step 2 — Map mobile to app-install / click-to-call offers, desktop to form-fill / longer flows.
Step 3 — Inside mobile, split iOS vs Android — payout and creatives differ. Don't lump them.
Step 4 — Set a default for unknown UA strings (bots, odd browsers) pointing to a safe low-risk offer.

Check: open the link on a real phone and a laptop. Confirm two destinations. Emulators lie about UA — use real hardware once.

Mistake: routing on screen width instead of UA. A maximized desktop window can read "narrow." Use UA.

Re-test device splits weekly.


content:
<b>FAQ: What is a cap and why did my offer stop?</b>
A cap is the max conversions (or clicks) an advertiser accepts in a period. Hit it, and the offer goes dead — but your traffic keeps coming.

Three cap types to know:
— Daily cap: resets at advertiser midnight (often their timezone, not yours).
— Monthly cap: total budget ceiling.
— Click cap: limits raw clicks regardless of conversions.

SOP when an offer caps mid-day:
☐ Confirm it's a cap, not a pause (check the network dashboard).
☐ Verify your fallback fired — traffic should already be on the next offer.
☐ Note the reset time in the advertiser's timezone.
☐ Schedule the offer back to slot 1 at reset.

Mistake: assuming caps reset on YOUR midnight. Always confirm the advertiser timezone.

Log cap-hits daily; adjust weights so you don't waste traffic against a known ceiling.


content:
<b>FAQ: What is a dedup window?</b>
Deduplication stops the same user counting twice. New operators ask "why did I get billed/credited for one person twice?" — usually a missing dedup window.

The window = a time span where a repeat from the same identifier is ignored.

SOP to set it:
Step 1 — Pick the identifier: click_id is best, IP+UA is a fallback, raw IP alone is too broad (kills shared networks).
Step 2 — Set window length to match the offer: 24h for installs, 1h for content unlocks, 30 days for trials.
Step 3 — Decide behavior on a duplicate: block, or route to a different offer (recycle the traffic).
Step 4 — Test by clicking twice fast; the second should follow your dedup rule.

Mistake: deduping on IP alone behind carrier NAT — you'll drop real distinct users.

Audit dedup hits weekly.


content:
<b>FAQ: Smartlink vs direct link — when do I need one?</b>
Beginners over-build. Use this decision checklist before adding a smartlink layer.

☐ One offer, one GEO, one device? Direct link. A smartlink adds a redirect hop for nothing.
☐ Mixed GEO traffic? Smartlink — you need geo routing.
☐ Offer caps or pauses often? Smartlink — you need fallback.
☐ Testing multiple offers? Smartlink — you need weight splits.
☐ Mobile + desktop mixed? Smartlink — device routing.

The cost of a smartlink: one extra redirect (10–50ms) and one more failure point. Only pay it when routing logic earns more than the hop costs.

SOP: start direct. Add smartlink the moment you need a second rule. Don't build routing for traffic you don't have yet.

Review each link monthly — kill smartlinks that now serve only one destination.


content:
<b>Checklist: QA a smartlink before sending traffic</b>
Never launch on faith. Run this before the first paid click.

☐ Link returns 200, not 301-loop or 404.
☐ Each GEO branch tested via VPN (at least Tier 1 + rest-of-world).
☐ Mobile and desktop both resolve correctly.
☐ Fallback fires — force-pause slot 1, confirm slot 2 loads.
☐ Click_id / sub_id passes through to the final offer (check the network's click log).
☐ Postback URL fires a test conversion successfully.
☐ Redirect time under ~300ms (longer leaks clicks).
☐ No mixed content / SSL warning on any hop.
☐ Default catch-all set for unmatched traffic.

If any box fails, the link is not live — it's a draft.

Run this full pass before every new link, and re-run the postback + fallback checks weekly on live links.


content:
<b>SOP: Clicks but zero conversions — diagnose in order</b>
Beginners panic. Work top-down; stop at the first failure.

Step 1 — Is the offer live? Check the network dashboard, not your assumption. Paused offers still take clicks.
Step 2 — Is tracking passing? Open the final URL and confirm your click_id is in it. No ID = no attribution.
Step 3 — Did the postback fire? Send a manual test conversion. If it doesn't register, fix the postback before anything else.
Step 4 — Geo/device mismatch? Confirm your traffic's GEO actually matches the offer's allowed GEO.
Step 5 — Cap hit? A capped offer accepts clicks but credits nothing.

Mistake: changing creatives first. Routing and tracking break conversions far more often than creative does.

Run this diagnostic any time CR drops to zero, before touching ads.


content:
<b>FAQ: 301, 302, or meta refresh — which redirect?</b>
The redirect type changes tracking and speed. New operators pick wrong and lose referrer or click_id.

— 302 (temporary): default for smartlinks. Routing changes constantly, so destinations should never be "permanent."
— 301 (permanent): browsers cache it. Use it and a user can get stuck on yesterday's offer. Avoid for rotating links.
— Meta refresh / JS redirect: slower, can break sub_id passing, but preserves referrer in some flows.

SOP:
☐ Rotating offers → 302.
☐ Need referrer preserved → test JS redirect on a staging link first.
☐ Never 301 a smartlink you plan to re-route.
☐ Confirm click_id survives the chosen method (check final URL).

Mistake: 301 then wondering why paused offers still get traffic — that's the browser cache.

Spot-check redirect type quarterly per link.


content:
<b>FAQ: How many offers should I put in one rotation?</b>
Beginners stuff 10 offers in and can't read the data. Use this sizing rule.

SOP:
Step 1 — Cap a test rotation at 3–4 offers. More than that and traffic spreads too thin to reach significance.
Step 2 — Need ~100 conversions per offer before judging. Divide your daily volume to see if 4 offers can each reach that in a reasonable window.
Step 3 — Low volume? Run 2 offers, not 4. Statistical reads need concentration.
Step 4 — Always reserve one slot as fallback, separate from the test slots.

Math check: 1,000 clicks/day at 2% CR = 20 conversions/day total. Across 4 offers that's 5 each — far too slow. Drop to 2.

Mistake: adding offers to "see what sticks." That just delays every decision.

Review rotation size weekly against your real volume.


content:
SOP: Pass sub_id through the whole chain
"My stats are blank per-source" almost always means sub_id isn't passing. Fix it methodically.

Step 1 — Decide your token at the traffic source: {sub_id}, {zone}, {campaign} — whatever the source supports.
Step 2 — Map it into the smartlink's incoming parameter (often s1 / sub1).
Step 3 — Map that parameter OUT to the offer's expected token. Both ends must connect.
Step 4 — Click through and read the final URL. Your real zone value must appear, not the literal {zone} string.

Mistake: the macro stays un-replaced (you see {zone} in the final URL) — the source token name is wrong.

Second mistake: passing in but not mapping out. Data dies at the smartlink.

Verify sub_id end-to-end weekly; one broken source corrupts optimization.


content:
<b>FAQ: What's a default route and do I need one?</b>
Yes. The default (catch-all) is where traffic goes when NO rule matches. Skip it and unmatched clicks hit a blank or error.

What lands on default:
— GEOs you didn't map.
— Unknown / bot User-Agents.
— Every offer in the chain capped or paused at once.

SOP:
Step 1 — Set the default to something that always returns 200 — in-house page or an evergreen broad-GEO offer.
Step 2 — Never point default at a high-payout, GEO-restricted offer; mismatched traffic just wastes it.
Step 3 — Monitor how much traffic hits default. Over ~5% means your rules have gaps to map.
Step 4 — Log default hits by GEO to find which countries to add as real rules.

Mistake: leaving default empty. That's a guaranteed 404 on your edge cases.

Review default traffic share weekly.


content:
FAQ: Postback or pixel — how do conversions get back to me?
Beginners confuse the two and double-count or lose conversions.

— Postback (server-to-server): the network's server calls your tracker's URL with the click_id. No browser needed. Most reliable. Default choice.
— Pixel (browser): fires JS/image on the thank-you page. Breaks with ad-blockers, app webviews, and cross-domain. Use only when S2S isn't offered.

SOP to set a postback:
Step 1 — Copy your tracker's postback URL with {click_id} and {payout} tokens.
Step 2 — Paste into the network's postback field.
Step 3 — Fire a test conversion; confirm it lands with the correct click_id.
Step 4 — Never run postback AND pixel for the same event — that double-counts.

Mistake: leaving payout token empty, so revenue reads zero.

Send a test postback after any tracking change.


content:
<b>SOP: Test a routing rule without spending on ads</b>
Beginners launch live to "see what happens." Test first, for free.

Step 1 — Use a VPN to hit the link from each target GEO. Confirm correct destination per country.
Step 2 — Use browser dev-tools device emulation for a quick UA check, then confirm on one real phone (emulators misreport).
Step 3 — Append a test sub_id and click through; read the final URL for correct pass-through.
Step 4 — Force-pause slot 1 to verify fallback, then un-pause.
Step 5 — Fire one test postback to confirm conversions register.

Keep a saved checklist of test GEOs/devices per smartlink so re-testing is one pass, not a guess.

Mistake: testing only your home GEO/device and assuming the rest work.

Run this dry test before every launch and after any rule edit.


content:
<b>SOP: Find where clicks are leaking</b>
"Source says 1,000 clicks, tracker shows 700." That 30% gap is a leak. Trace it in order.

Step 1 — Compare source clicks vs smartlink entry clicks. Gap here = redirect too slow or blocked before arrival.
Step 2 — Compare smartlink entry vs offer landing. Gap here = a broken branch, 404, or SSL warning on one route.
Step 3 — Check redirect latency. Over ~500ms and impatient users bounce mid-hop.
Step 4 — Check for redirect loops (A→B→A) — they burn clicks and time out.
Step 5 — Confirm no hop strips the click_id; "lost" clicks are sometimes just untracked, not gone.

Mistake: blaming the source first. Most leaks are inside your own chain.

Reconcile source vs tracker numbers weekly; investigate any gap over ~10%.


content:
<b>FAQ: Can I route by time of day, and should I?</b>
Yes — dayparting routes traffic differently by hour. Useful when offers have call-center hours or caps that reset daily.

SOP:
Step 1 — Set the schedule in ONE explicit timezone (usually the advertiser's). Mark it on the rule so you don't confuse yourself.
Step 2 — Route call-center / form offers to live hours; send off-hours traffic to a 24/7 offer (app install, content).
Step 3 — For daily-cap offers, weight harder early after reset, ease off as the cap fills.
Step 4 — Test by changing your system clock or using a scheduling preview if the platform offers one.

Mistake: building dayparting before you have hourly conversion data. Don't restrict hours on a hunch — measure first.

Mistake: mixing user-local and advertiser timezones in one rule set.

Review hourly conversion patterns weekly before adjusting dayparts.


content:
SOP: Name smartlinks so you can manage them later
Beginners name links "test1," "final," "final2" — then can't tell them apart in a month. Adopt a convention on day one.

Format: geo_vertical_device_source_vNN
Example: us_dating_mob_pushA_v03

SOP:
☐ GEO first — fastest filter when scanning a list.
☐ Vertical second — groups related links.
☐ Device + source — explains why two near-identical links exist.
☐ Version number — never overwrite; increment so you can roll back.
☐ No spaces, lowercase, underscores only — survives URLs and exports.

Mistake: encoding payout or date in the name — those change; the link's identity shouldn't.

Keep one master sheet mapping link name → smartlink ID → purpose.

Audit names monthly; rename strays before the list grows past memory.


content:
<b>SOP: When to pull an offer from rotation</b>
Beginners yank offers too early on noise, or leave dead ones bleeding traffic. Use thresholds, not feelings.

Step 1 — Set a minimum sample: don't judge before ~100 clicks or ~100 conversions for the rotation, whichever the metric needs.
Step 2 — Pause for performance only after the sample: if CR or EPC sits clearly below the rotation average across that sample, drop to backup.
Step 3 — Pause immediately, no sample needed, for: offer returns 404, postback fails, or advertiser marks it paused/capped.
Step 4 — Demote, don't delete — move losers to fallback so they still catch overflow.

Mistake: pausing after 20 clicks because "it feels low." That's variance, not signal.

Mistake: ignoring a 404 because EPC "was good yesterday."

Review rotation performance weekly; act on sampled data, react instantly to broken links.


cluster: smm

channel_name: UGC Ops Manual

content:
<b>FAQ: "What do I charge for my first UGC video?"</b>

Stop guessing. Run the floor-rate formula instead.

— Time it: a 30s talking-head ad is 4-6 hrs (scripting, shooting, 3 takes, edit, exports)
— Set your floor: pick your target hourly (say $25) and multiply. 5 hrs = $125 floor
— Add usage: organic-only = floor. Paid ads = +50%. Whitelisting = +100%
— Bundle, don't itemize: quote "$150 per video, 3-video pack $400"

New creators undercharge because they quote a number, not a calculation.

Save this. Recalculate per brief, not per mood. Rinse and repeat until your floor rises.


content:
<b>FAQ: "How many revisions should I include?"</b>

The answer is a policy, not a number you decide per client.

Standardize this revision policy in every quote:

— Included: 2 rounds of revisions
— Round 1 = structural (reorder hooks, reshoot a scene)
— Round 2 = polish (captions, trim, music swap)
— Round 3+ = $25/round or 20% of project fee
— Reshoots from new direction = new project, not a revision

The trap: "unlimited revisions" sounds generous and quietly kills your hourly rate.

Paste the 5 lines above into your contract and brief. Same policy, every client. No negotiation mid-project.


content:
FAQ: "What files do I actually send the brand?"

Most beginners send one MP4 and look amateur. Here's the standard delivery package.

The 5-file UGC handoff checklist:

— Hero cut: 9:16, 1080x1920, with captions burned in
— Clean version: same edit, no captions (brand may localize)
— Raw selects: 3-5 best clips, untrimmed, for their editor
— Hook variants: 2 alternate openers as separate clips
— Spec sheet: a one-line text file with codec, length, aspect ratio

Deliver via one shared folder, named Brand_Project_YYYYMMDD.

Save this list. Send all 5 every time and you look like an agency, not a hobbyist.


content:
<b>FAQ: "Where do I find my first paying brands?"</b>

Not "post and pray." Run a repeatable sourcing workflow.

The weekly 30-brand pipeline:

— Step 1: list 10 products you already use and own
— Step 2: check each brand's Instagram for "UGC" or "creators" in bio
— Step 3: find 20 more via competitor ads in the Meta Ad Library
— Step 4: log all 30 in a sheet: name, email, ad-status, contacted-date
— Step 5: send 10 pitches/day, follow up at day 4 and day 9

The job isn't finding one brand. It's running the same 5 steps every Monday.

Save the pipeline. Rinse and repeat weekly.


content:
<b>FAQ: "Do I need an LLC to start?"</b>

No. You need an invoicing system. Here's the minimum legal-and-money setup before video #1.

The solo-creator setup checklist:

— Operate as a sole proprietor using your legal name (US) until ~$30k/yr
— Separate bank account for UGC income only
— Invoicing tool: Wave or Stripe Invoicing (both free to start)
— A 1-page contract: scope, fee, usage rights, revision policy, payment terms
— A W-9 ready to send (US clients will ask)

An LLC is a later optimization, not a starting gate.

Save this. Set it up once, then every new client plugs into the same system.


content:
<b>FAQ: "How fast should I deliver?"</b>

Don't promise "ASAP." Quote a standard turnaround so you never overcommit.

The turnaround standard (state it in every brief):

— Brief approved to first draft: 5 business days
— Revision rounds: 2 business days each
— Rush (under 48 hrs): +35% fee, only if your calendar allows
— Clock starts when YOU receive product + brief, not at booking

Why it matters: vague timelines mean clients assume tomorrow, and you burn weekends.

Write "5 business days from product receipt" into your template. Same line, every project. Predictable for them, protected for you.


content:
<b>FAQ: "What gear do I actually need to start?"</b>

Not a cinema rig. A repeatable kit you can pack in 5 minutes.

The starter UGC kit checklist:

— Phone: any iPhone 12+ or recent Android, shoot 4K/30 or 1080/60
— Light: one ring light OR a window (face the light, never backlit)
— Audio: a $25 lavalier clip mic — bad audio kills more clips than bad video
— Stability: a $15 tripod with a phone clamp
— Editing: CapCut (free), one project template you reuse

That's under $50 of additions to a phone you own.

Save the kit. Same 5 items, every shoot. Upgrade only when a paying gap demands it.


content:
<b>FAQ: "Client went quiet after I delivered. Now what?"</b>

Run the follow-up sequence. Don't sit and stew.

The post-delivery follow-up SOP:

— Day 0: deliver with a clear line: "Files attached. Invoice due net-15."
— Day 3: "Confirming you received everything OK?"
— Day 8: "Following up on the invoice sent [date]."
— Day 15 (due date): "Invoice is now due today, link here."
— Day 22: late-fee notice per your contract (1.5%/mo is standard)

The fix is upstream: net-15 terms and a late-fee clause stop most ghosting before it starts.

Save the sequence. Same 5 touches, every silent client.


content:
<b>FAQ: "How do I write a hook that actually works?"</b>

Stop improvising openers. Use the hook formula bank.

Write 3 hooks per brief, one from each category:

— Problem-callout: "If your [X] keeps [problem], stop doing this."
— Curiosity-gap: "I didn't expect [product] to fix [problem], but..."
— Direct result: "This is the [product] that [specific outcome] in [time]."

Rules for all three:
— First 3 words name the viewer's problem or desire
— Spoken in under 2 seconds
— No "hey guys" — that's not a hook, it's a stall

Save the 3 categories. Always shoot 3 hook variants so the brand A/B tests, not you guessing.


content:
<b>FAQ: "What are usage rights and what do I grant?"</b>

Usage rights = where, how long, and on what platforms the brand can run your content. Price each one. Here's the menu.

The usage-rights checklist (set defaults):

— Organic social: included, 12 months
— Paid ads (Meta/TikTok): +50% of base, specify duration
— Whitelisting (ads from YOUR handle): +100%, 90-day blocks
— Website/email: +25%
— Perpetual/buyout: 3-4x base, last resort

Never grant "all rights, forever" by accident — that's a buyout you didn't charge for.

Save the menu. Quote rights as line items, not an afterthought. Standardize and repeat.


content:
<b>FAQ: "A brand sent a brief. What am I checking for?"</b>

Don't skim it. Run the brief-intake checklist before you accept.

The 7-point brief review:

— Deliverables: how many videos, what lengths, what aspect ratios?
— Hook direction: do they want a specific angle or your call?
— Talking points: are the must-say claims listed (and legally safe)?
— Usage: organic only, or paid? For how long?
— Examples: did they link 2-3 reference videos?
— Deadline + product-ship date: realistic gap?
— Fee + payment terms: stated in writing?

If 2+ are missing, send your intake questions before quoting.

Save this. Same 7 checks on every brief. Never start blind.


content:
<b>FAQ: "Do I have to show my face?"</b>

No. But pick a lane and build a repeatable format for it.

The 3 faceless UGC formats you can standardize:

— Hands-and-product: overhead unboxing, demo, ASMR-style. Tripod + overhead arm.
— Voiceover + b-roll: you narrate, footage shows the product. Script first, shoot to it.
— POV/GRWM no-face: chest-down framing, product in frame, captions carry the message.

For each: write one reusable shot list so every video follows the same beats.

Faceless pays less per video on average, so make up margin with speed.

Save the 3 formats. Master one shot list before adding a second.


content:
<b>FAQ: "Should I take free product instead of payment?"</b>

Sometimes. But run it through the gifting decision checklist first.

Accept product-only ONLY if 3+ are true:

— Product retail value is over $150
— You keep the product (not a loaner)
— Usage is organic-only, capped at 90 days
— It's a brand you'd genuinely feature in your portfolio
— They're not running it as a paid ad (that's free labor for their ROAS)

If they want paid-ad rights for free product: decline or quote cash.

The rule: gifting builds portfolio early, never builds a business.

Save the checklist. Set a hard date — "3 months, then paid-only."


content:
<b>FAQ: "What do I write in a cold pitch?"</b>

Not your life story. Use the 4-line outreach template.

Copy-paste and fill the brackets:

— Line 1: "Hi [name], I'm a UGC creator in the [niche] space."
— Line 2: "I noticed [brand] is running [specific ad/product] — I make [format] that fits it."
— Line 3: "Here are 2 samples: [link]. Rate from $[X]/video."
— Line 4: "Want me to send 1-2 concept ideas for [product]?"

No emojis, no "I'd love the opportunity," no attachments (they trip spam filters).

Save the template. Personalize line 2 only. Send 10/day and rinse and repeat.


content:
<b>FAQ: "How do I build a portfolio with zero clients?"</b>

You make spec work. Run the 5-video starter portfolio build.

The zero-to-portfolio checklist:

— Pick 5 products you own across 2-3 niches
— Make one video per product, each a DIFFERENT format (review, unboxing, problem-solution, GRWM, demo)
— Treat each like a real brief: hook, talking points, captions, 9:16
— Build a 1-page portfolio: 5 thumbnails, each linking to the clip
— Host on a Google Drive folder or a free Notion page

Goal: show range and format-fluency, not follower count.

Save the build. 5 videos, 5 formats, one week. Then start pitching.


content:
<b>FAQ: "What format and specs do I export in?"</b>

Don't ask the client every time. Default to the spec standard, override only on request.

The export spec standard:

— Aspect ratio: 9:16 vertical (default for TikTok, Reels, Shorts)
— Resolution: 1080x1920
— Frame rate: match your footage — 30fps standard
— Format: H.264 MP4, under 287MB for TikTok
— Captions: burned-in on the hero cut, off on the clean version
— Audio: -14 LUFS, no clipping

If a brand needs 1:1 or 16:9, that's a separate export — list it as a deliverable.

Save the specs. Same export settings, every time. Standardize and stop second-guessing.


content:
<b>FAQ: "Client says my rate is too high. How do I respond?"</b>

Don't drop the price. Adjust the scope. Use the trade-down script.

The rate-objection SOP:

— Never say "sure, I can do less." Say: "I can hit that budget by adjusting scope."
— Then remove value, not price: cut one deliverable, drop a revision round, or limit usage to 6 months
— Offer a tier: "$150 full package, or $100 for 1 video, organic-only, 1 revision."
— Hold your per-unit rate — let THEM choose less

The principle: a discount trains the next client. A trade-down protects your rate.

Save the script. Same response, every haggle.


content:
FAQ: "My footage is a mess. How do I organize projects?"

Use one folder structure for every project. Set it up before you shoot.

The standard project folder tree:

— /01_Brief — brief PDF, contract, talking points
— /02_Raw — all footage, named scene01_take02
— /03_Audio — voiceover, music licenses
— /04_Edit — project file + working exports
— /05_Delivery — final files you hand off

Name the root: Brand_Project_YYYYMMDD.

Why: when a client asks for a tweak 3 months later, you find the raw in 10 seconds.

Save the tree. Duplicate an empty template folder per project. Rinse and repeat.


content:
<b>FAQ: "When and how do I get paid?"</b>

Not "after they're happy." Set payment terms before you shoot.

The payment-terms standard:

— New clients: 50% deposit to book, 50% on delivery
— Returning clients: net-15 from delivery
— Projects over $500: 50/50, no exceptions
— Late fee: 1.5%/month, stated in the contract
— Method: Stripe/Wave invoice link — never "just Venmo me" with no record

The deposit isn't rude. It filters tire-kickers and funds your time.

Write these 5 lines into your contract once. Every client signs the same terms.

Save it. No deposit, no shoot date. Standardize and hold the line.


content:
<b>FAQ: "A brand said yes. What happens next?"</b>

Don't wing the start. Run the new-client onboarding SOP so nothing slips.

The 6-step onboarding checklist:

— 1: Send contract + invoice for deposit (work starts when both clear)
— 2: Send your intake form: target audience, must-say points, do-not-say list
— 3: Confirm product ship date + tracking
— 4: Agree the brief, deadline, and revision policy in writing
— 5: Create the project folder from your template
— 6: Send a one-line kickoff: "Got everything — first draft by [date]."

Do all 6 before you shoot a single frame.

Save the SOP. Same 6 steps, every brand. Onboarding is where pros separate from amateurs.


channel_name: Inbox 101

content:
<b>How many emails should I send my first week?</b>

Great question — and the honest answer is: start small on purpose. Mailbox providers like Gmail watch new senders closely, like a bank watching a brand-new account.

Why it matters: blast 5,000 cold contacts on day one and you look like a spammer, even if you're not.

— Day 1-2: send to your 20-50 most engaged people (recent buyers, friends).
— Day 3-5: add a few hundred who opened something recently.
— Week 2+: grow by roughly double each step if complaints stay low.

✅ Pick your 50 warmest contacts and email only them first.

This slow ramp is called warming up your sending. It builds trust before volume.

New here? Start with the basics above.


content:
<b>Can I just send newsletters from my free Gmail?</b>

You can technically — but you shouldn't once you pass a handful of people. Here's the plain truth.

Why it matters: Gmail's bulk rules now expect newsletters to come from your own domain (yourname@yourbusiness.com), not a free @gmail.com. Sending bulk from free Gmail gets throttled fast.

— Buy a domain (~$12/year) if you don't have one.
— Use an email platform (Mailchimp, MailerLite) connected to that domain.
— Send a quick test to yourself before any real campaign.

✅ Today, check whether your sending address ends in your own domain.

A domain address is like having business letterhead instead of scribbling on a napkin — it just reads as legitimate.

New here? Start with the basics above.


content:
<b>Why do my emails land in spam even with a clean list?</b>

This frustrates a lot of beginners. A clean list helps, but inbox placement is about more than your contacts.

Why it matters: providers also judge your sending reputation — how your domain and sending address have behaved over time.

— Check you've set up SPF and DKIM (SPF is basically a guest list of who's allowed to send for your domain; DKIM is a signature proving the email is really from you).
— Avoid spammy words in subject lines like "FREE!!!" and "ACT NOW".
— Send a real message and ask a friend to check their spam folder.

✅ Today, verify SPF and DKIM are switched on in your platform.

New here? Start with the basics above.


content:
<b>What counts as a good open rate?</b>

Everyone asks this, so let's give a real number instead of a shrug.

Why it matters: knowing the benchmark tells you whether to celebrate or fix something.

— For most lists, 20-40% opens is healthy. Below 15% usually means a list or subject-line problem.
— New, eager subscribers open more (sometimes 50%+). Older, forgotten lists open less.
— One catch: Apple now auto-opens many emails, so opens are a bit inflated. Trust clicks more.

✅ Look up your last campaign's open rate and compare it to that 20-40% range.

An "open rate" is just the share of people who opened your email — like counting how many letters got unsealed.

New here? Start with the basics above.


content:
<b>How often should I email my list?</b>

A super common worry: "Will I annoy people?" Here's a calm way to decide.

Why it matters: too rare and they forget you (and mark you spam); too often and they tune out.

— Pick a rhythm you can actually keep: once a week is the friendly sweet spot for most beginners.
— Tell people the rhythm in your welcome email ("expect one email each Tuesday").
— Watch your unsubscribe rate — under about 0.5% per send is normal and healthy.

✅ Choose one realistic schedule (weekly) and write it into your welcome message.

Consistency beats frequency. A predictable Tuesday email is like a friend who always calls on the same day.

New here? Start with the basics above.


content:
<b>Should I buy an email list to grow faster?</b>

I know it's tempting when you're starting from zero. Please don't — here's why, concretely.

Why it matters: bought lists are full of people who never agreed to hear from you. They mark you spam, which wrecks your reputation for everyone you email.

— It's also illegal under laws like GDPR and CAN-SPAM without real consent.
— Most email platforms ban bought lists and will suspend your account.
— You'll pay money to make your deliverability worse, not better.

✅ Instead, add one simple signup form to your site or social bio today.

Consent is the whole game. A list you grew yourself is like guests who RSVP'd — they actually want to be there.

New here? Start with the basics above.


content:
<b>What is double opt-in, and do I need it?</b>

You'll see this setting everywhere, so let's demystify it.

Why it matters: double opt-in means after someone signs up, they get a "click to confirm" email before joining. It filters out typos and fake addresses.

— Single opt-in: they're added instantly. Faster growth, but more bad addresses.
— Double opt-in: one extra click, but a cleaner, more engaged list.
— Cleaner lists = fewer bounces = better inbox placement.

✅ In your platform's signup settings, turn double opt-in ON for new forms.

Think of it like a venue checking your ticket at the door — a tiny step that keeps the crowd real.

For beginners worried about deliverability, that small step is worth it.

New here? Start with the basics above.


content:
<b>What should my very first email to a new subscriber say?</b>

This is the welcome email, and beginners often overthink it. Keep it simple.

Why it matters: it's the moment they remember you and decide to keep opening. Skip it and your next email feels like a stranger.

— Say thanks and remind them what they signed up for.
— Set expectations: how often you'll write and about what.
— Give one easy next step (read this, reply with a question, grab this freebie).

✅ Write a 4-5 sentence welcome email and set it to send instantly on signup.

A welcome email is like opening the door and greeting a guest by name — warm, short, and clear.

That first impression often decides whether they ever open email number two.

New here? Start with the basics above.


content:
<b>People keep unsubscribing — am I doing it wrong?</b>

First, breathe. Unsubscribes are normal and even healthy. Let's put numbers on it.

Why it matters: chasing zero unsubscribes makes you timid and boring. A few leaving each send is fine.

— Under 0.5% unsubscribing per campaign is totally normal.
— Always include a clear, one-click unsubscribe link — hiding it gets you marked as spam instead, which is far worse.
— A spike (over 1%) means your content or frequency drifted off-track. That's your signal to adjust.

✅ Check your last email's unsubscribe rate and compare it to 0.5%.

Someone leaving cleanly is like a guest quietly slipping out — way better than them complaining to the host.

New here? Start with the basics above.


content:
<b>How long should my subject line be?</b>

A practical question with a practical answer. Let's keep it concrete.

Why it matters: half your readers open on phones, where long subject lines get chopped off mid-word.

— Aim for about 6-10 words, or roughly 40 characters, so the whole thing shows on mobile.
— Front-load the important part: put the hook in the first 3 words in case the rest cuts off.
— Skip ALL CAPS and triple exclamation marks — they look spammy and trigger filters.

✅ Pull up your last subject line and trim it to fit ~40 characters.

Think of the subject line as the envelope — if it's too long to read at a glance, the letter never gets opened.

New here? Start with the basics above.


content:
<b>Should I put emojis in my subject lines?</b>

Beginners ask this a lot, usually worried emojis look unprofessional or trip spam filters. Here's the real answer.

Why it matters: a single, relevant emoji can help you stand out in a crowded inbox — but overdoing it backfires.

— One emoji, max, and only if it fits your brand voice.
— Place it at the start or end, never mid-sentence where it breaks reading.
— Test it: some older email apps show emojis as empty boxes, which looks broken.

✅ Send yourself a test with the emoji and open it on your phone to see how it renders.

An emoji is like a small sticker on an envelope — fun in moderation, tacky if you cover the whole thing.

New here? Start with the basics above.


content:
<b>My report says "bounced" — what does that mean?</b>

Good thing you noticed. A bounce just means the email couldn't be delivered. There are two kinds, and the difference matters.

Why it matters: too many bounces tells providers you have a messy list, and that hurts your inbox placement.

— Hard bounce: the address is dead or fake. It'll never work — remove it.
— Soft bounce: a temporary issue (full mailbox, server down). It may work next time.
— Most platforms auto-remove hard bounces, but always double-check.

✅ Open your last report and remove any hard-bounced addresses.

A hard bounce is like a letter stamped "return to sender, no such address" — keep mailing it and the post office stops trusting you.

New here? Start with the basics above.


content:
<b>Can I build an email list without a website?</b>

Yes! Plenty of beginners start with zero website. Don't let that stop you.

Why it matters: the list is the asset — where the signup form lives matters less than getting real, willing people on it.

— Use a free hosted signup page (Mailchimp, MailerLite, and others all give you one link).
— Drop that link in your social bios, video descriptions, and email signature.
— Offer one small reason to join: a checklist, a discount, a short guide.

✅ Create one free signup page today and paste the link into your Instagram or Telegram bio.

A signup page is just a tiny rented storefront — you don't need to own the whole building to open the door.

New here? Start with the basics above.


content:
<b>How do I make sure my email looks right before sending?</b>

Smart to ask before, not after. Sending a broken email to your whole list is a rite of passage nobody enjoys.

Why it matters: links break, images don't load, and phones show things differently than your laptop.

— Send a test email to yourself first — every platform has a "send test" button.
— Open it on both your phone and computer; click every single link.
— Read it once out loud to catch typos your eyes skip.

✅ Before your next send, mail a test to yourself and click each link.

This is your dress rehearsal — like proofreading a letter before you seal the envelope and drop it in the box.

New here? Start with the basics above.


content:
<b>Everyone says "set up an automation" — what does that mean?</b>

The word sounds technical, but the idea is simple and friendly.

Why it matters: an automation is just an email that sends itself when something happens — so you're not glued to your screen.

— A trigger starts it (someone joins your list).
— A wait can pause it (send the next email 2 days later).
— An action sends the email — all automatically, day or night.

✅ Build the simplest one: a welcome email triggered by "new subscriber joins."

Think of it like a coffee maker on a timer — you set it once, and it brews every morning without you lifting a finger.

Start with that single welcome automation before anything fancier. One trigger, one email. That's a real automation.

New here? Start with the basics above.


content:
<b>How do I put someone's name in the email automatically?</b>

This little trick feels like magic the first time, and it's easier than you think.

Why it matters: a name makes the email feel personal, and personal emails get opened and read more.

— Your platform uses a merge tag — a placeholder like {{first_name}} that swaps in each person's real name.
— Set a fallback for blanks ("Hi {{first_name|there}}") so empty fields don't read "Hi ,".
— Always send yourself a test to confirm it fills in correctly.

✅ Add a first-name merge tag to your next subject line and test it on yourself.

A merge tag is like a fill-in-the-blank form letter — you write "Dear ___" once and the machine writes in each name.

New here? Start with the basics above.


content:
<b>What's the simplest way to start segmenting my list?</b>

Segmenting sounds advanced, but your first split can be dead simple. Let's start there.

Why it matters: segmenting means grouping subscribers so you can send more relevant emails — and relevant emails get opened more.

— Your easiest first group: people who opened your last 1-2 emails (your "engaged" folder).
— Email that group a bit more often; email the quiet ones less.
— Most platforms build this group for you with a saved filter — no spreadsheet needed.

✅ Create one segment of "opened in the last 30 days" and send them your next email.

Segmenting is like sorting mail into the right mailboxes instead of shouting the same thing down the whole street.

New here? Start with the basics above.


content:
<b>I haven't emailed my list in a year — can I just start again?</b>

Please don't blast all of them at once. An old, cold list needs gentle handling, not a cannonball.

Why it matters: people forgot they signed up. Email 2,000 cold contacts and the spam complaints can damage your sender reputation overnight.

— Email only the most recently active 10-20% first.
— Lead with a friendly "it's been a while, still want these?" reminder.
— Remove anyone who doesn't open after two tries — that's re-engagement.

✅ Sort your list by last activity and email only the top, most-recent slice first.

Waking a cold list is like reconnecting with old friends — a quiet hello first, not showing up with a marching band.

New here? Start with the basics above.


content:
<b>Is it bad to send an email that's all one big image?</b>

Great instinct to ask — and yes, it's a common beginner trap. Let's avoid it.

Why it matters: spam filters can't read text inside an image, so an all-image email looks suspicious and often lands in spam. Plus, many people block images by default and see a blank box.

— Keep a healthy mix: real text plus a few images, not one giant picture.
— Always add alt text (a written description) so blocked images still make sense.
— Aim for roughly 60% text, 40% images as a safe starting balance.

✅ Open your draft and make sure your main message is in real, selectable text — not baked into a picture.

New here? Start with the basics above.


content:
<b>Do I need to pay for an email tool to start?</b>

Lovely news for beginners: no, you don't. You can learn the whole craft on a free plan first.

Why it matters: free tiers let you build real habits — forms, welcome emails, sending — before spending a cent.

— Tools like MailerLite and Mailchimp offer free plans up to roughly 500-1,000 contacts.
— Free plans usually include signup forms and one automation — plenty to start.
— Upgrade only when your list outgrows the limit, not before.

✅ Sign up for one free plan today and create your first signup form.

A free plan is like training wheels — it carries you the whole early stretch, and you only swap up when you've actually outgrown it.

Don't let "which tool" stall you. Pick one free, start sending, learn by doing.

New here? Start with the basics above.


channel_name: Spark Code Basics

content:
<b>Why did TikTok reject my ad in minutes?</b>
Don't worry if a fast rejection feels scary, it's usually one small fixable thing. Let's check the four most common ones.
—
First, screen recordings of TikTok itself (the app inside your ad). TikTok bans showing its own interface, so film fresh instead.
—
Next, a static image held for the whole video. The system wants real motion, so add a cut or movement in the first second.
—
Third, watermarks from CapCut or another app, crop or export clean.
—
Last, claims like 'guaranteed results', soften the wording.
Try this: open your rejected ad and look only for these four. Resubmit, most pass on the second try. You've got this.


content:
<b>How much money do I actually need to start?</b>
Let's answer this honestly so no one feels priced out. TikTok's minimum is $20 per day at the ad group level (the group that holds your audience and budget settings).
—
But a minimum is not a learning budget. TikTok needs about 50 conversions in 7 days to exit the 'learning phase' (the stretch where it's still figuring out who to show your ad to).
—
So a practical floor: pick a $20 product, budget enough to buy roughly 50 of those actions in a week.
Don't worry if that sounds like a lot, start with one ad group, not five. Try this: write down your product price, multiply expected cost-per-action by 50, and you'll see your real test budget. Small and focused beats big and scattered.


content:
<b>What does 'Learning' mean on my ad group?</b>
Great question, that little 'Learning' label confuses everyone at first. It simply means TikTok is still collecting data on who responds to your ad.
—
During this time, your cost-per-result jumps around, that's normal, not a problem.
—
TikTok wants roughly 50 conversions in 7 days to finish learning. Until then, results are unstable.
—
The trap: editing the budget or audience resets learning to zero, wasting your spend.
So here's the rule, let's be patient. Once a campaign is live, leave it alone for at least 3 days before judging it.
Try this: set a calendar reminder for 72 hours after launch. That's your first real check-in. Resist the urge to touch it before then, you're doing fine.


content:
<b>Why am I charged when no one buys?</b>
This surprises a lot of beginners, so let's clear it up gently. TikTok charges you for impressions, not sales.
—
The pricing model is CPM = Cost Per Mille, meaning cost per 1,000 times your ad is shown.
—
So even with zero sales, you pay for the views. Your job is making those views convert.
—
That's why a $30 spend with no sales isn't TikTok 'stealing', it's a signal your creative or offer needs work.
Don't feel discouraged, this is data, not failure. Try this: after $20 spent with no sale, look at your click-through rate first (clicks divided by views). Under 1%? The video is the problem. Over 1%? The landing page is. You're learning to read the signals.


content:
<b>What's the difference between Spark Ads and a normal ad?</b>
Let's define it clearly. A Spark Ad boosts a real, existing TikTok post (yours or a creator's, with their code) instead of an uploaded file.
—
Why it matters: Spark Ads keep the likes, comments and follows the post already earned. Social proof carries over.
—
They also send clicks to a real profile, which builds your account, not just a one-off ad.
—
Normal (non-Spark) ads upload a video that lives only as an ad, no profile, no saved engagement.
For beginners, Spark usually wins because people trust posts that already have comments.
Try this: pick one organic post that got decent comments and run it as a Spark Ad. Watch how the existing comments warm up new viewers. Simple and powerful.


content:
<b>How do I get a creator's Spark Ad code?</b>
This stumps everyone the first time, let's walk it step by step. The code (TikTok calls it an authorization code) comes from the creator, not from you.
—
First, the creator opens their video, taps the three dots, then 'Ad settings'.
—
Next, they toggle 'Ad authorization' on and choose how long to allow it (7, 30, 60 days, or unlimited).
—
Then they tap 'Generate code' and send you the text string.
—
Last, you paste it in Ads Manager under 'Use TikTok account to deliver Spark Ads'.
Don't worry if the creator's never done this, send them these four steps. Try this: ask for a 30-day code on your next collab, plenty of runway without locking them in forever. You're set.


content:
<b>I installed my pixel but it shows no data, why?</b>
Deep breath, this is almost always one of three small things. The pixel (a snippet of code that reports what visitors do) needs a moment and a check.
—
First, give it 24 hours, fresh pixels can lag before showing events.
—
Next, install the TikTok Pixel Helper browser extension and load your site, it tells you in plain words if the pixel fires.
—
Third, your ad blocker may be hiding your own test, open the site in a private window.
—
Fourth, confirm the event actually happened, no purchase means no purchase data.
Try this: visit your own product page with Pixel Helper open and watch for a green 'PageView'. Seeing it? You're connected. Not seeing it? The code didn't paste fully, re-add it. You'll get there.


content:
<b>Which campaign objective should a beginner pick?</b>
Let's keep this simple, because the objective (the goal you tell TikTok to optimize for) shapes everything after.
—
For sales on a website, pick 'Website Conversions'. TikTok then hunts for buyers, not just clickers.
—
Don't pick 'Traffic' hoping for sales, it optimizes for clicks, which are cheaper but rarely buy.
—
Don't pick 'Reach' or 'Video Views' unless your only goal is eyeballs.
—
The catch: Conversions needs your pixel working and enough budget to find buyers.
So match the objective to what you truly want, money or attention.
Try this: before launching, finish this sentence out loud, 'I will call this a win if ___ happens.' Pick the objective that matches that word. Clear goal, clear setup.


content:
<b>How many videos should I put in one ad group?</b>
Lovely beginner question. Let's avoid the two classic mistakes, too few and too many.
—
Put 3 to 5 different videos in a single ad group. Not 1, not 15.
—
Why 3 to 5? TikTok automatically shows the best performer more, but it needs options to compare. One video gives it nothing to choose between.
—
Why not 15? Your budget splits too thin, none get enough views to prove themselves.
—
Keep the audience identical across them, so you're testing creatives, not targeting.
Try this: gather 3 genuinely different angles (a demo, a testimonial, a problem-hook), drop them in one ad group, and let TikTok pick the winner over 3 days. You're running a fair little contest, nicely done.


content:
<b>My dashboard has 20 numbers, which one matters first?</b>
Don't feel overwhelmed, let's read it like a teacher, top to bottom. Look at three columns in order.
—
First, CTR = Click-Through Rate (clicks divided by impressions). Healthy on TikTok is around 1% or higher. Below 0.5% means the video isn't hooking people.
—
Second, CPC = Cost Per Click. This tells you if attention is affordable for your niche.
—
Third, Conversion Rate, of those who clicked, how many bought.
Read them as a chain: weak CTR blames the video, weak conversion blames the page.
Try this: each morning, glance at only CTR for 10 seconds. That one number tells you where to look next. The other 17 can wait. You're reading the dashboard like a pro already.


content:
<b>Why is my CPM so expensive?</b>
Let's untangle this kindly. CPM = Cost Per Mille = what you pay per 1,000 views. A high one usually isn't bad luck.
—
First cause, a tiny audience. Squeeze your targeting too narrow and TikTok pays a premium to reach those few people.
—
Second, heavy competition in your country, the US and UK cost more than smaller markets.
—
Third, low ad quality, boring videos get penalized with pricier delivery.
—
Fourth, dayparting into busy hours like evenings.
The fix you control most is creative quality, a stronger hook lowers your CPM directly.
Try this: widen your audience to at least a few million people and see if CPM drops. Often it does, TikTok loves room to optimize. Small tweak, real relief.


content:
<b>Should I target a tiny niche audience or go broad?</b>
This feels backwards to beginners, so let's explain gently. On TikTok, broad usually beats narrow.
—
Here's why, TikTok's algorithm is excellent at finding buyers on its own from your creative and pixel signals.
—
When you over-restrict with 12 interests, you fight the algorithm and shrink its learning pool.
—
A good starting audience: your country, a wide age band, maybe one or two broad interests, that's it.
—
Let the video do the targeting, the right hook self-selects the right people.
Don't worry if 'broad' feels lazy, it's actually trusting a smart system.
Try this: build one ad group with NO interests, just country and age, and compare it against your narrow one. Many beginners are shocked the broad one wins. Give it a fair test.


content:
<b>When should I turn off a losing ad?</b>
Ah, the hardest beginner skill, patience with a rule. Let's give you a clear stopping point so you're not guessing.
—
The rule of thumb: let an ad spend 2 to 3 times your product price before judging it. A $30 product? Wait until about $60 to $90 spent.
—
Why wait? Killing at $10 means TikTok never learned who buys, you'd be ending the test too early.
—
If at 2-3x spend there are zero conversions, then yes, pause it calmly.
—
If there's one sale, give it a little more rope.
Try this: write your 'kill number' (2-3x price) on a sticky note before launching. When spend hits it with no sales, pause without second-guessing. A rule removes the emotion. You're being disciplined, not harsh.


content:
<b>What is CBO and should a beginner use it?</b>
Let's demystify the scary acronym. CBO = Campaign Budget Optimization, meaning you set ONE budget at the campaign level and TikTok spreads it across your ad groups for you.
—
The opposite is ABO = Ad group Budget Optimization, where you set a budget for each group yourself.
—
Why it matters, CBO automatically pushes money toward the winning ad group, hands-off.
—
The catch for beginners, CBO can starve a promising group early before it gets a fair chance.
My gentle advice, start with ABO so each idea gets equal money to prove itself. Move to CBO once you know your winners.
Try this: keep your first 2 campaigns on ABO. You'll learn faster watching each group spend evenly. Automation later, understanding first.


content:
<b>How long until I see real results?</b>
Let's set honest expectations so you don't panic on day one. Patience here is a skill, and you can learn it.
—
Day 1 to 2, ignore the numbers entirely. The ad is in learning and results swing wildly.
—
Day 3 to 4, a first honest read. Is CTR over 1%? Are clicks turning into anything?
—
Day 7, learning phase should finish (after about 50 conversions) and your true cost-per-result settles.
So a fair test is a full week, not an afternoon.
Don't refresh the dashboard hourly, it'll only stress you and tempt edits that reset learning.
Try this: check your campaign twice a day, morning and evening, no more. Give it the full 7 days. Slow looks beat anxious staring, truly.


content:
<b>My ad is approved but getting zero impressions, why?</b>
Don't worry, an approved ad with no delivery is almost always a settings issue, not a broken account. Let's check the usual suspects.
—
First, your bid is too low. If you set a manual bid (the max you'll pay per result) below market, TikTok simply can't win auctions. Try automatic bidding instead.
—
Second, the audience is microscopic, a few thousand people gives TikTok nowhere to deliver.
—
Third, your daily budget is below the $20 minimum somewhere.
—
Fourth, the schedule hasn't started yet, check the start date.
Try this: switch to automatic bidding and widen the audience, then wait 2 hours. Delivery usually wakes right up. You didn't break anything, just a knob set wrong.


content:
<b>Automatic or manual bidding for my first campaign?</b>
Lovely that you're asking before clicking. Let's define both, then pick. Bidding is how you tell TikTok the most you'll pay for a result.
—
Automatic (Maximum Delivery), TikTok spends your full budget chasing the most results it can. No number to guess.
—
Manual (Cost Cap), you set a target cost-per-result and TikTok tries to hold near it.
—
For beginners, automatic wins, because a manual bid set too low just stops delivery entirely (a very common beginner trap).
Manual is a tool for later, once you know your numbers.
Try this: launch your first campaign on automatic bidding and simply watch what cost-per-result TikTok naturally lands on. That real number becomes your future manual cap. Learn the price before you set it.


content:
<b>Do I need a TikTok business account to run ads?</b>
Good housekeeping question, let's sort out the three accounts people confuse.
—
First, a TikTok Ads Manager account, yes, this is required. It's where you build and pay for ads, separate from the app.
—
Second, your posting profile, for Spark Ads it helps to switch it to a Business account (free, in app settings) so you unlock the ad tools.
—
Third, a Business Center, an optional folder that organizes multiple accounts, you can skip it solo.
So the real must-have is just Ads Manager plus a Business profile if you want Spark Ads.
Try this: in the TikTok app, go Settings, Account, Switch to Business Account. Free, reversible, and it opens the doors you need. One tap, you're ready.


content:
<b>How do I test creatives without wasting money?</b>
Let's make your first test cheap and clean. The secret is testing ONE thing at a time so you actually learn something.
—
Start with the hook, the first 2 seconds, because that's where most viewers drop off.
—
Make 3 videos identical except the opening line. Same product, same offer, same body. Only the hook changes.
—
Put all 3 in one ad group on automatic bidding so they share fairly.
—
After 3 days, the hook with the best 3-second view rate is your winner.
This way a small budget buys a real answer, not confusion.
Try this: write three different first lines for your next ad, a question, a bold claim, a relatable problem. Test only those. You'll know exactly which hook earns attention. Tidy and affordable.


content:
<b>My winning ad suddenly stopped working, what happened?</b>
This hurts, and it happens to everyone, so let's be kind about it. The usual cause has a name, ad fatigue.
—
Ad fatigue means your audience has seen the video too many times and tunes it out. Performance fades even though nothing's broken.
—
The clue is in the dashboard, check 'Frequency' (average times each person saw your ad). Climbing past 2 to 3? That's fatigue.
—
A second cause, you edited the ad and accidentally reset learning.
—
A third, more competition entered your auction.
The fix is fresh creative, not a bigger budget on a tired video.
Try this: when results dip, glance at Frequency first. If it's high, launch a new hook rather than pushing the old one harder. Renewal beats forcing it. You'll bounce back.


channel_name: Cold DM Confidential

content:
<b>"How many follow-ups before I give up?"</b>

Everyone says five to seven touches, that's where the money is. Myth.

That number comes from B2B sales decks selling you sequence software. A creator who ignored three relevant, well-targeted messages isn't on the fence — they've decided. Touch four through seven just train them to associate your name with annoyance. It's not a persistence problem, it's a fit problem.

Two follow-ups, spaced a week apart, then move on. If two good messages can't earn a reply, a sixth won't either.


content:
<b>"How long should a cold DM be?"</b>

Everyone says keep it under three sentences, attention spans are short. Myth.

Short isn't the goal — answerable is. A two-line DM that omits the deal, the deliverable, and the rate forces a creator to reply asking for all three, which most won't bother to do. You optimized for their reading time and cost them their answering time.

It's not length that kills replies, it's leaving the obvious questions open. Include the offer up front. Five clear sentences beat two cryptic ones.


content:
<b>"Should I buy a list of influencer emails?"</b>

Popular advice: grab a 10,000-contact creator database and start blasting. Myth.

Scraped lists are mostly business managers, dead Gmail aliases, and contact forms that route to a void. You're not buying access, you're buying a deliverability problem that torches your domain reputation by week two. The creators worth reaching gatekeep their real inbox precisely because lists like that exist.

It's not a contact shortage you have, it's a targeting one. Hand-pick 50 real fits. They'll out-earn the 10,000 every time.


content:
<b>"They didn't reply — should I assume they're not interested?"</b>

Everyone says no reply means no. Myth.

For cold DMs, silence usually means they never saw it — message requests on most platforms hide behind a tab creators open once a month. You're reading rejection into what's actually a routing problem. The interested-but-unseen pile is bigger than the seen-and-declined pile.

It's not that they passed, it's that the platform buried you. That's exactly why one well-timed follow-up converts — not because you nagged them into it, but because it surfaced.


content:
<b>"Should I get verified before I start pitching?"</b>

Popular advice: a blue check makes creators trust your DM. Myth.

Creators don't grant deals to checkmarks, they grant them to messages that name a real brand, a real budget, and a real deliverable. The check buys you maybe a half-second longer before they judge the content — and if the content is generic, that half-second is wasted. Plenty of unverified agency reps close daily.

It's not credibility they're scanning for, it's specificity. Spend the verification effort on a tighter offer instead.


content:
<b>"What subject line gets the most opens?"</b>

Everyone obsesses over the perfect subject line. Myth — at least for DMs.

Instagram and TikTok message requests have no subject line. The preview a creator sees is your first six or seven words, raw. So every "quick question" and "collab opportunity?" trick you copied from email teardowns is solving a problem you don't have. The real subject line is sentence one of your body.

It's not a headline you're writing, it's an opening that survives a half-read preview. Front-load the brand name and the number.


content:
<b>"How many DMs can I send a day safely?"</b>

Popular advice: there's a magic number — like 50 — that keeps you under the ban radar. Myth.

Platforms don't count your sends, they count your complaints and your ignore rate. Send 20 irrelevant pitches and get reported twice, you're flagged. Send 80 sharp ones that get replies, you're fine. The limit isn't volume, it's how many strangers mark you as spam.

It's not a daily cap you're managing, it's a relevance score. Tighten targeting and the "safe number" climbs on its own.


content:
<b>"Are templates okay or do I write each one from scratch?"</b>

Everyone says never use templates, creators can smell them. Myth.

Creators can't smell a template — they smell a template sent to the wrong person. A reused structure with a genuinely relevant variable is invisible. What gets you caught is the mismatch: pitching a vegan creator a steak brand, or congratulating them on a milestone that's two years old. The frame can repeat; the fit cannot.

It's not the template that fails, it's the lazy fill-in. Standardize the skeleton, hand-pick the substance.


content:
<b>"What reply rate should I expect as a beginner?"</b>

Popular advice: aim for 30 to 40 percent, anything less means you're doing it wrong. Myth.

Those numbers come from warm or referral outreach dressed up as cold. Genuinely cold, well-targeted creator DMs land in the high single digits to low teens — and that's a healthy campaign. Chasing 40 percent will push you toward smaller, easier lists that can't fill a real pipeline.

It's not a low reply rate that's the problem, it's measuring against a fake benchmark. Track replies-per-100 and replies-that-close separately.


content:
<b>"Should I DM the creator or find their agency?"</b>

Everyone says go straight to the creator, agencies just slow you down. Myth.

For anyone past roughly 100k followers, the creator never reads the DM — a manager does, or no one does. Skipping the listed business contact reads as either lazy or as a backdoor attempt, and managers remember both. The agency isn't a gate to dodge, it's the actual buyer.

It's not the creator you're persuading at that tier, it's their rep. Pitch the inbox that controls the calendar.


content:
<b>"Should I put my link in the first DM?"</b>

Everyone says drop the link so they can check you out. Myth.

A cold message with a link is the single strongest spam signal a platform tracks — message requests with URLs get auto-throttled or hidden before a human sees them. You optimized for their convenience and got filtered into oblivion. The first DM's only job is to earn a reply.

It's not a missing link that loses the deal, it's never being delivered. Send the link in message two, after they answer.


content:
<b>"How long should I wait between follow-ups?"</b>

Popular advice: wait 24 hours so you stay top of mind. Myth.

A day-later bump on a cold DM reads as pacing back and forth outside their door. Creators who saw your first message and didn't act need a reason to reconsider, not a reminder that you're impatient. The space between touches is what keeps you from looking desperate.

It's not momentum you're building with a fast follow-up, it's pressure. Give it five to seven days, and change the angle — not just the timestamp.


content:
<b>"Can I use AI to write all my cold DMs?"</b>

Everyone says let the model write them, then send at scale. Myth.

AI is excellent at the parts that don't move replies — grammar, tone, structure — and useless at the part that does: knowing this creator's audience buys at checkout, not just likes. Generated DMs converge on the same five phrasings, so creators start seeing the same robot from ten different senders.

It's not writing that's your bottleneck, it's research. Let the model polish; do the targeting yourself.


content:
<b>"They saw it but didn't reply — what now?"</b>

Popular advice: a 'seen' with no answer means soft rejection, back off. Myth.

A read receipt on a cold DM often just means they triaged the request tab and forgot — open, glance, get distracted, gone. Treating 'seen' as a verdict makes you abandon people who'd say yes to a clearer offer. The read itself tells you almost nothing about intent.

It's not rejection you witnessed, it's a half-second of attention you didn't earn. Follow up by fixing the offer, not by asking why they ignored you.


content:
<b>"Do emojis make my DM feel friendlier?"</b>

Everyone says toss in a wave or a fire emoji to warm it up. Myth.

On the platforms creators actually use, mass-senders lean hard on emojis to fake casual energy — so emoji-stuffed openers now pattern-match to bots and spam tools. You meant warm; their filter reads template. A plain, specific sentence stands out precisely because the spam is so decorated.

It's not friendliness emojis convey, it's that you used the same toolkit as the scammers. Write like a person who has a real offer, not a sequence.


content:
<b>"Should I pitch lots of niches or stay narrow?"</b>

Popular advice: cast wide so you don't miss opportunities. Myth.

Breadth quietly destroys your message quality — you can't write a sharp, audience-aware DM for fitness, finance, and gaming in the same afternoon, so every one drifts generic. Narrow senders reuse hard-won knowledge about what a niche's audience buys, and it shows in the reply rate.

It's not reach you gain by going broad, it's a pile of forgettable pitches. Pick one vertical until your replies stabilize, then add the next.


content:
<b>"Should I lowball my first offer to land the deal?"</b>

Everyone says open low, you can always negotiate up. Myth.

An insulting first number doesn't start a negotiation — it ends the conversation, because the creator now reads you as someone who undervalues their work and files you under tire-kicker. You don't negotiate up from a number that got you blocked. Anchoring low anchors you out of the room.

It's not a discount that opens the door, it's a fair, confident figure. Offer near your real ceiling and leave yourself one small move, not five.


channel_name: Root Access Daily

content:
"How much RAM do I need for WordPress?"
Everyone asks this. Real answer for a single content site:
— 1GB runs WP + LEMP fine up to ~5k visits/day if you add 1GB swap
— 2GB is the sweet spot once you add Redis object cache
The killer isn't pageviews, it's PHP-FPM workers. Each fat WP worker eats 40-80MB. Cap them: pm.max_children = 8 on a 1GB box, not the default 50. Default config OOM-kills you, not traffic.
Try it tonight.


content:
"My site dies after every reboot. Why?"
Because your services aren't enabled, only started. Classic beginner trap. Check it:
systemctl is-enabled nginx php8.3-fpm mysql
If any says disabled, that's your culprit. Fix all three at once:
systemctl enable nginx php8.3-fpm mysql
start runs it now. enable makes it survive reboots. Two different things nobody tells you. Now your $4 box comes back swinging after a host maintenance reboot at 3am.
Try it tonight.


content:
"Do I even need swap if I have RAM?"
Yes. Even on a 4GB box. Swap isn't a RAM replacement, it's a crash bumper. Without it, one traffic spike + a fat cron job = OOM killer nukes MySQL, site goes 502.
Add 2GB:
fallocate -l 2G /swapfile && chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
Then tame it so it doesn't thrash your cheap SSD: sysctl vm.swappiness=10. Persist both in /etc/fstab and sysctl.conf.
Try it tonight.


content:
"Is SSH key really safer than a strong password?"
Not even close. Watch your auth log for ten minutes: journalctl -u ssh | grep Failed | wc -l — bots try your password thousands of times a day. They can't brute a 4096-bit key, ever.
Generate, copy, lock the door:
ssh-keygen -t ed25519
ssh-copy-id root@your-ip
Then kill passwords in /etc/ssh/sshd_config: PasswordAuthentication no, restart ssh. Failed-login spam drops to zero overnight.
Try it tonight.


content:
"Which $5 VPS should a beginner actually pick?"
Not the cheapest sticker price. Pick on three numbers people skip:
— vCPU type: dedicated beats "shared" even at same price — Hetzner CX22 (~$4) gives real cores
— Disk: NVMe, not SATA. Run fio day one; if random write is under 50MB/s, leave
— Network: 20TB+ bandwidth so a viral post doesn't bankrupt you
Hetzner, Netcup, OVH for value. Avoid resellers with no ASN of their own — your IP lands on blocklists you didn't earn.
Try it tonight.


content:
<b>"nginx or Apache for my first server?"</b>
nginx, and here's the one reason that matters on a small box: memory per connection. Apache (prefork) spawns a process per visitor — 10MB each. 200 concurrent = 2GB gone. nginx handles those same 200 in one process on a few MB.
On a 1GB VPS that's the difference between staying up and a 502 during your one good traffic day. Run nginx + PHP-FPM (LEMP). Apache's .htaccess convenience isn't worth the RAM tax.
Try it tonight.


content:
"Where do I even look when the site 500s?"
Three files, in this order, every time:
— tail -f /var/log/nginx/error.log — connection + upstream errors
— tail -f /var/log/php8.3-fpm.log — PHP fatals, worker deaths
— your app log (WP debug.log, Laravel storage/logs)
Keep all three open in split panes while you reproduce the error. The nginx log says "upstream", the FPM log says WHY. Beginners stare at one and guess for an hour.
Try it tonight.


content:
"What's PHP-FPM and why do I tune it?"
It's the engine running your PHP. nginx just hands requests to it. The default pool config is built for a 16GB server and will OOM your $5 box instantly.
Math it: (RAM for PHP) ÷ (avg worker size). On 1GB, reserve ~400MB, workers ~60MB:
pm = ondemand
pm.max_children = 6
pm.process_idle_timeout = 10s
ondemand means workers spawn only on traffic, then die — perfect for a low-traffic site that mustn't waste RAM idling.
Try it tonight.


content:
"Is fail2ban worth setting up on a tiny site?"
Yes, it's 5 minutes and it stops the log noise that hides real problems. It reads your auth log and firewalls IPs that fail too often.
apt install fail2ban
Don't edit the default config — copy it: cp jail.conf jail.local, then in jail.local set bantime = 1h, maxretry = 3. Restart.
Check it's working: fail2ban-client status sshd — you'll see banned IPs within the hour.
Try it tonight.


content:
"How do I host a second site on the same VPS?"
You don't need a second box. nginx serves many sites via server blocks. One file per site in /etc/nginx/sites-available/, each with its own server_name:
server_name siteb.com;
root /var/www/siteb;
Symlink it active, test, reload:
ln -s ../sites-available/siteb /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
My $5 box runs 40 small sites this way. The only ceiling is total RAM across all their PHP pools, not the count.
Try it tonight.


content:
"Do I have to pay for SSL?"
No. Paying for a basic cert in 2026 is throwing money away. Let's Encrypt is free, trusted everywhere, and auto-renews.
apt install certbot python3-certbot-nginx
certbot --nginx -d site.com -d www.site.com
It edits your nginx config and reloads for you. Renewal is already a systemd timer — verify it: certbot renew --dry-run. If that passes, you'll never touch SSL again. Stop overpaying GoDaddy $60/yr per cert.
Try it tonight.


content:
"Should I just run everything as root?"
No — and not for purity reasons. One fat-fingered rm -rf as root has no brakes. A regular user with sudo makes you type the password and pause.
Make one in 30 seconds:
adduser deploy
usermod -aG sudo deploy
Copy your SSH key over, log in as deploy, then disable root SSH entirely: PermitRootLogin no. Now the most-attacked username on earth (root) can't even be targeted on your box.
Try it tonight.


content:
"Site feels slow but traffic is tiny. What gives?"
Usually it's not the server, it's a blocking query or no object cache. Find out in 10 seconds:
uptime — load average. If it's under 1.0, CPU is fine, your code is waiting on something.
iostat -x 1 — if %util pegs 100, disk is your bottleneck (slow queries hitting disk).
Fix order for WP/LEMP: install Redis, then redis-cli + an object-cache plugin. Repeat queries now hit RAM, not your cheap SSD. TTFB drops by half.
Try it tonight.


content:
"What's the cheapest way to back up a VPS?"
Provider snapshots cost monthly and you forget them. Roll your own: dump DB + sync files to cheap object storage nightly.
mysqldump --single-transaction db | gzip > /backups/db.sql.gz
rclone copy /backups remote:bucket (Backblaze B2, ~$0.006/GB)
Wrap both in one script, drop it in cron at 4am:
0 4 * * * /root/backup.sh
10GB of backups costs pennies a month. The day you fat-finger a DROP, this is the difference between a shrug and a panic.
Try it tonight.


content:
"Which ports do I open on a fresh box?"
Fewer than you think. Three, then slam the rest shut. ufw makes it painless:
ufw allow 22 (or your custom SSH port)
ufw allow 80
ufw allow 443
ufw enable
That's it. MySQL on 3306? Never open it — it listens on localhost only, your PHP talks to it internally. Beginners expose 3306 to the world and wake up to a ransomed database. Verify: ufw status numbered.
Try it tonight.


content:
"My cron job runs by hand but not on schedule. Why?"
Ninety percent of the time: cron has almost no PATH. Your script calls php or mysqldump and cron can't find them.
Fix: use full paths everywhere. which php gives you /usr/bin/php — use that in the crontab, not bare php.
And capture errors so you stop guessing:
* * * * * /usr/bin/php /path/script.php >> /var/log/mycron.log 2>&1
That 2>&1 sends errors to the log too. Now the log tells you exactly what broke.
Try it tonight.


content:
<b>"Managed or unmanaged hosting for a beginner?"</b>
Unmanaged, if you'll spend one weekend learning. Managed hides everything and charges 4x — a managed $20 box is the same hardware as an unmanaged $5 one. The $15 delta is for someone else typing the commands in this channel.
Learn five things and you don't need them: nginx server blocks, PHP-FPM pools, ufw, certbot, a cron backup. That's the whole job. Run unmanaged Hetzner, pocket $180/yr per site.
Stop overpaying for hand-holding.


content:
"What does that 1.20 0.80 0.50 in `uptime` mean?"
Load average over 1, 5, 15 minutes. The trick beginners miss: compare it to your core count, not to 1.0.
nproc tells you cores. Load 2.0 on a 2-core box = fully busy but fine. Load 2.0 on a 1-core box = stuff is queuing, you feel lag.
So the real rule: load below nproc = healthy. Above it and climbing = find the hog with top (press P to sort by CPU). Usually a runaway PHP worker or a backup overlapping traffic.
Try it tonight.


content:
"Does changing the SSH port off 22 actually help?"
It won't stop a targeted attacker, but it kills 99% of dumb bot noise that pounds port 22 all day — and that noise is what buries real alerts in your logs.
Edit /etc/ssh/sshd_config: Port 2222. Open it in the firewall FIRST so you don't lock yourself out:
ufw allow 2222 && systemctl restart ssh
Keep your old session open, test the new port in a second terminal before closing. Failed-login lines in your auth log drop ~95%.
Try it tonight.


content:
"How many sites can one cheap VPS really hold?"
Wrong question. It's not site count, it's total active PHP workers + DB size vs RAM. I run 40 low-traffic sites on one 4GB box because most sit idle.
The math that matters: each site's pm.max_children × worker size, summed, must fit RAM minus MySQL's buffer pool. Use ondemand pools so idle sites cost ~0MB.
Check real usage anytime: ps aux | grep php-fpm | awk '{s+=$6} END {print s/1024 "MB"}'. That number, not the site count, is your ceiling.
Try it tonight.


channel_name: Split Test Street

content:
<b>"How long do I run a test?" Wrong question.</b>

Beginners ask days. Days don't matter. Sample size and full week-cycles matter.

My rule:
— Minimum 1 full business cycle. Mon-buyers behave nothing like Sun-buyers.
— Stop only after a fixed-horizon sample target you set BEFORE launch.

Last month I called a winner Day 3 at +18%. Felt great. Ran it the full week. Ended at +2% and not significant. The Tuesday spike was a fluke.

Day 3 of any test you are looking at noise wearing a costume.

Go set a sample target now. Don't peek-and-pick. Report back when it bakes.


content:
<b>"Not enough traffic to A/B test?" Here's the floor.</b>

Real answer: if your variant needs to lift conversions less than ~100 conversions PER arm to prove out, you're stuck. Traffic isn't the unit. Conversions are.

Sub-1000 conversions/month? Don't split-test 5% button-color stuff. You'll never hit significance before the next century.

What I do on thin traffic:
— Test BIG swings only (whole hero, whole offer). Big effects need less sample.
— Stack the test 50/50, no fancy multivariate.
— Accept you're hunting elephants, not mice.

Go count your monthly conversions. Under 1000? Only test changes you'd bet a beer move the needle 20%+.


content:
<b>"What's statistical significance?" In hustler English.</b>

It's the dashboard telling you: "this gap is probably real, not a coin-flip fluke."

95% confidence = roughly 1-in-20 chance you got fooled by randomness. Not certainty. A bet with decent odds.

The trap nobody warns beginners about: significance with tiny sample is a liar. 12 conversions vs 8 can show "99% confident, +50%!" That's garbage. The math is right; the sample is a joke.

Day 1 I trusted a 99% readout on 40 visitors. Lost two weeks chasing a ghost variant.

Go ignore the confidence % until your sample is fat. Numbers first, percentages second.


content:
<b>"A/B test or multivariate?" For beginners: A/B. Always.</b>

Multivariate (MVT) tests combos: 3 headlines × 3 buttons × 2 images = 18 variants. Sounds powerful. It's a traffic-eating monster.

18 arms means you need ~18x the sample. On normal traffic you'll get a result around the heat death of the universe.

What actually works:
— Run A/B. One change.
— Win, ship it, then A/B the next element.
— Sequential beats simultaneous when traffic is mortal.

MVT is for sites doing millions of sessions. You are not that site yet.

Go kill any test with more than 2-3 variants. One question at a time. Report back.


content:
<b>"What do I test FIRST?" Money pages, money moments.</b>

Not your blog. Not your footer. Beginners waste their first test on low-traffic, low-stakes pages.

My priority stack:
— 1. The page right before the money action (checkout, signup, the offer).
— 2. The hero of your highest-traffic landing page.
— 3. The CTA verb on both.

Why: highest traffic × closest to revenue = fastest significance AND biggest dollar impact.

First test I ever ran was on an About page. Three weeks, learned nothing, made $0. Embarrassing.

Go open analytics. Find your highest-traffic page that touches money. Test THAT hero first. Report back.


content:
<b>"My test 'lost' but revenue went up?!" Welcome to the trap.</b>

Classic beginner gut-punch. Your variant had LOWER click-through but HIGHER revenue. Confusing as hell.

What happened: you optimized the wrong metric. More clicks ≠ more money. You probably filtered out tire-kickers.

Day 4 of a CTA test mine: "Get Instant Access" beat "See Pricing" on clicks by 30%. But "See Pricing" made 22% more revenue. Why? It pre-qualified buyers. Clickers on the loud CTA bounced at checkout.

Lesson burned in: pick your win-metric BEFORE launch, and make it the one closest to cash.

Go check: are you measuring clicks or dollars? Switch to dollars.


content:
<b>"Can I change two things in one test?" You can. You'll learn nothing.</b>

Beginner instinct: new headline AND new button AND new image, all at once. Variant wins by 25%. Great! ...which change did it?

No idea. You can't reuse the lesson. You just have a lucky page, not knowledge.

The ONE exception: if you're redesigning a whole section as a unit and only care "old vs new," bundle it. You're testing the concept, not the parts.

But if you want a repeatable playbook? One variable. Always.

Day 2 I bundled 4 changes, won big, and couldn't replicate it on the next page. Useless win.

Go isolate your variable. One thing. Report back.


content:
<b>"How many tests can I run at once?" More than you think — with one rule.</b>

Beginners think tests must run solo. False. You can run multiple IF they don't touch the same page or the same user journey.

Safe: hero test on landing page A + checkout test on flow B. Different pages, no interaction.

Dangerous: two tests on the same page. They contaminate each other. Now you can't untangle which variant did what.

My setup: I keep 3-4 tests live, each on a different funnel stage. Test velocity goes up, no cross-contamination.

Go map your funnel. Run one test per stage, never two on one page. Report back.


content:
<b>"Can I A/B test my PRICE?" Yes, but read this first.</b>

Beginners get nervous here. Fair. Two real risks nobody mentions:

— Legal/trust: if two customers find out they saw different prices same day, that's a bad look. Test price PRESENTATION, not raw price, when you can. ($49 vs "$49, billed annually" vs "less than $2/day").
— The honor-the-lower-price move: if someone saw $39, charge $39. Always.

Day 5 of a pricing test I ran "$29/mo" vs "$290/yr (save $58!)". Same money. Annual framing lifted LTV 31%. No raw-price change, no drama.

Go test the FRAMING of your price before the number itself. Report back.


content:
<b>"What testing tool should I start with?" Cheapest one that won't slow your page.</b>

Beginners overthink this. The tool barely matters at your stage. Page-flicker matters.

Watch for: client-side tools (the redirect-and-swap kind) cause FOOC — flash of original content. User sees version A blink to version B. Tanks your numbers AND your test.

My starter pick logic:
— Low traffic, low budget? Free tier of anything reputable. Or roll a 50/50 split server-side if you've got a dev.
— Server-side > client-side for clean data, always, if you can swing it.

Go load your page and watch for flicker. If it blinks, your tool is poisoning the test. Report back.


content:
<b>"My test came back 'no difference.' Did I fail?" No. That's data.</b>

Beginners treat a flat result as a wasted week. Wrong. "No significant difference" tells you something loud: that element doesn't move your audience. Stop fiddling with it.

Day 7, my green-vs-orange button test: dead flat. 50.1% vs 49.9%. People kept telling me button color is huge. For my audience, it was noise.

That null result saved me from a month of color obsession. I moved budget to headline tests, found a +14% there.

Nulls redirect your effort. That's a win, not a loss.

Go log your flat tests as 'don't bother again.' Then test something bigger. Report back.


content:
<b>"Can I stop a test early if it's winning huge?" Only with one guardrail.</b>

Beginners peek, see +40%, and slam the brakes. This is the #1 way to ship a fake winner. Early leads regress hard toward the middle.

The guardrail: if you MUST stop early, use a sequential testing method built for peeking (the kind that adjusts thresholds as you look). Standard fixed-horizon tests are NOT safe to peek-and-stop.

Day 2 I stopped a "+38%" winner. Rolled it out. Real lift was +3%. The early gap was variance, not signal.

If your tool doesn't do sequential math, don't peek. Set the sample, walk away.

Go find out if your tool supports always-valid stopping. If not, no early calls. Report back.


content:
<b>"Should I test mobile and desktop together?" Run together, READ apart.</b>

Beginner mistake: looking only at the blended number. Variant wins overall +8%. Ship it!

Then you segment: desktop +20%, mobile -6%. Your blended 'win' is quietly hurting half your traffic.

Day 4 of a hero test, exactly this. New big-image hero crushed on desktop, died on mobile (image pushed the CTA below the fold). Blended looked fine. Segmented told the truth.

Fix: run one test, but always slice results by device before declaring anything. Sometimes the answer is 'ship to desktop only.'

Go re-open your last 'winner' and segment by device. Bet you find a surprise. Report back.


content:
<b>"How big should the change between A and B be?" Bigger than you think.</b>

Beginners test timid: "Buy Now" vs "Buy now." Capital N. Then wonder why every test is flat.

Tiny changes need MASSIVE sample to detect, because the effect is tiny too. On normal traffic, you'll never resolve it.

My rule for small sites: if you can't explain in one sentence WHY the variant should win, the change is too small.

Day 1 of testing I burned two weeks on micro-copy tweaks. Once I started testing whole-message swaps ('save time' vs 'make money'), results popped immediately.

Go make your next variant DIFFERENT, not polished. Different message, not a comma. Report back.


content:
<b>"My returning users love the new version — real win?" Careful: novelty effect.</b>

Beginners forget existing users react to NEW, not BETTER. Change anything and regulars click it just because it's different. The bump fades.

This fakes out tests heavy on returning visitors.

Day 3 of a nav redesign: returning users +25%, I was ready to celebrate. By Day 10 it had decayed to +4%. The early spike was pure 'ooh, shiny.'

Fix: for sites with lots of repeat visitors, run longer AND segment new-vs-returning. The truth lives in NEW users — they have no 'before' to react to.

Go segment your last test by new vs returning. If the win is only in returning users, wait it out. Report back.


content:
<b>"What goes in the 'A' slot?" Your CURRENT version. Always. Non-negotiable.</b>

Beginners sometimes test two NEW ideas against each other with no control. Variant B beats Variant C. Cool — but is either better than what you have now?

No idea. You just picked the better of two unknowns. Could both be worse than the live page.

Rule: A = control = exactly what's live now. B = your challenger. You're measuring 'better than reality,' not 'better than my other guess.'

Day 2 mistake of mine: tested two new headlines, shipped the winner, traffic DROPPED. The old headline beat both. Ouch.

Go make sure your control is the real, current, live page. Report back.


content:
<b>"My split shows 60/40 instead of 50/50 — bug?" Probably. Don't trust that test.</b>

Beginners ignore this. Huge mistake. If you set 50/50 and the dashboard shows lopsided traffic, something's broken — and it's silently corrupting your result.

This is Sample Ratio Mismatch (SRM). Causes: bots hitting one arm, a redirect failing on one variant, tracking dropping users unevenly.

Day 6, my split crept to 56/44. I almost ignored it. Turned out variant B's page errored for Safari users — they bounced before tracking fired. The 'loss' was a bug, not the copy.

Fix: if your split drifts more than a couple % from target, STOP. Find the leak before reading results.

Go check your split ratio right now. Lopsided? Investigate before you trust a single number.


content:
<b>"Can I run a test during a sale/promo?" Technically yes. Practically — don't.</b>

Beginners launch tests whenever. Then a flash sale, a holiday, or a big email blast hits mid-test and warps everything.

Promo traffic behaves wildly different — more buyers, more urgency, different intent. Your variant might win during the sale and lose every other week.

Day 3 of a checkout test, a Black-Friday email dumped 5k buyers into it. Variant 'won.' Re-ran it in a normal week: flat. The promo crowd would've bought anything.

Rule: test in NORMAL conditions, or run long enough that the promo is a small slice. Don't let one spike write your conclusion.

Go check your calendar before launching. Big traffic event coming? Wait. Report back.


content:
<b>"I shipped a winner — am I done?" Nope. Re-validate, or you'll get burned.</b>

Beginners ship the winner and never look back. Then conversions quietly sag a month later and they blame the algorithm.

Why: winners can be flukes that survived significance (that 1-in-20 false positive is real), OR your audience/season shifted.

My habit: for any high-stakes winner, I re-run it 4-6 weeks later as a quick confirmation A/B. Cheap insurance.

Day 30 after shipping a 'winner,' I re-tested it. The lift was gone — turned out a competitor's price drop had changed buyer behavior entirely. Glad I checked.

Go put a calendar reminder to re-validate your biggest winner in 6 weeks. Trust, then verify. Report back.


content:
<b>"How do I come up with test ideas?" Stop guessing. Watch the tape.</b>

Beginners brainstorm variants from their gut and wonder why 8 of 10 flop. Random ideas = random results.

Where real test ideas come from:
— Session recordings: watch 20 people. Where do they rage-click, scroll past, bounce?
— Heatmaps: what do they NEVER see? (your buried CTA, probably)
— Support tickets: the same confusion 5 times = your next headline test.

Day 1 of watching recordings I found users hunting for a 'pricing' link that didn't exist in the nav. Tested adding it: +11% to checkout. Zero guesswork.

Go watch 20 session recordings before your next test. Let users hand you the variant. Report back.


channel_name: The Pixel Diary

content:
<b>"Why did my bounce rate vanish?"</b>

A new analyst at a mid-size recipe site panicked: bounce rate disappeared after their GA4 migration. They thought tracking broke.

The clue was in the old Universal Analytics export. In the old world, a 78% bounce rate counted anyone who read a full recipe and left as a "bounce." GA4 replaced it with engagement rate, which counts a session as engaged if it lasts 10+ seconds, fires 2+ events, or has a conversion.

Same visitors, new lens. When we mapped it, that scary 78% bounce became a 64% engagement rate. The site was healthy all along.

The change was just reframing the report for the team: we built one card showing engaged sessions per article instead of bounce.

The result: the "problem" pages with 78% bounce were actually the best readers on site, averaging 3m12s. They'd been one edit away from getting cut.

Lesson: bounce and engagement are mirror images, not the same metric. Don't kill a page on a number you haven't redefined.