content:
<b>How to raise your rate with a brand you already work with</b>
Raising a rate with a returning client feels scary, but it's normal business. You do it with a plan, not an apology.

Follow four steps:
— Time it at a renewal or new campaign, never mid-project
— Lead with results ('Last post drove 4,000 visits.')
— State the new number simply ('My rate is now $700, up from $550.')
— Give a small reason and hold steady ('My audience has grown 30% since.')

Example: 'Loved working together. For the next round my rate is $700. Here's what the last campaign delivered.'

No over-explaining. Confidence and a result do the work.

Your move: track one strong metric from every deal. It's your evidence for the next raise.


network: usawave

cluster: smm

channel_name: Deal Desk 101

format: evergreen

content:
<b>How to compare two brand offers fairly</b>
The higher number isn't always the better deal. To choose well, you compare the full picture, not just the dollar sign.

Line them up on five rows:
— Pay
— Deliverables (how much work?)
— Usage rights (how long can they run it?)
— Exclusivity (does it block other income?)
— Payment terms (paid in 15 days or 60?)

Example: Offer A is $800, 1 post, 30-day rights. Offer B is $1,000 but wants 3 posts, a year of ad rights, and 90-day exclusivity. Per hour, A might pay more — and leaves you free.

Your move: divide pay by the hours and restrictions, not just the headline number. That's your real rate.


content:
<b>Today's term: setting up a kill fee</b>
A kill fee = money you keep if the brand cancels after you've started. Without it, a canceled deal can mean hours of work for $0.

Set it up in three steps:
— Decide your trigger ('once I begin filming')
— Set the amount (25–50% of the total is common)
— Add one line to the contract

Example: '$1,000 project. If canceled after production begins, a 50% kill fee ($500) applies.'

This isn't aggressive — it's standard in professional work. Brands cancel for reasons that have nothing to do with you, and your time still cost you something.

Your move: add a kill-fee line to your contract template once, and it protects every future deal automatically.


content:
<b>How to review a brand's edits to your contract</b>
When you send terms and they send back changes, those edits are the real negotiation. Read them like a hawk, kindly.

Do this every time:
— Compare old vs new side by side (most apps show 'track changes')
— Watch for added words: 'exclusive,' 'perpetuity,' 'unlimited,' 'sole discretion'
— Check if your payment terms got stretched (Net 30 quietly became Net 60?)
— Confirm your deposit and kill fee survived their edit

Example: they 'just cleaned it up' but usage rights jumped from 30 days to 6 months. That's a price change, not cleanup.

Your move: never sign a returned contract without re-reading it fully. The dangerous changes are always the quiet ones.


content:
<b>How to set your very first base rate</b>
Your base rate = the price for one standard post, before any add-ons. With no past deals to copy, you build it from your real costs.

Add up four things:
— Your time (filming + editing hours × what your hour is worth)
— Your costs (props, software, location)
— A profit margin on top (this is a business, not a hobby)
— A sanity check against creators your size

Example: 5 hours at $40 = $200, plus $50 costs, plus margin = round to $350 base.

Don't price off follower count alone — engagement and effort matter more.

Your move: do this math once and write the number down. A real base beats a guessed one every single time.


content:
<b>Your final checklist before you sign anything</b>
Right before signing, run one last pass. This is the moment to catch what you missed, while you still have all the power.

Confirm all seven, out loud if it helps:
— Deliverables are exact (format, quantity, platform)
— Total pay and currency are correct
— Payment terms and any deposit are written
— Usage rights: length and places are defined
— Exclusivity: scope and duration are limited
— Revision rounds are capped
— A kill fee or cancellation term exists

If any line makes you say 'I think so,' it's not ready.

Your move: keep this list pinned. Reading seven lines takes two minutes and saves you from the regrets that cost weeks.


cluster: seo

channel_name: Map Pack Diaries

content:
<b>The category nobody checks</b>

Meet a med spa owner in Austin who couldn't crack the top three for "botox." Her listing looked perfect. Photos, hours, reviews — all there.

We opened her Google Business Profile and found the problem in eight seconds. Primary category: "Skin Care Clinic." The three businesses above her? All set to "Medical Spa."

Here's the playbook we ran:

— Pull the top three competitors and read their primary category (use a Chrome extension that exposes it, or check the page source for the GCID string)
— List every category they use as secondary
— Match your primary to the one ranking, not the one that "describes" you
— Add up to nine secondary categories, most relevant first
— Never invent — pick only from Google's existing list

Three weeks in, nothing moved. We almost reverted.

Then week four she jumped from page two to position two. Calls went from 11 a week to 34. One field. One dropdown.

The lesson: your primary category is the single biggest ranking lever in the whole profile, and most owners set it once and never look again.


content:
<b>The 90-minute review window</b>

Meet a dentist in Manchester drowning in reviews she never answered. 240 of them. Beautiful average. Zero replies.

We didn't ask for more reviews. We built a response system instead.

The playbook:

— Reply to every new review inside 90 minutes during business hours (we set a phone alert)
— For five stars, name the service in the reply: "glad the Invisalign consult went smoothly" — that's a keyword Google reads
— For one-stars, answer in three sentences: acknowledge, take it offline, never argue
— Backfill the old ones at 20 per day so it looks organic, not panicked
— Track reply rate weekly, aim for 100 percent

Two weeks of silence on the rankings. The owner texted me "this is pointless."

Week three the listing climbed two spots and her conversion rate on profile views jumped — people read the replies before they call. Bookings up 28 percent with the exact same review count.

The lesson: Google rewards businesses that treat reviews as a conversation, not a scoreboard. The reply is content too.


content:
<b>Forty-one versions of one phone number</b>

Meet a plumber in Phoenix stuck at position seven for two years. Solid business, 18 trucks, going nowhere on the map.

We ran a citation audit and found the rot. His old number lived on 41 directories. His suite number appeared three different ways. One listing still had the address from 2016.

The cleanup playbook:

— Export every citation from an aggregator scan
— Pick ONE canonical version of name, address, phone — copy it exactly from the Google Business Profile
— Fix the big four first: Apple Maps, Bing, Yelp, Data Axle (these feed everything else)
— Hunt duplicate listings and request merges, don't just edit
— Kill the dead 2016 listings entirely

We fixed 41 entries over nine days. Then we waited.

Nothing. Three weeks of flat rankings while Google re-crawled.

Week five he moved to position three. The trust signal finally lined up. Calls up 40 a month.

The lesson: Google doesn't reward perfect citations, it punishes contradictory ones. Consistency beats volume every time.


content:
<b>The photos that whispered the wrong city</b>

Meet a wedding photographer in Denver who ranked for her studio's block and nowhere else. She shot all over the metro but the map only knew one street.

We looked at her uploads. Forty gorgeous images, every one stripped of location data the moment it hit her editing software.

The geo-photo playbook:

— Shoot or re-save real photos with location data intact (a free phone app can write coordinates back in)
— Name files before upload: "wedding-photographer-cherry-creek-denver.jpg"
— Upload three to five per week, never a dump of forty at once
— Cover the suburbs you serve — one shoot tagged in each
— Add a one-line caption naming the neighborhood

Weeks passed. Her core ranking held but the suburbs stayed dark.

Then the turn: a bride in Lakewood found her in the map pack for "wedding photographer near me." Then Aurora. Then Golden. Five new service-area neighborhoods inside two months. Inquiries doubled.

The lesson: Google reads everything attached to a photo, and most people scrub the very signal that tells it where they actually work.


content:
<b>One page, eleven towns, zero rankings</b>

Meet a garage door company in Ohio trying to serve eleven towns with a single "Areas We Serve" page. A wall of town names, hyperlinked to nothing. Dead weight.

We tore it down and built real local landing pages.

The playbook per town:

— A unique title: "Garage Door Repair in [Town], OH"
— 600+ words of genuinely local content — the highway they're off, the subdivisions, a job you actually did there
— One embedded map centered on that town, not the HQ
— A real customer quote from someone in that town
— Internal links from the homepage and two neighbor-town pages

We built eleven. Three weeks later: silence. Google hadn't even indexed half.

Week six, the first town page hit the map pack's local finder. Then three more. By month three, seven of eleven towns delivered organic calls — 60-plus a month from pages that didn't exist in spring.

The lesson: a town name in a list is invisible. A town name with a story, a map, and a customer is a landing page Google can rank.


content:
<b>The empty services tab</b>

Meet an HVAC contractor in Sacramento with a flawless profile and one blind spot — the Services section was completely empty. He didn't even know it existed.

That tab is a keyword goldmine almost nobody fills.

The playbook:

— List every service as its own entry, not a generic "HVAC"
— Use the exact phrases people search: "AC repair," "furnace replacement," "ductless mini split install"
— Write a 2-3 sentence description under each, naming the service and the city
— Add custom services Google's preset list misses
— Mirror these phrases on your website so they reinforce

We filled 22 services in one afternoon. Then the usual wait — two flat weeks.

Week three his profile started surfacing for searches he'd never ranked for: "mini split install near me," "emergency furnace repair." Long-tail searches he'd been invisible for now sent 25 extra calls a month.

The lesson: the Services menu is structured text Google reads as relevance signals. An empty tab is a stack of rankings you're handing to competitors.


content:
<b>From two reviews a month to nineteen</b>

Meet a mobile mechanic in Leeds with great work and a terrible review trickle. Two a month, all from customers who were already raving. The quiet-happy majority never wrote a word.

We built an ask system, not a hope system.

The playbook:

— Generate the short Google review link once (the g.page/r/ format), shorten it
— Text it within an hour of the job, while the relief is fresh
— One line: "Glad we got you back on the road — mind dropping a quick review? [link]"
— Train every tech to ask in person first, then the text confirms
— Never incentivize, never batch — one customer, one ask, same day

First week: four reviews. He figured it was a fluke.

By month two he was averaging 19 a month. The volume and freshness pushed him into the map pack for "mobile mechanic Leeds," and the reviews themselves named the services he wanted to rank for.

The lesson: happy customers don't withhold reviews out of spite — they just forget. A same-day link removes the only friction that matters.


content:
<b>Chasing a phrase nobody can target</b>

Meet a locksmith in Brooklyn obsessed with ranking for "locksmith near me." He'd stuffed the phrase everywhere. It did nothing, because "near me" isn't a keyword you write — it's a signal Google assembles.

We rebuilt around what "near me" actually rewards.

The playbook:

— Nail proximity signals first: exact address, pinned map, correct service area radius
— Win the category match (primary set to "Locksmith," not "Security System Supplier")
— Get reviews that mention neighborhoods: Williamsburg, Bushwick, DUMBO
— Add real hours including "open now" reliability — 24/7 listings win night searches
— Speed up the mobile site, since near-me is overwhelmingly on phones

Weeks one and two, no movement on the near-me searches. Frustrating, because we'd removed his beloved keyword stuffing.

Week four, the night searches started converting — "open now near me" sent emergency calls at 2am. Up 30 calls a month, most after dark.

The lesson: you don't optimize for "near me," you optimize to BE the nearest relevant open business. The phrase is the result, not the input.


content:
<b>The feature he ignored for three years</b>

Meet a pizzeria owner in Brooklyn who'd never once used Google Posts. "That's for big brands," he told me. Meanwhile his profile sat static while competitors looked alive.

We turned Posts into a weekly habit.

