$10000 from Instagram in a week
Intro
Everyone hello!
Many asked to analyze a bug that worked in Insta at the end of August. In this article, I will tell how I came to it, what problems I encountered, and how I eventually solved them.
Some accounts are still alive and continue to bring traffic. Here are a few examples (view from Android or Web):
https://www.instagram.com/hazel.2370609/reels/
https://www.instagram.com/pepper.4108347/reels/
https://www.instagram.com/coral.8775861/reels/
A similar story already happened at the end of December, but back then it was run slightly differently: instead of a hook, I used a black/white image or a loading animation with heavy blur of the creative + adult photo. Surprisingly, the bundle lived for about a month, after which it was fixed.
After the fix, for some time I ran default bundles; my seller started having problems with account registrations and storms in Insta, so it was decided to switch the source to FB and work with it.
Ah shit, here we go again
Closer to the end of summer, I found a bundle for registering accounts on Instagram and started testing runs. First of all, a retest of what worked before.
Encountered a problem
Accounts were dying within an hour after launching, regardless of the creative.
After lengthy tests, I decided to try warming up, which I had always been skeptical about:
- 5-minute viewing of Reels via the recommendation feed with a random viewing time of up to 10 seconds
- a small chance of liking a video or subscribing to the author
- as a result, it yielded up to 20 placed likes and up to 5 subscriptions
And oh miracle, after this, accounts stopped dropping after launching white videos.
Then standard tests and sorting through old working options began. Eventually, I decided to repeat the bug, but in a slightly different format: hook + adult photo.
How does it work?
Let's break everything down using the script that generates these videos as an example. The link to it is at the end of the article.
Folder Structure
| Folder | Description |
|---|---|
| audio | sounds |
| video | videos from which the beginning of the clip is taken |
| photo | adult creatives |
| out | ready videos |
Generation logic:
- A fragment 6-10 seconds long is selected from a random audio file.
- A short random fragment of 10-20 frames, less than a second long, is taken from a random video.
- An adult photo is added to this fragment.
- Everything is brought to the 720×1280 format (vertical, 30 fps, with black bars if proportions do not match), and sound is overlaid on top.
- The file is saved under a random name like IMG_69.MP4 in the out folder.
Random video fragment + random audio piece + unique image + random length = every creative is unique.
Technical moment about the codec
You may notice that for some adult photos, after re-encoding on Instagram servers, quality changes and artifacts appear. Let's figure out what might be happening here.
Adjacent frames in a video are almost identical, so storing each one entirely is disadvantageous. Video codecs use inter-frame compression - some frames are coded independently, while others use information from neighboring frames.
Briefly about the three main frame types
| Frame | Description |
|---|---|
| I | An independent frame that does not need neighboring frames for decoding. It depends on no one and can be shown by itself, but it weighs a lot. |
| P | A frame whose restoration uses data from previous frames. Instruction "take the previous frame and fix it": this piece shifted 5 pixels to the right, here it got a bit darker, the rest is unchanged. It weighs times less, but is useless without previous frames. |
| B | A frame that can use information from both previous and subsequent frames |
A typical chain looks like this: I B B P B B P B B P ...
Because of B-frames, the file is stored not in the order it is displayed. To assemble a B-frame, the player already needs the P-frame following it, so the P-frame is stored first in the file, followed by the B-frames that precede it.
What our encoding settings do:
- -g 99999 sets the maximum distance between keyframes. The clip has only 11–21 frames in total, so a second keyframe simply never appears.
- -sc_threshold 0 and -x264-params scenecut=0 disable the scene change detector. Without this, the encoder would put an I-frame on the photo itself because the image changes abruptly there.
- -keyint_min 99999 sets the minimum distance between keyframes. Here it's a safety net that has almost no effect.
- -bf 2 allows up to two consecutive B-frames between P-frames. How many there will actually be is decided by the encoder itself.
Only one I-frame remains in the clip - the very first one (random video). The adult photo becomes a P-frame. Perhaps systems that look at keyframes or the beginning of the clip see a regular video rather than a photo, I cannot claim this works for bypassing moderation.
Instagram may re-encode the uploaded video. As a result, frame structure, compression parameters, and visual quality may change.
Various factors affect the final picture: encoding settings, resolution, image complexity, and re-compression features. Therefore, one cannot reliably establish what exactly caused artifacts based solely on them.
What happens after upload
As a result, we get the same flash creative, only the flash moment is stretched to the entire length of the video, while for moderation it is a single frame.
The video track lasts 1 second and the sound 6-10, and Instagram does not align them upon upload. When the picture ends, each application handles it differently - iOS loops it, while Android and Web leave the last frame and wait for the audio to finish playing.
Moderation online?
After launching 50 test accounts, traffic and first leads started coming in immediately. Quickly generated a batch of videos and set the first thousand accounts to run overnight.
Checked the statistics, there were practically no bans, and I immediately proceeded to scaling: registering new accounts, buying everything suitable on the market, creating sub-accounts (including on already farmed accounts), warming up, and launching.
By evening, the entire feed was clogged with similar creatives from colleagues who had previously run this same bundle, so traffic dropped because everything was flying into the same TA.
I noticed at one of the competitors that a similar story works on iOS, while on Android, conversely, a one-second video loops. Started tinkering with PTS, DTS, CTS, and other history, I won't go deep into it here, this topic deserves a separate article. Eventually, I managed to make it work only on iOS, but in that case, we lose a huge chunk of Android traffic, while we need traffic from both platforms. In the end, my skills were not enough to implement the desired behavior in all players, but it turned out to be an interesting experience and new knowledge.
And then the absurdity generator kicks in: "What if we just glue the hook and the photo together?" Ideally, tests should have started with this exact option, but we don't look for easy ways, plus everything couldn't be that obvious.
IT CAN!
Such creatives lived for about 12 hours after launch, after which they were either deleted, the account was banned, or they stopped gathering views. As a result, we get more traffic from the same impressions because iOS users also see the creative as intended. I don't know what's going on with moderation in Insta; to this day, flashes are being run, only now in video format.
Then comes the classic - burning out the bundle until it gets patched.
A separate mystery for me over the past year is descriptions that bring in views. I never solved this secret, but do I need to?
Supplies and Tools
- Own accounts + sub-accounts from them, plus purchased ones on the market for scaling, about 10k in total, if there were more, I would have launched more)
- Residential proxies + multiport (no traffic fee, for warming up)
- Smartlink https://mtraf.io ❤️ - adult dating vertical
- Launch via api
- Download the generator for such videos that freeze the last frame on Android and Web. I see no point in uploading the generator for gluing hook + photo)
Important
To use the script, python must be installed, and ffmpeg.exe and ffprobe.exe must be located in the folder next to the script - https://www.ffmpeg.org/download.html
Random information
Do whatever you want with it)
- 90% of traffic came from the domain on the creative itself, most people funnel through stories and lose a colossal amount of traffic. Very grateful to the person who tipped me off on this back then.
- Re-launches banned accounts, while stories don't, so accounts with a large number of subscribers had daily posts made to monetize and warm up the already acquired audience.
- F to those who re-uploaded creatives with my domains and continue doing it to this day using the old schemes 🫡
Thanks for attention!
Subscribe to the channel so you don't miss new article announcements - https://t.me/dating_hard Discuss the case and ask questions in the chat - https://t.me/hard_dating