The playbook:

— Post once a week minimum — Google favors fresh activity
— Rotate three types: an offer, a new menu item, an event
— Lead every post with a local keyword: "Best Sicilian slice in Park Slope"
— Add a real photo, never stock
— Use the call-to-action button — "Order" or "Call" — and track clicks

Week one and two, the rankings didn't budge. He felt silly writing about garlic knots.

Week four something shifted — his profile views climbed 22 percent and the "Order" button clicks turned into actual delivery orders. The freshness signal plus the keyword-rich posts nudged him above a stale competitor.

The lesson: Google reads Posts as proof the business is active and relevant. The pizzeria that talks every week beats the one that went quiet in 2022.


content:
<b>Twelve clinics, one chaotic dashboard</b>

Meet a regional dental group launching twelve new clinics at once. The marketing manager was about to copy-paste one description across all twelve. That's how you get a thin, duplicate, low-trust footprint.

We built a multi-location playbook instead.

The steps:

— Use a single Business Profile group, not twelve personal accounts
— Give each location a UNIQUE description naming its own city and landmarks
— Assign a local phone number per clinic, never one central line
— Build a dedicated store-locator page that links out to each location page
— Stagger verification — Google flags twelve identical setups appearing the same day

The first verifications crawled. Two weeks of postcards and waiting, half the locations still unverified.

Then they cleared in a wave. Each clinic ranked in its own town's map pack within a month — because each looked like a real, distinct business, not a template. Combined, 200-plus new patient calls a month across the group.

The lesson: multi-location SEO fails when locations look like clones. Sameness reads as spam; local detail reads as real.


content:
<b>The unanswered questions costing her bookings</b>

Meet a hair salon owner in Miami losing customers to her own Q&A section. Strangers had asked "do you do balayage?" and "is there parking?" — and nobody had answered. The void looked like neglect.

That section is owner-controllable, and almost nobody uses it.

The Q&A playbook:

— Answer every existing question, even the awkward ones, within a day
— Seed your own FAQs: post the question from one account, answer from the business
— Write questions around keywords: "Do you offer keratin treatments in Brickell?"
— Upvote the best answers so they pin to the top
— Re-check weekly — anyone can post a new question or a wrong answer

We seeded ten questions. For two weeks, nothing in the rankings moved.

Then the turn: those keyword-rich Q&As started showing in her profile for service searches, and conversion climbed because people got answers before they ever called. Bookings up 24 percent.

The lesson: an empty Q&A section isn't neutral — it's a wall of unanswered doubt. Seed it, and it becomes a second keyword-rich FAQ Google can read.


content:
<b>Why his 'number one' ranking was a lie</b>

Meet a roofer in Leeds celebrating his number-one map ranking. He checked from his office every morning and there he was, top of the pack. Except his office sat in the city center, and his customers didn't.

We set up a real grid tracker.

The playbook:

— Stop checking from one location — local rankings change every few blocks
— Use a grid tool that pings your keyword from dozens of points across the service area
— Map the heat: green where you rank, red where you vanish
— Find the red zones — usually the affluent suburbs you most want
— Aim every fix (citations, reviews, service pages) at the red

The first grid scan was brutal. Number one downtown, invisible three miles out — exactly where the expensive roofs were.

We spent six weeks feeding the red zones. Slowly the map greened up. The suburb that mattered most went from rank 14 to rank 3. Quote requests for big jobs up 35 percent.

The lesson: a single-point ranking check is a comforting lie. The grid shows you where you actually exist — and where the money is hiding in the red.


content:
<b>750 wasted characters</b>

Meet a CPA in Boston whose business description read like a mission statement. "We strive to deliver excellence with integrity." Beautiful. Useless. Not a single keyword, not a single city.

That 750-character field is prime real estate.

The rewrite playbook:

— Front-load the first sentence with your service and city — it shows before the "more" cutoff
— Name your top three services in natural sentences, not a list
— Mention the neighborhoods and suburbs you serve
— Drop the adjectives ("excellence," "passion") and add specifics ("tax prep for freelancers," "S-corp filings")
— Never keyword-stuff — Google flags it and it reads like spam

We rewrote it in twenty minutes. Then two flat weeks while it re-indexed.

Week three his profile started matching service-specific searches — "S-corp accountant Boston," "freelance tax help Back Bay." The vague mission statement had been invisible to all of them. Twenty extra qualified calls a month.

The lesson: nobody searches for "integrity." Your description should answer what you do, where, and for whom — in the first sentence, before the fold.


content:
<b>Great reviews, wrong words</b>

Meet a contractor in Portland with 90 glowing reviews that all said the same thing: "great guys, highly recommend." Warm, generic, and ranking him for absolutely nothing.

Reviews are keyword content. His said nothing about kitchens, decks, or Portland.

The review-keyword playbook:

— After a job, prompt gently: "if you mention the kitchen remodel and the neighborhood, it helps others find us"
— Never script the review — just nudge the topic
— Reply to each one repeating the service and city naturally
— Target one service per month so the keywords don't all clump
— Track which phrases start appearing in your rankings

First month, the new reviews started naming services. Rankings stayed flat — Google needed volume.

Month three the dam broke: "deck builder Portland," "kitchen remodel Sellwood" — phrases now living in his reviews — pulled him into the map pack for each. Project inquiries up 30 percent, and bigger jobs.

The lesson: "highly recommend" ranks you for "recommend." Reviews that name the service and the place become the keywords you've been begging your website to rank for.


content:
<b>Stuck in verification limbo</b>

Meet a new bakery owner in Glasgow frozen out of her own listing. Three postcards never arrived. Video verification kept failing. Six weeks, no live profile, no map presence, opening day looming.

Verification has more paths than most people realize.

The troubleshooting playbook:

— If postcards fail twice, switch methods — request video or phone verification
— For video, plan the shot: exterior signage, then the street, then inside, then your point-of-sale, in one unbroken take
— Match every on-camera detail to the listing exactly — sign wording, address numbers
— If it keeps failing, request a live video call with support
— Never create a second listing to "try again" — that triggers a suspension

The first video got rejected — she'd filmed inside before showing the storefront. Demoralizing, with opening day a week out.

The re-shot video, exterior-first, cleared in three days. Profile live, on the map for "bakery Glasgow" by opening weekend. A line out the door.

The lesson: verification isn't a wall, it's a sequence. When one method fails, the next one usually works — if you stop trying to game it.


content:
<b>The links that actually moved the map</b>

Meet a pediatric dentist in Nashville with a great profile and a flat ceiling. Citations were clean, reviews strong, but the map pack wouldn't let her past position four. She needed local authority.

Not backlinks in general — local ones.

The playbook:

— Sponsor one local youth sports team — the league site links back, and it's hyper-local
— Get listed on the local chamber of commerce and parents' association sites
— Offer a free dental-day to a nearby school; the school newsletter links to you
— Pitch one guest piece to a Nashville parenting blog
— Skip national directories — Google weighs a Nashville .org over a generic listing

We landed four local links over a month. Rankings didn't twitch — Google needed to re-crawl and weigh them.

Week six she broke into position two. The local relevance of those links — all Nashville, all family-focused — told Google she belonged at the top of that specific map. New-patient calls up 27 percent.

The lesson: for the map pack, a link from the local little-league site beats a dozen generic directory links. Relevance and place outweigh raw authority.


content:
<b>Beaten by businesses that didn't exist</b>

Meet a real locksmith in Houston buried under fakes. Above him in the map pack: "24/7 Fast Locksmith," "Cheap Lock Pros" — keyword-stuffed names, no real address, listings that were pure spam. He was losing honest calls to ghosts.

You can fight this. Most people never try.

The spam-fighting playbook:

— Document each fake: screenshot the stuffed name, the fake address, the lack of signage
— Use Google's Business Redressal Complaint Form — the formal channel, not "suggest an edit"
— Report keyword-stuffed names specifically ("24/7 Fast" isn't their legal name)
— Submit evidence the address is a vacant lot or residential — Street View screenshots help
— File patiently, one per submission, and re-file if ignored

Weeks passed with the fakes still ranking. He was ready to quit.

Then two of the worst offenders dropped off the map entirely. With the spam cleared, his legitimate listing rose into the pack naturally. Calls up 30 a month — calls that had been going to businesses that didn't exist.

The lesson: spam in your map pack isn't permanent furniture. The redressal form works, but only for the people willing to document and file.


content:
<b>The checkboxes that won the holidays</b>

Meet a flower shop owner in Edinburgh losing Valentine's and Mother's Day searches every year. Her profile was solid the other 363 days. On the two that mattered, customers couldn't tell if she was open or delivering.

The fix lived in two overlooked sections: attributes and special hours.

The playbook:

— Set special hours weeks ahead for every holiday — Google surfaces "holiday hours" prominently
— Tick every relevant attribute: "same-day delivery," "in-store pickup," "women-owned," "wheelchair accessible"
— Attributes feed filtered searches — "florist with delivery near me" only shows businesses that ticked it
— Add the "delivery" service area explicitly
— Refresh attributes seasonally as offerings change

We filled it all in January. For weeks, nothing — it wasn't holiday season yet.

Then Valentine's week hit. She surfaced for "same-day flower delivery Edinburgh" because she'd ticked the box competitors ignored, and her holiday hours reassured every searcher she was open. Orders up 45 percent over the prior year on that single week.

The lesson: attributes and special hours are silent ranking and filtering signals. The boxes you don't tick are the searches you don't appear in.


cluster: webmaster

channel_name: Lockdown Ledger

content:
WAF Baseline Ruleset SOP
Deploy a minimum rule set before tuning anything custom.

— Step 1: Enable the OWASP Core Rule Set at paranoia level 1. Higher levels false-positive on day one.
— Step 2: Block known-bad request patterns: ../ traversal, UNION SELECT, <script in query strings.
— Step 3: Geo-rate-limit /wp-login.php and /xmlrpc.php to 10 req/min per IP.
— Step 4: Run in detection mode for 72 hours. Review logs for legitimate hits.
— Step 5: Whitelist confirmed false positives by rule ID, never disable whole categories.
— Step 6: Flip to blocking mode.
— Verify: a test SQLi payload in a query param returns 403.

Run this every time.


content:
New-Site Hardening SOP
Run this in order before a site ever sees public traffic.

— Step 1: Force HTTPS, install HSTS, redirect all HTTP to HTTPS.
— Step 2: Delete the default 'admin' username; create a named admin with a 20+ char passphrase.
— Step 3: Enforce 2FA on that account immediately.
— Step 4: Disable file editing and file mods in wp-config.
— Step 5: Set directory 755 / file 644 permissions; wp-config to 600.
— Step 6: Disable XML-RPC and user-enumeration via /?author=1.
— Step 7: Deploy the seven security headers.
— Step 8: Install a login lockout policy.
— Step 9: Confirm automatic core security updates are on.

Run this every time.


content:
Uploads Directory Lockdown SOP
A webshell dropped in uploads/ is the most common reinfection vector. Make it non-executable.

— Step 1: Nginx — deny PHP under uploads: location ~* /wp-content/uploads/.*\.php$ { deny all; }
— Step 2: Apache — drop a .htaccess in uploads/ with <FilesMatch "\.ph(p|tml)$"> Require all denied </FilesMatch>
— Step 3: Block double extensions like shell.php.jpg by matching \.ph anywhere.
— Step 4: Restrict allowed MIME types on upload to images and docs you actually need.
— Step 5: Verify the bit isn't executable: find uploads/ -type f -perm -u+x returns empty.
— Verify: upload a harmless .php to uploads/ and confirm it downloads, not executes.

Run this every time.


content:
SSH Key-Only Access SOP
Kill password auth on the server before automated scanners find it.

— Step 1: Generate an ed25519 key: ssh-keygen -t ed25519 -a 100. RSA is fine at 4096 but ed25519 is shorter and strong.
— Step 2: Copy the public key: ssh-copy-id deploy@host. Confirm login works.
— Step 3: In sshd_config: PasswordAuthentication no and PermitRootLogin no.
— Step 4: Restrict to a deploy user; admins escalate via sudo with logging.
— Step 5: Move SSH off port 22 to cut log noise — defense in depth, not a control.
— Step 6: systemctl reload sshd from a second open session.
— Verify: a password login attempt is refused.

Run this every time.


content:
Database Least-Privilege SOP
The app DB user should never be able to drop your tables.

— Step 1: Audit current grants: SHOW GRANTS FOR 'wpuser'@'localhost';
— Step 2: Strip dangerous privileges the app never needs at runtime: DROP, GRANT OPTION, FILE.
— Step 3: Grant only SELECT, INSERT, UPDATE, DELETE on the one app schema.
— Step 4: Create a separate, higher-privileged migration user used only during deploys.
— Step 5: Bind MySQL to 127.0.0.1 — no remote DB exposure.
— Step 6: Rotate the DB password and update wp-config in the same maintenance window.
— Verify: the app user fails a test DROP TABLE with a permission error.

Run this every time.


content:
<b>Plugin Vulnerability Triage SOP</b>
Work the disclosure feed like a queue, not a panic.

— Step 1: Cross-reference installed plugins against a CVE feed (WPScan / Patchstack) daily.
— Step 2: For each hit, classify: actively exploited, auth-required, or theoretical.
— Step 3: Patch actively-exploited and unauthenticated RCE within hours — that's the emergency tier.
— Step 4: For unpatched criticals, apply a virtual patch via WAF rule until the vendor ships.
— Step 5: Deactivate AND delete abandoned plugins (no update in 12 months) — deactivated code still ships files.
— Step 6: Snapshot before every update; smoke-test after.
— Verify: the vulnerable version no longer appears in your inventory.

Run this every time.


content:
wp-admin Access Restriction SOP
The dashboard should be reachable only by people who need it.

— Step 1: Identify your team's source IPs or VPN exit range.
— Step 2: Restrict /wp-admin/ and /wp-login.php at the server to that allowlist — but exclude admin-ajax.php, the front end needs it.
— Step 3: No static team IP? Put the dashboard behind a VPN or an auth proxy (Cloudflare Access).
— Step 4: Add HTTP basic auth as a second pre-WordPress gate on the login path.
— Step 5: Force HTTPS on every admin request via FORCE_SSL_ADMIN.
— Step 6: Log every admin-area hit to your central pipeline.
— Verify: an off-allowlist IP gets 403 at /wp-login.php.

Run this every time.


content:
<b>Compromise Containment SOP</b>
First 30 minutes after you suspect a breach. Contain before you investigate.

— Step 1: Snapshot the live state first — disk and DB — for forensics. Don't wipe evidence.
— Step 2: Rotate every secret: all admin passwords, the 8 wp-config salts, DB password, API keys.
— Step 3: Force-logout all sessions by changing the salts — invalidates stolen cookies.
— Step 4: Audit users for unknown admins created in the last 30 days; remove them.
— Step 5: Diff core/plugin files against known-good checksums to locate injected code.
— Step 6: Block the attacker's source IPs and pull the site behind maintenance mode if active exfil.
— Verify: no unauthorized admin accounts remain.

Run this every time.


content:
File Integrity Monitoring SOP
Know the instant a file changes that shouldn't.

— Step 1: Establish a baseline — hash every file in core, themes, and plugins after a clean deploy.
— Step 2: Store the baseline off-host; an attacker who edits files will also edit a local manifest.
— Step 3: Schedule a daily diff: any changed, added, or deleted file in core triggers an alert.
— Step 4: Whitelist legitimate write paths (uploads/, cache/) to cut noise — but still log them.
— Step 5: Compare WordPress core against official checksums via wp core verify-checksums.
— Step 6: Route alerts to a channel a human actually watches.
— Verify: touch a core file and confirm the alert fires within the cycle.

Run this every time.


cluster: affiliate

channel_name: Smartlink Ops

content:
SOP: Build a 3-Tier Smartlink Fallback Chain

Goal: never serve a dead click. Set up before any offer goes live.

— Step 1: Define Tier A (primary). Highest payout, tightest cap. Set cap_check=on.
— Step 2: Define Tier B (same vertical, looser geo). Trips only on Tier A cap-hit or 0 active offers.
— Step 3: Define Tier C (network-wide catch-all). No geo filter, no cap. This is your floor.
— Step 4: Set chain timeout to 800ms. If a tier doesn't resolve, drop to the next.
— Step 5: Inject a fb_tier sub-ID into every redirect so reporting shows which tier fired.
— Step 6: Force a cap-hit on Tier A in staging. Confirm traffic lands on B, then C.

Never leave Tier C empty. An empty floor = a 404 billed as a click.

Repeat: re-audit the chain weekly when offers rotate.


content:
<b>SOP: Order Geo Rules So They Don't Shadow Each Other</b>

Problem: geo rules fire top-down. A broad rule above a narrow one eats its traffic.

— Step 1: List every geo rule by specificity. City > region > country > continent > tier group (Tier 1/2/3).
— Step 2: Sort the rule stack narrowest-first. Place city/state targets above country defaults.
— Step 3: Put the 'rest of world' default dead last as the explicit final rule.
— Step 4: Tag each rule with the offer it points to and its expected geo, so overlaps are visible.
— Step 5: Send 5 test clicks per key country through a proxy. Confirm each lands where the rule intends.
— Step 6: Log any country that hits the ROW default but shouldn't. That's a missing rule, not a default.

Rule of thumb: if two rules could match one click, the specific one must sit higher.

Repeat weekly, and after every new geo offer add.


content:
<b>SOP: Set Weighted Split-Test Traffic Across Offers</b>

Use when rotating 2+ offers in one geo slot without an even 50/50.

— Step 1: Assign integer weights, not percentages. Offer A=70, B=20, C=10. Sum = 100 for easy reading.
— Step 2: Reserve at least 10 weight for any new/unproven offer so it gathers data.
— Step 3: Pin weights for 72 hours minimum. Changing mid-test corrupts the sample.
— Step 4: Set a minimum-clicks gate (e.g. 300/offer) before you read results.
— Step 5: Record the start timestamp and weight snapshot in a change log.
— Step 6: After the gate, shift 10-15 weight toward the winner. Don't jump straight to 100.

Never rebalance off the first hour of data. Early variance lies.

Repeat: review weights weekly, rebalance only after the clicks gate is met.


content:
<b>SOP: Stand Up Device-Based Routing</b>

Different landers convert per device. Route before you scale.

— Step 1: Split traffic into 4 buckets: iOS, Android, Desktop, Other/bot.
— Step 2: Parse user-agent AND screen-class hint. UA alone misses tablets and in-app browsers.
— Step 3: Route iOS and Android to their own offers; many networks gate payout by OS.
— Step 4: Send Desktop to a fallback or web-optimized offer, not the mobile one.
— Step 5: Dump 'Other' (unknown UA, datacenter) to a safe page, not a paying offer.
— Step 6: Test with a real device per bucket plus one UA-spoofed request. Confirm each routes correctly.

Watch in-app browsers (Instagram, TikTok). They report odd UAs and skew the 'Other' bucket.

Repeat: re-check device rules monthly as new OS versions ship.


content:
<b>SOP: Configure Caps So You Stop Sending to Dead Offers</b>

A hit cap that keeps receiving traffic burns clicks for free.

— Step 1: Read the network's cap unit. Daily conversions, daily clicks, or budget? They behave differently.
— Step 2: Set your cap 5-10% below the network's stated cap. Their counter lags yours.
— Step 3: Enable auto-pause on cap-hit so traffic rolls to your fallback, not a paused offer.
— Step 4: Set the cap reset time to the network's timezone, not yours. Mismatched resets cause dead windows.
— Step 5: Add a soft-cap alert at 80% so you can pre-stage a replacement.
— Step 6: Trigger a test cap-hit and confirm rollover fires within one click.

Never rely on the network to stop your traffic. Cap on your side first.

Repeat daily: confirm caps reset and no offer is stuck at 100%.


content:
<b>Checklist: Smartlink Pre-Launch QA</b>

Run before any smartlink touches live traffic. Tick all or hold the launch.

— ☐ Click a test redirect: confirm final URL loads, not a redirect loop.
— ☐ Verify the tracking pixel/postback fires (check network's click log shows your click).
— ☐ Confirm sub-IDs pass end-to-end (source, campaign, creative all arrive at the network).
— ☐ Force a fallback: cap or disable Tier A, confirm Tier B/C catch.
— ☐ Test 3 target geos via proxy; confirm correct offer per geo.
— ☐ Test iOS, Android, Desktop; confirm correct offer per device.
— ☐ Check HTTPS end-to-end. One http hop = browser warning + lost click.
— ☐ Confirm redirect chain is 2 hops or fewer. Each hop drops mobile clicks.

If any box is empty, the smartlink is not launch-ready.

Repeat this checklist on every new offer add, not just first launch.


content:
<b>SOP: Set Up Click Deduplication Rules</b>

Double-counted clicks inflate cost and break optimization.

— Step 1: Pick a dedup key: IP + user-agent + offer, hashed together. IP alone over-blocks shared networks.
— Step 2: Set the dedup window. 24h for most CPA; shorter for high-frequency push.
— Step 3: Decide behavior on a duplicate: serve a cached redirect but don't re-fire the postback.
— Step 4: Exempt legit re-clicks (back-button) by keying on offer, so a user trying a second offer still counts.
— Step 5: Log deduped clicks separately so you can see the dedup rate, not hide it.
— Step 6: Replay one identical click twice; confirm second is flagged, not paid.

Track your dedup rate. A sudden spike means bot traffic or a broken pixel upstream.

Repeat weekly: review dedup-rate trend per source.


content:
<b>SOP: Migrate a Smartlink to a New Domain Without Losing Clicks</b>

Domain flagged or rotating? Move clean.

— Step 1: Stand up the new domain and warm DNS 24h before cutover (TTL low at 300s).
— Step 2: Mirror every routing rule, cap, and fallback to the new domain. Diff both configs.
— Step 3: Run both domains in parallel; send 5% of traffic to the new one for a smoke test.
— Step 4: Confirm postbacks fire from the new domain in the network's log.
— Step 5: Flip remaining traffic. Keep old domain live as a 301 catch for in-flight clicks.
— Step 6: Watch conversion rate for 2 hours. A drop = a rule didn't copy.

Keep the old domain 301-ing for 7 days. Cached links keep arriving.

Repeat the parallel-test step on every domain rotation, no exceptions.


content:
<b>SOP: Add Carrier/ISP-Based Routing for Mobile Offers</b>

Mobile-content and pin-submit offers pay only on specific carriers.

— Step 1: Capture carrier from the network/headers or an IP-to-carrier lookup. Don't trust UA.
— Step 2: Build a rule per carrier-offer pair. Map each carrier to the offer that accepts it.
— Step 3: Detect Wi-Fi traffic separately; many carrier offers reject Wi-Fi outright.
— Step 4: Route Wi-Fi clicks to a fallback (non-carrier offer), not the carrier offer.
— Step 5: Add a tier-default for carriers with no mapped offer so nothing dead-ends.
— Step 6: Test one click per target carrier (real SIM or proxy) and one Wi-Fi click.

Wi-Fi vs mobile-data is the #1 silent killer here. Always split them.

Repeat: re-verify carrier mappings monthly; offers and carriers churn fast.


content:
SOP: Wire Up Server-to-Server Postbacks

No postback = blind optimization. Set it before spending.

— Step 1: Generate a unique click_id per click; pass it into the offer URL as the network's expected param.
— Step 2: Register your postback URL in the network with {click_id} and {payout} macros.
— Step 3: Whitelist the network's postback IPs on your endpoint to block spoofed conversions.
— Step 4: Map the returned click_id back to the original source/sub-ID for attribution.
— Step 5: Return HTTP 200 fast; networks retry or drop on slow/error responses.
— Step 6: Fire a test conversion; confirm it lands with correct payout and source.

Log every inbound postback raw. When attribution disputes happen, the raw log is your proof.

Repeat: validate one test postback per network after any tracker update.


content:
<b>SOP: Layer a Bot/Junk Filter Before the Money Offer</b>

Protect payout offers from traffic that will never convert.

— Step 1: Block known datacenter IP ranges first (cheapest check, run it at the edge).
— Step 2: Flag missing/blank user-agents and headless signatures; route to safe page.
— Step 3: Rate-limit per IP: more than N clicks/minute = bucket as suspect.
— Step 4: Send suspect (not blocked) traffic to a low-value or survey offer, not your top payout.
— Step 5: Keep filters as routing, not hard 403s. A 403 to a real user is a lost conversion.
— Step 6: Sample your 'safe page' bucket weekly; if real users land there, loosen the rule.

Filters should redirect, not delete. Over-blocking costs more than the bots do.

Repeat weekly: review block rate vs conversion rate by source.


content:
<b>SOP: Set Day-Parting and Time-of-Day Routing</b>

Some offers convert only in business hours or local prime time.

— Step 1: Pull each offer's allowed hours from the network terms. Don't assume 24/7.
— Step 2: Convert all windows to the END USER's local timezone, not the server's.
— Step 3: Build active-hours rules per offer; outside the window, route to a fallback.
— Step 4: Handle the timezone of mixed-geo traffic per-click, using the user's geo, not one global clock.
— Step 5: Cover the gap: an explicit off-hours offer so nothing dead-ends at 3am.
— Step 6: Test a click at an in-window and an out-of-window timestamp per offer.

Server-timezone day-parting silently misfires for half your geos. Always localize.

Repeat: re-check offer hours weekly; networks change schedules without notice.


content:
<b>SOP: Daily Smartlink Health Check</b>

A 10-minute morning runbook to catch breakage before it bills.

— Step 1: Fire one synthetic click per key geo; confirm a 200 and a live offer (not a fallback).
— Step 2: Check yesterday's fallback-tier rate. A spike means primaries are capping or dying.
— Step 3: Compare click-to-conversion vs the 7-day baseline per source. Flag drops over 30%.
— Step 4: Confirm postbacks received in the last hour. Zero = tracking break.
— Step 5: Scan for offers stuck at cap or paused that still receive traffic.
— Step 6: Verify SSL cert expiry on each smartlink domain is more than 14 days out.

Log the check results daily. The trend line catches slow decay a snapshot misses.

Repeat daily, same time, before reviewing spend.


content:
<b>Checklist: Audit and Shorten Your Redirect Chain</b>

Every hop loses mobile clicks and adds latency. Trim it.

— ☐ Trace the full chain with a header tool: count every 301/302 from click to final offer.
— ☐ Target 2 hops max (your smartlink, then the offer). 3+ is a fix.
— ☐ Replace any http hop with https; mixed protocol drops Safari/iOS clicks.
— ☐ Remove meta-refresh and JavaScript redirects; use server 302s, they survive ad-blockers.
— ☐ Confirm each hop preserves sub-IDs; a lossy hop kills attribution.
— ☐ Measure total redirect time; over 1s on mobile and users bounce mid-hop.
— ☐ Check for redirect loops (A to B to A) with a forced test click.

Fewer hops = more clicks reach the offer. This is free conversion-rate recovery.

Repeat the audit monthly and after any new offer or network add.


content:
<b>SOP: Swap a Dying Offer Out of Rotation Cleanly</b>

Replace a falling offer without stalling the geo slot.

— Step 1: Confirm the decline is real: 2+ days of dropping CR vs a stable click count, not one bad hour.
— Step 2: Stage the replacement offer fully tested (QA checklist passed) before touching live.
— Step 3: Drop the dying offer's weight to 10, raise the replacement to match. Don't yank to zero.
— Step 4: Hold the split 24h; confirm the replacement holds CR at the same or better rate.
— Step 5: Once confirmed, set dying offer weight to 0 but keep it configured as a fallback.
— Step 6: Log the swap with reason and timestamp for your offer history.

Never pull an offer to zero in one move; a phased swap keeps the slot earning.

Repeat: review offer CR trends weekly to catch decay early.


content:
SOP: Design a Sub-ID Naming Taxonomy

Messy sub-IDs make reporting useless. Standardize before scaling.

— Step 1: Fix the slot order and never change it: source_campaign_creative_geo_device.
— Step 2: Use short codes, not full names. fb not facebook; sub-IDs have length limits.
— Step 3: Reserve one slot for the fallback tier so reports show A/B/C performance.
— Step 4: Use a single delimiter (underscore) consistently; mixing breaks split-by-column reporting.
— Step 5: Avoid spaces and special chars; they URL-encode and corrupt the network's parser.
— Step 6: Document the schema in a one-pager every operator can read.

A fixed slot order means any report column maps to a known field. That's the whole point.

Repeat: review the taxonomy quarterly; add slots only at the end, never reorder.


content:
<b>SOP: Load-Test a Smartlink Before a Traffic Spike</b>

Before a big push or media buy, confirm the link won't choke.

— Step 1: Estimate peak clicks/second from your buy plan; load-test at 2x that.
— Step 2: Run the test against a staging route, not live offers, so you don't fire real postbacks.
— Step 3: Measure redirect latency at p95, not average; the slow tail is where clicks drop.
— Step 4: Watch for fallback misfires under load; rules sometimes time out and dump to Tier C.
— Step 5: Confirm your dedup store and geo lookup hold up; these are common bottlenecks.
— Step 6: Verify postback endpoint returns 200 under concurrent load, not timeouts.

Target p95 redirect under 300ms at peak. Above that, fix before you buy traffic.

Repeat before every major campaign launch.


content:
<b>SOP: Smooth Weight Changes to Avoid Traffic Whiplash</b>

Big weight jumps shock conversion data and trip network alarms.

— Step 1: Cap any single weight change at +/- 15 points per adjustment.
— Step 2: Wait one full clicks-gate (e.g. 300 clicks) between adjustments on the same slot.
— Step 3: When promoting a winner, step it up: 10 then 30 then 60, not 10 straight to 100.
— Step 4: Never zero an offer and max another in one move; the network sees an unnatural spike.
— Step 5: Log each step with timestamp and the metric that justified it.
— Step 6: Hold for a full day before the next step on volatile verticals (push, pops).

Gradual shifts keep your data clean and your network relationship calm.

Repeat: reassess weights weekly using the change log, not memory.


content:
<b>SOP: Run a Monthly Fallback Drill</b>

Fallbacks rot silently. Prove they still work on a schedule.

— Step 1: Pick one live smartlink. Note its current Tier A offer and expected B/C.
— Step 2: Manually cap or disable Tier A in a test mode (or a clone of the config).
— Step 3: Send 10 test clicks; confirm all land on Tier B.
— Step 4: Disable Tier B too; confirm clicks reach Tier C, the catch-all.
— Step 5: Verify postbacks still fire from the fallback tiers, not just the primary.
— Step 6: Restore Tier A and confirm traffic returns. Log the drill result.

A fallback you never tested is a guess. A drill turns it into a known-good safety net.

Repeat monthly, rotating which smartlink you drill so all get covered over the quarter.


content:
<b>Checklist: Close Geo Coverage Gaps in a Smartlink</b>

Unmapped geos quietly leak to your catch-all at low payout. Find them.

— ☐ Pull last 7 days of traffic grouped by country; sort by click volume.
— ☐ Flag any country sending real volume that hits the ROW default, not a targeted offer.
— ☐ For each flagged geo, check the network for an offer that accepts it.
— ☐ Add a targeted rule for any geo with volume above your threshold (e.g. 100 clicks/week).
— ☐ Confirm the new rule sits above the ROW default in the stack.
— ☐ Re-test the geo with a proxy click to confirm it now lands on the targeted offer.
— ☐ Note geos with no available offer; those stay on catch-all by design, not accident.

Every high-volume geo on the catch-all is money left on the table.

Repeat weekly: re-pull the by-country report and re-close gaps.


channel_name: UGC Ops Manual

content:
The 6-step raw footage intake SOP
Before you edit a single clip, run files through this. Stops the "where's the good take" chaos.

— 1. Dump all clips into one dated folder: YYYY-MM-DD_brand_concept
— 2. Rename in batch: concept_hook01, concept_demo02
— 3. Watch once at 1.5x, drop a star on keepers only
— 4. Move rejects to /_culled (never delete — client may want them)
— 5. Log usable hooks in a one-line shot list
— 6. Flag any clip with bad audio/lighting now, not at edit

Save this. Run it on every shoot before opening your editor. Rinse and repeat.


content:
<b>Build your UGC rate card in 5 steps</b>
Stop quoting by gut feel. Standardize once, send forever.

— 1. Set a base: one 30-sec video, one revision, no whitelisting
— 2. Add deliverable multipliers: +1 hook = +20%, +1 aspect ratio = +15%
— 3. Price usage separately: organic vs paid ads vs whitelisting
— 4. Set time-bound usage (90 days / 6 months / perpetual)
— 5. Add a rush line: +50% for under 72-hour turnaround

Lock these into a one-page template. When a brief lands, you assemble a quote in 2 minutes instead of agonizing. Rinse and repeat for every inbound.


content:
<b>The brief-decode checklist (run before you say yes)</b>
Most reshoots come from a brief you skimmed. Interrogate it first.

— Hook angle: do they want pain-point, before/after, or unboxing?
— Format: talking-head, voiceover-over-broll, or skit?
— Aspect ratios named? (9:16 only, or also 1:1 / 4:5?)
— Length cap and where the CTA lands
— Banned words / claims (compliance kills paid creative)
— Reference videos — ask for 2 if zero are given

If any line is blank, send one consolidated questions email, not five. Standardize this and your revision rate drops. Save the checklist.


content:
<b>The 4-part cold outreach script for brands</b>
A repeatable structure beats a clever one-off. Fill the brackets, send, track.

— 1. Proof line: "I make UGC for [niche] brands like [example]."
— 2. Specific hook: "Your [product] would convert well with a [problem-aware] angle."
— 3. Offer: "Here are 2 sample concepts + my portfolio: [link]."
— 4. Single CTA: "Open to a 15-min call this week?"

Rules: under 90 words, one link, follow up once at day 4. Log every send in a tracker with status (sent / opened / replied). Rinse and repeat 10 a day.


content:
<b>The hook-batching workflow: 10 hooks in 20 minutes</b>
Don't write hooks one at a time per video. Batch them as a system.

— 1. Pick the product and its single biggest pain point
— 2. Run 5 angle templates: "POV", "Stop doing X", "I tried X for 30 days", "3 things nobody tells you", "Why your X keeps failing"
— 3. Write 2 variants per template = 10 hooks
— 4. Read each aloud — cut any over 7 words
— 5. Tag the top 3 for filming today

Keep a master hook bank doc, sorted by angle. Pull from it every shoot. Rinse and repeat.


content:
<b>Pre-delivery QA checklist (never skip a line)</b>
The difference between "pro" and "freelancer" is the final pass. Run all 8 before you hit send.

— Correct aspect ratios exported (check each, don't assume)
— Captions burned in and spell-checked
— Audio normalized, no peaking
— Hook lands in first 2 seconds
— CTA present and matches the brief
— No watermark from stock/music apps
— Filenames match client convention
— Safe zones clear of UI cutoff (top/bottom)

Hang this on your wall. One failed line = don't deliver. Save and standardize.


content:
<b>The 2-round revision workflow that ends scope creep</b>
Unlimited revisions kill margins. Systematize the loop.

— 1. State rounds upfront: "Includes 2 revision rounds."
— 2. Require timestamped feedback in ONE document, not scattered messages
— 3. Round 1: structural changes only (hook, pacing, order)
— 4. Round 2: polish only (captions, color, audio)
— 5. Anything after = new mini-invoice at your revision rate

Reply to each feedback batch with "Confirmed, changes: [list]" so scope is logged. Rinse and repeat. This single SOP protects more profit than raising rates.


content:
<b>The new-client onboarding SOP (first 48 hours)</b>
A smooth start sets the whole project tone. Run these 6 steps the moment a deal closes.

— 1. Send welcome packet: process, timeline, revision policy
— 2. Collect assets: product, brand guide, logins if whitelisting
— 3. Confirm payment terms + send deposit invoice
— 4. Share the brief template for them to fill
— 5. Book the shoot date in writing
— 6. Set one channel for all comms (kill email + DMs + Slack chaos)

Turn this into a checklist you tick per client. Standardize onboarding and you look twice as senior. Save it.


content:
The UGC invoicing system (get paid on time)
Late payment is usually a process gap, not a bad client. Standardize it.

— 1. 50% deposit before filming — non-negotiable, in writing
— 2. Invoice number convention: INV-2026-007
— 3. Line-item it: base + usage + extra hooks separately
— 4. State terms on the invoice: "Net 14, late fee 5% after."
— 5. Send final invoice WITH the delivery, not after
— 6. Auto-reminder at day 7 and day 13

Keep a simple paid/unpaid tracker. Run the same flow every project. Rinse and repeat — cash flow becomes boring, which is the goal.


content:
<b>Shoot-day prep checklist (the night before)</b>
Fumbling on camera wastes your best light. Prep is a checklist, not a vibe.

— Phone storage cleared, 30GB+ free
— Phone in airplane mode (no mid-take calls)
— Battery 100% + power bank charged
— Product staged and clean on camera
— Lighting tested at your actual shoot time
— Mic checked with a 10-sec test clip
— Hooks printed or on a second screen
— Outfit/background matches brand vibe

Run all 8 the night before, never morning-of. Hang it by your setup. Rinse and repeat every shoot.


content:
<b>The whitelisting handoff SOP</b>
Whitelisting (running ads from your handle) goes wrong when access is improvised. Standardize the handoff.

— 1. Confirm scope in writing: which platform, how long, ad spend cap
— 2. Price it separately from the video — it's a usage right, not a freebie
— 3. Set up partnership/access via the official tool, never share a password
— 4. Define an end date and calendar a revoke reminder
— 5. Screenshot the granted access for your records
— 6. Revoke on the end date, every time

Save this 6-step checklist. Whitelisting becomes recurring revenue instead of a security risk. Rinse and repeat.


content:
The file-naming + folder system every creator should standardize
Lost files = lost hours. Adopt one convention and never decide again.

Folder tree per client:
— /client/raw
— /client/edits
— /client/final
— /client/delivered

File name: brand_concept_format_v2_9x16.mp4

Rules:
— Version numbers always, never "final_final"
— Aspect ratio in the name
— Move to /delivered only after client approves

Set this up once as a template folder you duplicate. Standardize across every client. Rinse and repeat — your future self thanks you.


content:
<b>The b-roll shot-list playbook (capture it once, edit forever)</b>
Missing b-roll forces reshoots. Shoot a standard set every time.

The core 8 to grab on every shoot:
— 1. Product close-up, slow rotation
— 2. Hands picking up / using the product
— 3. Packaging / unboxing motion
— 4. Product in its real environment
— 5. Before/after staging
— 6. Pouring / texture / detail shot
— 7. Walking-with-product lifestyle clip
— 8. Empty hero shot for text overlays

Film 5-10 seconds of each. Now your edit has options. Save this list and run it down every shoot. Rinse and repeat.


content:
<b>The caption + export checklist (platform-proof your delivery)</b>
Great edit, wrong export = client redo. Run these before final render.

— Captions burned in, not just an SRT (most feeds mute by default)
— Font readable on a phone — test at arm's length
— Captions inside safe zone, clear of the bottom UI bar
— Export 1080x1920, H.264, under platform size cap
— 30fps unless brief says otherwise
— Loudness around -14 LUFS for social
— One clean copy with NO captions if brief asks

Standardize your export preset and save it. Run this list every delivery. Rinse and repeat.


content:
<b>Turn messy client feedback into a clean shot list</b>
Vague feedback ("make it pop") wastes a round. Convert it with this workflow.

— 1. Collect all comments into one numbered list
— 2. Tag each: HOOK / PACING / VISUAL / AUDIO / CTA
— 3. Translate vague to concrete: "more energy" = faster cuts + zoom on hook
— 4. Sort by edit order (structural first, polish last)
— 5. Send back a confirmation: "Here's what I'm changing: [list]"
— 6. Only start editing after they confirm

This turns opinions into a checklist you execute once. Standardize it and kill the back-and-forth. Save the workflow.


content:
<b>The monthly retainer cadence SOP</b>
Retainers die from drift, not bad work. Run a fixed monthly rhythm.

— Week 1: concept call + lock 4 concepts for the month
— Week 2: film batch, send first 2 videos
— Week 3: revisions + film remaining batch
— Week 4: deliver all, send next-month brief + invoice

Monthly recurring tasks:
— Send a one-page performance recap (top hook, best video)
— Restock your hook bank from what performed
— Confirm next month's scope in writing

Standardize this calendar and retainers run themselves. Save the cadence and rinse and repeat each month.


content:
<b>The claims compliance checklist (protect the ad account)</b>
A banned claim can kill a brand's whole ad account — and your relationship. Screen every script.

— No "cure / treat / heal" for supplements or skincare
— No guaranteed results ("lose 10 lbs", "100% works")
— No "FDA approved" unless the brand confirms in writing
— No fake urgency the brand didn't authorize
— No competitor names / knock-offs
— Add "results vary" framing where needed
— Get risky claims approved by the brand in writing

Run this before you film, not after editing. Save the checklist, attach it to your brief template, and standardize it across every script. Rinse and repeat.


channel_name: Inbox 101

content:
How do I warm up a brand-new sending domain?

Warming up means slowly increasing how many emails you send so inbox providers learn to trust you. Skip it and you'll land in spam fast.

Here's a simple 30-day plan:
—
1. Days 1-7: send to your 20-30 most engaged people only (folks who opened recently).
—
2. Days 8-21: double your send volume every few days, always picking openers first.
—
3. Days 22-30: add the rest of your list in batches, watching for spam complaints.

✅ Cap your very first send at 50 emails, no more.

Homework: Write down today's date plus 30. That's your full-speed day.

New here? Start with the basics above.


content:
My last email went to spam. What do I check first?

Spam placement usually comes from a few fixable things, not a mystery. Walk this checklist before you panic or resend.
—
1. Check authentication: do you have SPF and DKIM set up? (DKIM is basically a signature proving the email is really from you.) Use a free tool like mail-tester.com to confirm.
—
2. Read your subject and first line out loud. Words like 'FREE!!!' and all-caps trip filters.
—
3. Look at your last 3 sends' open rates. A sudden drop means inboxes are losing trust.

✅ Run one test email through mail-tester and aim for a score above 8 out of 10.

Homework: Send yourself one email and check which folder it lands in.

New here? Start with the basics above.


content:
How do I set up double opt-in (and why bother)?

Double opt-in means after someone signs up, they get an email asking them to click 'confirm.' Only confirmed people join your list. It feels like an extra step, but it blocks fake addresses and bots that hurt your reputation.

Three steps in any email tool:
—
1. Turn on 'double opt-in' or 'confirmed opt-in' in your form settings.
—
2. Write a short confirmation email: 'Click here to confirm you want in.'
—
3. Make the confirm button big, clear, and the only thing they can click.

✅ Keep that confirmation email to two sentences. Less reading, more clicking.

Homework: Check whether your signup form uses single or double opt-in right now.

New here? Start with the basics above.


content:
How do I actually test a subject line before sending?

A subject line is the one sentence people see in their inbox. Testing it means trying two versions and letting a small group pick the winner. Most tools call this an A/B test.

Run it like this:
—
1. Write two subject lines that say the same thing differently. Example: a question vs. a number.
—
2. Send each version to 10% of your list (so 5% gets A, 5% gets B).
—
3. Wait 2-4 hours, then send the higher-opening winner to everyone else.

✅ Change only the subject between A and B. Keep everything else identical.

Homework: Write two subject lines for your next email. Just two.

New here? Start with the basics above.


content:
How do I clean my list without deleting good people?

Cleaning means removing dead addresses, the ones that never open. Keeping them drags down your open rate and makes inbox providers trust you less.

Do this every 3 months:
—
1. Find subscribers who haven't opened anything in 90+ days. Most tools let you filter by 'last open date.'
—
2. Send that group one 'still want to hear from us?' email with a single yes button.
—
3. Anyone who ignores it for 14 days, remove them. They're already gone in spirit.

✅ Always give a re-engagement chance first. Never delete cold.

Homework: Find out how many of your subscribers opened nothing in the last 90 days.

New here? Start with the basics above.


content:
How do I create my very first segment?

A segment is just a smaller group inside your list, like 'people who clicked last week.' Sending the right group the right message lifts opens and cuts unsubscribes.

Start with the easiest one:
—
1. Pick one clear trait. 'Opened in the last 30 days' is perfect for beginners.
—
2. In your tool, create a segment using that single filter. No need to stack rules yet.
—
3. Send your next email to that segment instead of everyone, and compare the open rate.

✅ Begin with just one filter. You can always add more later.

Homework: Build a segment of 'opened in last 30 days' and write down how many people are in it.

New here? Start with the basics above.


content:
How do I set up email authentication step by step?

Authentication is three little settings that prove your emails are really from you. Without them, inboxes treat you like a stranger.

Set up all three in your domain's DNS (the settings page for your website address):
—
1. SPF: a record listing who's allowed to send for you. Your email tool gives you the exact line to paste.
—
2. DKIM: a signature record. Copy the key from your tool, paste it in DNS.
—
3. DMARC: a rule telling inboxes what to do if SPF or DKIM fail. Start with a simple 'p=none' to just watch.

✅ Do these in order: SPF, then DKIM, then DMARC.

Homework: Log into your email tool and find its 'authenticate domain' page.

New here? Start with the basics above.


content:
How do I build a 3-email welcome sequence?

A welcome sequence is a set of emails sent automatically over a few days after someone joins. It builds the relationship while interest is hottest.

Map it like this:
—
1. Email 1 (instant): warm hello and deliver what you promised.
—
2. Email 2 (day 2): your best free tip or your story, no selling yet.
—
3. Email 3 (day 4): point them to one helpful next step or product.

✅ Space them out. Sending all three the same day feels pushy.

Homework: Write one sentence describing what each of the three emails will be about.

New here? Start with the basics above.


content:
My open rate is low. What do I fix, in order?

Open rate is the share of people who open your email. Low opens usually trace back to a short list of causes you can work through one by one.

Go top to bottom:
—
1. From-name: is it a real person or brand people recognize? 'Sara from Inbox 101' beats 'noreply.'
—
2. Subject line: short, specific, and curious beats clever-but-vague.
—
3. Send time: try the same email at a different hour and compare next time.

✅ Change one thing per send so you know what actually worked.

Homework: Look up your average open rate and write it down. That's your starting line.

New here? Start with the basics above.


content:
How do I build a signup form people actually fill out?

A signup form is the little box where visitors type their email to join. The fewer barriers it has, the more people complete it.

Keep it lean in three moves:
—
1. Ask for the email only. Every extra field (name, company) drops sign-ups.
—
2. Write a clear promise above the box: 'Get one email tip every Tuesday.'
—
3. Label the button with what they get, like 'Send me the tips,' not 'Submit.'

✅ Test the form on your phone. If it's awkward to tap, fix it first.

Homework: Rewrite your button text from 'Submit' to something that names the reward.

New here? Start with the basics above.


content:
How do I launch a lead magnet to grow my list?

A lead magnet is a small free gift (a checklist, template, or mini-guide) you give in exchange for an email. It's the fastest honest way to build a list.

Launch it in three steps:
—
1. Pick one specific problem your audience has and solve it in a 1-page download.
—
2. Build a simple page: headline, three bullets of what's inside, email box.
—
3. Connect it so signing up triggers the welcome email that delivers the file.

✅ Make it specific. 'The 5-step inbox checklist' beats 'My free ebook.'

Homework: Name one problem your readers have that you could solve on a single page.

New here? Start with the basics above.


content:
How should I handle unsubscribes the right way?

An unsubscribe is someone clicking 'remove me.' It feels bad, but handling it cleanly actually protects your inbox placement. People who can't leave easily hit 'spam' instead, and that hurts way more.

Set it up properly:
—
1. Put a clear, visible unsubscribe link in every email's footer. Tiny gray text invites spam complaints.
—
2. Make one click do it. No login, no survey wall, no 'are you sure' loops.
—
3. Process it instantly so they never get another email by mistake.

✅ A visible unsubscribe link beats a buried one every single time.

Homework: Open your last email and find your unsubscribe link. Is it easy to spot?

New here? Start with the basics above.


content:
What is preview text and how do I set it?

Preview text is the gray snippet next to or under your subject line in the inbox. It's free extra space to pull people in, but most beginners leave it blank and waste it.

Use it on purpose:
—
1. Find the 'preview text' or 'preheader' field in your email tool (it's near the subject line).
—
2. Write a short line that adds to the subject, never repeats it.
—
3. Keep it under 90 characters so phones show the whole thing.

✅ Treat it as a second subject line, not leftover space.

Homework: Open your last email's settings and check if the preview text field was filled or empty.

New here? Start with the basics above.


content:
How do I build my very first automation?

An automation is an email that sends itself when something happens, no clicking 'send' from you. The easiest first one is a simple follow-up to new subscribers.

Build it in three steps:
—
1. Choose the trigger: 'when someone joins the list.' Every tool has this ready-made.
—
2. Add one email: a friendly check-in two days after they sign up.
—
3. Turn it on and add yourself as a test subscriber to watch it fire.

✅ Start with one trigger and one email. Resist adding a whole chain on day one.

Homework: Find the 'automations' or 'workflows' tab in your email tool and click into it.

New here? Start with the basics above.


content:
What do I do when emails start bouncing?

A bounce is an email that couldn't be delivered, usually because the address is fake, mistyped, or dead. Too many bounces tell inbox providers you're careless, so handle them fast.

Work through it:
—
1. Separate hard bounces (address doesn't exist) from soft bounces (mailbox full, temporary).
—
2. Remove every hard bounce immediately. They'll never deliver, so stop emailing them.
—
3. Add a real-time email check to your signup form so typos get caught before they join.

✅ Keep your bounce rate under 2% by clearing hard bounces every send.

Homework: Check your last campaign's bounce rate and note if it's above or below 2%.

New here? Start with the basics above.


content:
How do I win back subscribers who stopped opening?

Win-back means trying to re-engage people who went quiet before you remove them. A short, honest series often revives a chunk of your list.

Run this 3-email flow over a week:
—
1. Email 1: 'We miss you,' plus one genuinely useful thing for free.
—
2. Email 2 (day 4): ask directly, 'Want to keep hearing from us?' with a yes button.
—
3. Email 3 (day 7): 'Last email from us' so they know it's the final nudge.

✅ Be honest that it's the last try. Urgency that's real works.

Homework: Count how many subscribers haven't opened in 60+ days. That's your win-back group.

New here? Start with the basics above.


content:
What do I check before hitting send the first time?

A pre-send check is a quick once-over that catches the embarrassing mistakes before thousands of people see them. Two minutes here saves a lot of cringe.

Run this short list every time:
—
1. Send a test to yourself and click every link. Broken links are the most common mistake.
—
2. Open the test on your phone. Most people read email on mobile, so it must look right there.
—
3. Re-read the subject and from-name as if you're a stranger in a busy inbox.

✅ Always send one test to yourself first. Never send blind.

Homework: Send yourself a test email today and click every single link in it.

New here? Start with the basics above.


content:
How do I set up my from-name and from-address?

The from-name and from-address are who your email appears to come from. They're the first thing people see, before the subject, and they decide whether you look trustworthy or like a stranger.

Set them up right:
—
1. From-name: use a real, recognizable name like 'Mia from Inbox 101,' not 'Newsletter.'
—
2. From-address: send from your own domain (you@yourbrand.com), never a free Gmail or Yahoo address.
—
3. Set a reply-to that a human actually checks, so answers don't vanish.

✅ Avoid 'noreply' addresses. They quietly tell people you don't want to hear from them.

Homework: Check your last email's from-name. Would a stranger recognize who sent it?

New here? Start with the basics above.


content:
How do I decide how often to email my list?

Frequency is simply how often you hit send. Too often and people tune out; too rarely and they forget you signed up. The fix is to pick a rhythm and promise it upfront.

Decide it in three steps:
—
1. Pick a cadence you can keep for months, like weekly. Consistency beats volume.
—
2. Tell new subscribers the plan in your welcome email: 'one email every Tuesday.'
—
3. Watch unsubscribes for two months. Rising unsubscribes means slow down, not speed up.

✅ Promise a frequency you can realistically keep, then keep it.

Homework: Write down the exact cadence you'll commit to, like 'weekly on Thursdays.'

New here? Start with the basics above.


channel_name: Spark Code Basics

content:
<b>Install Your TikTok Pixel With Google Tag Manager</b>

The pixel is a tiny snippet of code that tells TikTok what people do on your site. Let's set it up without touching your website's files.

— First: in Ads Manager, go to Assets, then Events, then Web Events. Click Set Up, pick Manual, choose Standard Mode.
— Next: copy your Pixel ID (looks like C1A2B3...).
— In Google Tag Manager (a free tool that holds your tags), create a new tag, search the TikTok template, paste the ID.
— Set the trigger to All Pages, then Publish.
— Finally: open the TikTok Pixel Helper browser extension to confirm it says Connected.

Don't worry if the helper shows nothing for 10 minutes; it caches.

Try this: install the helper extension today, before you even build the pixel. Reassurance: GTM means zero risk to your live site.


content:
<b>Turn an Organic TikTok Into a Spark Ad</b>

A Spark Ad is a paid ad that runs from a real TikTok post (yours or a creator's), keeping all its likes and comments. Here's the exact handoff.

— First: the creator opens their video, taps the three dots, then Ad Settings, then toggles Ad Authorization on.
— Next: they tap Generate Code and send you that code (it expires, so use it within the window they chose).
— In Ads Manager, go to Assets, then TikTok Posts, then Apply for Authorization, and paste the code.
— Finally: at the ad level, pick Use TikTok account to deliver Spark Ads, and select that post.

Don't worry if you don't see the video instantly; refresh after a minute.

Try this: practice the toggle on your own account first. You've got this.


content:
<b>Pick the Right Campaign Objective in 4 Questions</b>

The objective is the goal you hand TikTok at the very start, and it shapes who sees your ad. Let's choose it calmly.

— Ask: do I want people to just watch? Choose Reach (cheapest views) or Video Views.
— Ask: do I want clicks to my site but no purchase yet? Choose Traffic.
— Ask: do I want a sign-up, lead, or sale tracked by the pixel? Choose Conversions (or Sales for shops).
— Ask: do I have a real budget and event data already? Only then consider App Promotion.

A common mistake is choosing Traffic and expecting sales; Traffic optimizes for clicks, not buyers.

Try this: write your one true goal on paper, then match it above. Don't worry, you can always test a second objective later.


content:
<b>Set Up Your First Budget: ABO, Not CBO</b>

Two budget types exist. CBO (Campaign Budget Optimization) means TikTok spreads one budget across all ad groups for you. ABO (Ad Group Budget Optimization) means you set the budget per ad group yourself.

For your first campaign, choose ABO. Here's why and how.

— First: at the campaign level, leave the campaign budget toggle OFF.
— Next: create 2 to 3 ad groups, each with its own daily budget (start at $20 each).
— This way each audience gets a fair, equal chance to spend.
— With CBO, TikTok often dumps the whole budget on one ad group, and you learn nothing.

Don't worry if ABO feels manual; that control is exactly what beginners need.

Try this: build one campaign with two equal $20 ad groups. You're learning the right way.


content:
<b>Run a Simple 3x3 Creative Test</b>

Creative testing means showing different videos to find the winner before you spend big. Let's keep it tidy with a grid.

— First: make 3 hooks (the first 2 seconds), like a question, a bold claim, and a problem.
— Next: pair each hook with the same body and ending, giving you 3 videos.
— Put all 3 in ONE ad group so they compete fairly on the same audience.
— Set a daily budget of about $30 and pick the Conversions objective if your pixel is ready.
— Wait 3 full days before judging; early numbers swing wildly.

A common mistake is changing the audience and the hook at once, so you never know which mattered.

Try this: write 3 hooks today, nothing else. One small step. You're doing great.


content:
<b>Read Your Dashboard in Your First Week</b>

The dashboard can feel like a wall of numbers. Let's read only 4 that matter at the start.

— CPM (Cost Per Mille = cost per 1,000 views): tells you if the auction is expensive. Under $10 is comfortable for many niches.
— CTR (Click-Through Rate = clicks divided by views): under 1% usually means a weak hook.
— CPC (Cost Per Click): high CPC with low CTR points at the creative, not the audience.
— Conversions: the actual goal. Zero after 50 clicks? Check your landing page.

Ignore the rest for now; those four tell the story.

Try this: open one campaign and find just CTR. Don't worry if the layout looks busy; you'll know where to look by next week.


content:
<b>Map Your Standard Events Correctly</b>

Standard events are the named actions TikTok understands, like ViewContent, AddToCart, and CompletePayment. If you mislabel them, optimization breaks. Let's map them right.

— First: list your real funnel steps, for example product page, add to cart, checkout, purchase.
— Next: match each step to TikTok's official name (a sale is CompletePayment, never Submit Form).
— In Events Manager, fire each event on its true page only.
— Finally: pass a value and currency on CompletePayment so TikTok can optimize for revenue, not just count.

A common slip is firing Purchase on the thank-you page that reloads, which double-counts sales.

Try this: write your funnel as 4 lines, then label each. Don't worry, you can edit events anytime without losing data.


content:
<b>Build a Lookalike Audience From Your Pixel</b>

A Lookalike audience means TikTok finds new people who resemble your best customers. You need a source list first. Here's the path.

— First: let your pixel collect at least a few hundred events (purchasers or sign-ups). Patience pays here.
— Next: in Audiences, create a Custom Audience from website activity, choosing the CompletePayment event.
— Then: select that Custom Audience and click Create Lookalike.
— Pick Specification: Balanced for a first try (Narrow is more similar but smaller).
— Finally: target one country per Lookalike, since mixing regions weakens the match.

Don't worry if your source is small; even 100 buyers can seed a usable Lookalike.

Try this: check your Custom Audience size today. If it's growing, you're on track. Nicely done.


content:
<b>Try Cost Cap Bidding Without Fear</b>

Bidding is how you tell TikTok what a result is worth. Cost Cap means you name a target cost per result, and TikTok tries to stay near it on average. Let's set it gently.

— First: run a few days on Lowest Cost (no cap) to learn your natural cost per conversion.
— Next: take that number and set your Cost Cap about 20% higher, giving TikTok breathing room.
— Then: keep the daily budget at least 20 times your cap so it can find results.
— Watch for under-delivery: if spend stalls, your cap is too tight; raise it 10%.

Don't worry if delivery is slow on day one; Cost Cap needs a learning window.

Try this: write down your current cost per result first. You can't cap what you haven't measured. Take it step by step.


content:
<b>Pre-Launch Landing Page Checklist</b>

Before spending a dollar, let's make sure clicks don't leak. Walk this list once.

— Speed: the page should load in under 3 seconds on mobile; TikTok traffic is phone-first.
— Match: the headline must echo the ad's promise, or people bounce confused.
— Pixel: confirm ViewContent and your goal event fire here, using the Pixel Helper.
— Above the fold: the offer and button visible without scrolling.
— Trust: one review or guarantee near the button.
— Mobile form: as few fields as possible; every extra field costs sign-ups.

A common miss is a desktop-only popup that covers the phone screen.

Try this: open your page on your own phone and time the load. Don't worry if it's slow; fixing one image often does the trick. You're being thorough, that's the win.


content:
<b>Warm Up a Brand-New Ad Account</b>

A fresh account has no history, so TikTok trusts it less at first. Let's warm it up so your real campaign launches smoothly.

— First: complete your business info and verify payment; gaps trigger reviews.
— Next: launch one small Reach or Traffic campaign at $20 a day for 3 days. Cheap signals build trust.
— Then: let the pixel record a handful of events from real visitors.
— Only after that: start your Conversions campaign with the data already flowing.

A common mistake is launching a big Conversions budget on day one with an empty pixel; TikTok has nothing to learn from.

Don't worry if this feels slow; three patient days save you weeks of bad delivery.

Try this: launch one $20 Traffic campaign today as your warm-up. Small and steady wins.


content:
<b>Survive the Learning Phase Without Panic</b>

The learning phase is the early period when TikTok experiments to find your buyers; results look bumpy on purpose. Here's how to ride it out.

— First: give each ad group about 50 conversions in 7 days to exit learning. Underfunding keeps it stuck.
— Next: do NOT edit budget, audience, or bid during this window; every big edit restarts learning.
— Then: judge performance only after the phase ends, not on day two.
— If you must change something, duplicate the ad group instead of editing the live one.

A common mistake is panic-pausing on day one because a single result was pricey.

Don't worry if early costs look scary; they almost always settle.

Try this: set a calendar reminder for day 7 and promise not to touch the campaign until then. Patience is a skill, and you're building it.


content:
<b>Write a UGC Brief a Creator Can Actually Follow</b>

UGC (User-Generated Content) means real-looking videos from everyday creators. A clear brief saves you re-shoots. Build it in sections.

— Hook line: give the exact first sentence to say in the first 2 seconds.
— Format: vertical, full screen, filmed on a phone, good daylight.
— Beats: list 3 to 5 quick scenes, like problem, product, result.
— Don'ts: no logos in corners, no tiny on-screen text, no studio look.
— Call to action: the one phrase to end on.
— Deliverables: ask for 2 hook variations so you can test.

A common mistake is sending only the product link and hoping; vague briefs waste everyone's time.

Try this: write just the hook line and 3 beats today. Don't worry about being a director; clarity beats polish. You're guiding them well.


content:
<b>Scale a Winning Ad Group the Safe Way</b>

Found a winner? Don't yank the budget up; sudden jumps shock the algorithm. Let's scale gently.

— Option one (vertical): raise the same ad group's budget by about 20% every 2 to 3 days, no more.
— Option two (horizontal): duplicate the winning ad group into a fresh, slightly different audience.
— Keep the winning creative exactly the same when you duplicate; only the audience changes.
— After each step, wait for results to stabilize before the next bump.

A common mistake is doubling the budget overnight, which often spikes your cost per result and undoes the win.

Don't worry if scaling feels slow; protecting a profitable ad group is worth the patience.

Try this: if you have a winner, raise its budget by just 20% and note the date. Small nudges, steady gains. Well done finding a winner.


content:
<b>Test Interest Targeting Against Broad</b>

Interest targeting means you pick topics your buyers like; Broad means you let TikTok decide using your pixel. Let's compare them head to head.

— First: build one ad group with 3 to 5 closely related interests (don't pile on 20; that confuses delivery).
— Next: build a twin ad group with NO interests, just age, gender, and country.
— Give both the same creative and the same budget for a fair fight.
— Run 4 to 5 days, then compare cost per result, not clicks.

Often Broad wins once your pixel has data, but you won't know until you test on your own offer.

Don't worry if the result surprises you; that surprise is real learning.

Try this: pick your 3 to 5 interests now and keep them tightly related. Then build the Broad twin. You're running a real experiment, that's pro-level thinking.


content:
<b>Verify Conversions Are Actually Firing</b>

Before trusting any report, prove your goal event really works. Spending while the pixel is broken is the costliest beginner mistake. Let's check it.

— First: open Events Manager, find your goal event, and look for a green Active status.
— Next: do a test purchase or sign-up yourself, then watch the Test Events tab for it to appear within seconds.
— Then: confirm only ONE event fires, not duplicates, on the success page.
— Finally: check the value and currency arrive on CompletePayment.

A common trap is a thank-you page that reloads and fires the event twice, inflating your numbers.

Don't worry if nothing shows at first; clear your ad blocker and try again.

Try this: run one real test conversion today and watch Test Events. Seeing it appear is a great feeling, and proof you set it up right.


content:
<b>Decide to Kill or Keep an Ad in 3 Checks</b>

New advertisers pause too early or too late. Let's use simple thresholds so the decision isn't emotional.

— Check spend first: don't judge anything until an ad has spent at least 2 to 3 times your target cost per result. Less than that is just noise.
— Check CTR: below 1% with enough views usually means a weak hook; that's a creative problem.
— Check conversions: spent 3x your target with zero results and decent clicks? Pause it.

Match the symptom to the fix: low CTR means change the hook; good CTR but no sales means fix the landing page.

Don't worry if pausing feels like failure; killing weak ads frees budget for winners.

Try this: write your target cost per result on a sticky note so every pause decision has a number behind it. Clear rules, calmer mind.


content:
<b>Set a Frequency Cap on a Reach Campaign</b>

Frequency is how many times one person sees your ad. Too often and they tune out or get annoyed. On Reach campaigns you can cap it. Here's how.

— First: choose the Reach objective; the frequency cap option appears mainly here.
— Next: at the ad group level, find Frequency Cap and set something gentle, like once every 3 days.
— Then: pair it with a wider audience, since a tight audience plus a cap can choke delivery.
— Finally: refresh your creative every couple of weeks so even repeat viewers see something new.

A common mistake is capping hard on a tiny audience, which starves the ad group of impressions.

Don't worry if delivery dips; widen the audience and it recovers.

Try this: set one cap at every-3-days and watch how reach spreads. You're protecting your audience's patience, and that's smart.


content:
<b>Retarget People Without a Pixel Yet</b>

No website pixel data? You can still retarget using activity that happened on TikTok itself. Let's build a warm audience from engagement.

— First: in Audiences, choose Engagement, then Video or Account interactions.
— Next: pick everyone who watched your videos (try 25% or more watched) or who follows you.
— Then: set a recency window, like the last 30 days, so the audience stays fresh.
— Finally: target this group with a follow-up offer; they already know you.

This works because TikTok owns this data directly, no website tracking required.

A common mistake is retargeting one-second viewers; they barely saw you. Use longer watch times.

Don't worry if the audience is small; warm and small beats cold and large.

Try this: build a 30-day video-engagers audience today. It costs nothing and gives you a warm list. Great first retargeting step.


content:
<b>Your 15-Minute Weekly Account Routine</b>

Accounts drift if you never check in. Here's a calm Monday routine that keeps things healthy without overwhelm.

— First: glance at account-level spend and total conversions versus last week. Up, down, or flat?
— Next: sort ad groups by cost per result and note the worst one; consider pausing it.
— Then: check creative frequency; if it's climbing past 2 to 3, your videos are getting tired.
— After that: confirm your pixel still shows Active in Events Manager.
— Finally: queue one new creative to test this week.

A common mistake is making five changes at once; pick one improvement and let it breathe.

Don't worry if some weeks look flat; steady beats frantic.

Try this: block 15 minutes every Monday on your calendar for this list. Small habits build strong accounts, and you're building one.


channel_name: Cold DM Confidential

content:
<b>The 4-step autopsy for a template that stopped working</b>

Popular advice: "Your reply rate dropped, so write a fresh template." Myth. You're throwing away data to chase a feeling. Run the autopsy instead:

— Pull the last 50 sends and split opens from replies. A dead template still opens fine; it dies at the body.
— Read only your first two sentences aloud. If they describe you, that's the corpse.
— Check the send dates against any list you scraped from — saturation, not copy, kills 60% of "dead" templates.
— Swap one variable, not all four. Change the ask, hold everything else.

It's not a writing problem, it's a diagnosis you skipped.


content:
<b>The only subject-line test worth running</b>

Popular advice: "A/B test subject lines to lift open rates." Myth. You're optimizing the wrong number and most tools call an apple-loading pixel an "open."

Run this instead:
— Send version A to 30 contacts, version B to 30, same list, same hour.
— Ignore opens entirely. Count replies only.
— Kill any test under 50 sends per arm — the math is noise below that.
— Keep the winner for 200 sends before testing again.

A subject line's job isn't to get opened, it's to not lie about the body. Test for honesty, not curiosity.


content:
<b>The 5-point checklist before your first line ships</b>

Everyone says: "Open with a compliment to warm them up." Myth. Compliments read as setup for an ask, and they know it. Your first line passes only if:

— It mentions something they'd recognize as specific to them, not their industry.
— It contains zero adjectives about their "amazing" work.
— It could not be sent verbatim to a competitor.
— It earns the second sentence — does it create a small gap they want closed?
— It survives being read with no greeting attached.

Fail any one, rewrite. The first line isn't a handshake, it's a filter — and it should filter you out of the spam pile.


content:
<b>A follow-up cadence that isn't just "bump"</b>

Popular advice: "Follow up 3-5 times until they reply." Myth. Five identical nudges is one annoying message sent five times. Cadence is content, not frequency.

The blueprint:
— Touch 2: add a fact you didn't have at touch 1, never "just following up."
— Touch 3: change the ask to something smaller — a yes/no, not a call.
— Touch 4: the breakup. State you'll stop, and mean it.
— Space them 3, 5, 7 days. Widening, not stacking.

Three messages that each say something new beat seven that say "bump."


content:
<b>The pre-send qualification pass nobody runs</b>

Everyone says: "More volume, more replies." Myth. Volume just industrializes your worst targeting. The fix is a 4-question gate before anyone enters the sequence:

— Can they actually say yes, or will they forward you to someone who can't be found?
— Is there a reason to act now, or are you the 40th identical pitch this quarter?
— Would a reply cost them effort you haven't reduced?
— Have you been in their inbox in the last 90 days under any name?

Disqualify ruthlessly. It's not a numbers game, it's a fit game you keep playing on volume.


content:
<b>The recipe for one real personalization line</b>

Popular advice: "Reference their recent post to show you did homework." Myth — "Loved your post on X!" is homework theater and reads worse than no line at all. A real one follows a recipe:

— Observation: a specific thing they said or did, quoted or paraphrased tight.
— Tension: why it connects to a problem they have, not a compliment.
— Bridge: one clause linking it to why you're writing.

Three parts, one sentence, no exclamation marks. If the line praises them instead of revealing you understood the problem, you wrote flattery, not relevance.


content:
<b>The weekly list-hygiene routine that saves your domain</b>

Everyone says: "Clean your list when bounces spike." Myth. By the time bounces spike, your sending reputation is already bleeding. Hygiene is a routine, not a rescue:

— Verify every new contact before it enters a sequence, not after.
— Suppress anyone who opened nothing across a full sequence — they're a dead address or a hard no.
— Pull catch-all domains into a slower, lower-volume lane.
— Re-verify any list older than 30 days; people change jobs constantly.

Deliverability isn't a setting you fix once, it's a chore you do Mondays.


content:
<b>How to diagnose a ghost in 3 reads</b>

Popular advice: "They ghosted because they're busy." Myth. "Busy" is the excuse you tell yourself to avoid reading your own message. Diagnose it instead:

— Read 1: did you ask for more than a reply was worth? Most ghosts are over-asks.
— Read 2: did you give them a decision to make or a paragraph to decode?
— Read 3: was the next step obvious in one glance, or buried after "let me know"?

Ghosting is rarely about them being slammed. It's the cost of replying exceeding the value you offered. Lower the cost, not the volume.


content:
<b>The pre-outreach warm-up sequence that actually warms</b>

Everyone says: "Engage with their content for two weeks before the DM." Myth. Fourteen days of empty likes is stalking with a calendar. Warm-up means leaving a trace they'd recognize:

— One substantive comment that adds a fact, not "great point."
— A share of their work with your own framing attached.
— A reply to something they asked, before you ever ask anything.

Then the DM references that thread by name. Three meaningful touches beat thirty likes. Warm-up isn't time served, it's a memory you planted that your name can later collect.


content:
<b>The stress test for your one-line pitch</b>

Popular advice: "Lead with your value proposition." Myth — most "value props" describe your product, which is your value, not theirs. Stress-test the line before it ships:

— Strip every feature word. What's left?
— Could a competitor say the exact same sentence? Then it says nothing.
— Does it name their outcome or your category?
— Read it as the recipient: would you reply, or nod and close the tab?

If the line survives with their problem still standing and your category gone, send it. It's not what you do, it's the gap you close.


content:
<b>The reply-triage system for when answers come in</b>

Everyone says: "Respond to every reply fast to keep momentum." Myth. Speed on the wrong reply burns the goodwill the first message earned. Triage first:

— "Not now" → log a date, don't argue, don't sell.
— "Wrong person" → ask who, never re-pitch the same wrong person.
— A real question → answer it in one message, no link dump, no call-push.
— Silence after interest → one nudge, then archive.

The goal isn't fast, it's correct. A measured reply to a soft yes converts; a rushed one re-opens the door you just got through.


content:
<b>The decision tree for which channel to send on</b>

Popular advice: "DM them on LinkedIn, everyone's there." Myth. Everyone being there is exactly why no one reads it. Pick the channel by friction, not by crowd:

— Do you have a real email? Use it — it survives, DMs scroll away.
— Are they a creator who replies in public? Reply in public first.
— Is the platform their workplace or their hangout? Pitch only on workplace.
— Would a DM there feel like a stranger in their living room? Then don't.

Channel isn't where the crowd is, it's where a reply costs them the least.


content:
<b>The 6 template tells to scrub before sending</b>

Everyone says: "Templates save time, just personalize the name." Myth. The name is the one thing they don't notice; the tells are what flag you. Scrub these:

— "I hope this finds you well" — delete on sight.
— "I came across your profile" — everyone did, say what you actually saw.
— "Quick question" attached to a non-quick ask.
— "Circling back" / "just bumping this."
— A {first_name} that's the only custom token in 90 words.
— A P.S. that's secretly the real pitch.

If six tells survive, your template is wearing a name tag that reads MASS SEND.


content:
<b>How to time-box research so it actually pays</b>

Popular advice: "Deeply research every prospect before reaching out." Myth. Unbounded research is procrastination that feels like diligence, and 40 minutes per contact never returns its cost. Time-box it:

— 4 minutes, hard stop. Set a timer, no exceptions.
— Look for ONE usable fact, then leave. The second fact rarely makes the message.
— No fact in 4 minutes means no message — disqualify, don't dig.
— Write the line immediately, while the fact is fresh.

Research isn't proof of effort, it's a hunt for one trigger. Find it fast or move on.


content:
<b>How to construct a CTA they can answer in bed</b>

Everyone says: "End with a clear call to action — book a call." Myth. A call is your goal, not their easy yes, and "book a call" is the heaviest ask in the message. Construct the close in layers:

— First ask: answerable in one thumb-tap, lying in bed, half-asleep.
— Make it a real question, not "let me know your thoughts."
— No calendar link in message one. Ever.
— The yes/no opens the door; the call comes after they're inside.

The CTA's job isn't to get the meeting, it's to get a reply cheap enough to give.


content:
<b>The order to build a sequence so it doesn't collapse</b>

Popular advice: "Write message one, then add follow-ups later." Myth. Sequences built front-to-back always degrade into "bump, bump, breakup" because the follow-ups were an afterthought. Build it backwards:

— Write the breakup first — it's the most honest, it sets the ceiling.
— Write touch 1 last, knowing it has three reinforcements behind it.
— Give every message a standalone reason to exist; none may say "following up."
— Each touch carries new information, not new pleading.

A sequence isn't one message plus reminders, it's four arguments that don't repeat.


content:
<b>The pre-send audit for words that tank deliverability</b>

Everyone says: "Avoid spam words like 'free' and 'guarantee.'" Myth — that 2010 word-list is mostly folklore now; filters read behavior, not vocabulary. Audit the real signals:

— Links in message one — one is risky, two is a flag, three is filtered.
— Image-heavy HTML when plain text would do.
— A from-name that doesn't match the domain.
— Identical body text across 500 sends, no variation token.
— No reply history with the domain you're blasting.

It's not the word "free" that hurts you, it's looking like a machine that's never had a conversation.


content:
<b>Which numbers to read after a send, in order</b>

Popular advice: "Track open rate to see if outreach is working." Myth. Open rate is the vanity metric pixels inflate and Apple Mail fakes. Read the numbers in this order:

— Reply rate first — the only number tied to a human deciding.
— Positive-reply rate next — replies that aren't "unsubscribe."
— Then bounce rate — a list-health signal, not a copy signal.
— Opens last, if at all, and never as proof of anything.

If opens are up and replies are flat, your subject line is writing checks the body can't cash. Read replies, not opens.


content:
<b>The Friday retro that fixes next week's outreach</b>

Everyone says: "Send more next week to improve results." Myth. More of an unexamined process is just a bigger version of the same mistake. Run a 15-minute retro instead:

— Pull every reply, positive and negative, and read them together.
— Find the one message that got the best reply and ask why — exactly.
— Find the worst-performing first line and cut it from every sequence.
— Pick ONE variable to change next week, not five.

Improvement isn't a bigger send, it's a smaller, sharper change you can actually attribute. Volume hides what a retro reveals.


channel_name: Root Access Daily

content:
First 10 minutes on a fresh $4 VPS
Just spun up a new box. Before I touch nginx I do this in order, every time:
— adduser deploy && usermod -aG sudo deploy (kill root login next)
— ssh-copy-id deploy@IP then test the login in a SECOND terminal
— In /etc/ssh/sshd_config: PermitRootLogin no, PasswordAuthentication no
— systemctl restart ssh — keep the first terminal open in case you lock yourself out
— apt update && apt upgrade -y && reboot
Clean slate, no root password to brute. Try it tonight.


content:
Add swap to a 1GB box without killing the SSD
This $5/mo box OOM-killed php-fpm twice. Fix in 4 commands:
— fallocate -l 2G /swapfile && chmod 600 /swapfile
— mkswap /swapfile && swapon /swapfile
— Add to /etc/fstab: /swapfile none swap sw 0 0
— Now tune so it doesn't thrash: sysctl vm.swappiness=10 and vm.vfs_cache_pressure=50 in /etc/sysctl.conf
Swappiness 10 means swap is an emergency net, not a crutch. RAM stays the priority, no constant disk writes. Try it tonight.


content:
fail2ban for SSH in 6 lines
My auth.log had 4k failed logins a day. Set this and it dropped to near zero:
— apt install fail2ban -y
— cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
— In jail.local under [sshd]: enabled = true, maxretry = 3, bantime = 1h, findtime = 10m
— Then bantime.increment = true so repeat offenders get exponentially longer bans
— systemctl restart fail2ban
Check the wall of shame: fail2ban-client status sshd. Try it tonight.