TikTok प्रतिस्पर्धा विश्लेषण: एक साप्ताहिक सामग्री रिपोर्ट बनाएं
Web Data Collection Specialist
TL;DR:
- TikTok प्रतिस्पर्धी विश्लेषण एक निश्चित खाता सेट के साथ शुरू होता है। कोई भी पोस्ट इकट्ठा करने से पहले, रिपोर्ट में शामिल सार्वजनिक ब्रांड खातों को रिकॉर्ड करें।
- तुलनीय नमूने बिना लेबल वाले कुल से ज्यादा महत्वपूर्ण हैं। प्रत्येक खाते के लिए समान अनुरोधित संख्या और संग्रह खिड़की का उपयोग करें, फिर लौटाए गए वस्तु गणनाओं को प्रकट करें।
- सामग्री श्रेणियों को समीक्षा योग्य नियमों की आवश्यकता है। प्रत्येक थीम लेबल के बगल में मेल खाती वाक्यांश और हैशटैग स्टोर करें ताकि एक समीक्षक वर्गीकरण को सही कर सके।
- मिश्रण एक वायरल पोस्ट के प्रभाव को कम करता है। रिपोर्ट वितरण और अवलोकित नमूना ताल को कुल के साथ साझा करें।
- एक साप्ताहिक रिपोर्ट अवलोकित नमूनों का वर्णन करती है। बिना पुष्टि किए पूर्ण-पीरियड कवरेज के, यह एक खाते की सटीक कुल पोस्टिंग आवृत्ति का दावा नहीं कर सकती।
- शुरू करने के लिए स्वतंत्र। नए Scrapeless खातों में मुफ्त क्रेडिट शामिल है; Scrapeless डैशबोर्ड में एक खाता बनाएं।
परिचय: प्रतिस्पर्धी रिपोर्ट नमूने चरण में विफल रहती हैं
सार्वजनिक ब्रांड फीड्स को खराब तरीके से तुलना करना आसान है। एक खाता 30 अवलोकित पोस्ट योगदान कर सकता है, दूसरा 8, और एकल बाहरी तत्व औसत व्यस्तता को हावी कर सकता है। एक परिष्कृत चार्ट उस विसंगति को ठीक नहीं करता।
यह कार्यप्रवाह चुने गए सार्वजनिक खातों से एक साप्ताहिक TikTok प्रतिस्पर्धी सामग्री रिपोर्ट बनाता है। यह सीमित पोस्ट नमूनों का संग्रह करता है, सामग्री को सरल समीक्षा योग्य नियमों के साथ लेबल करता है, मिश्रण को मध्य और रेंज के साथ संक्षिप्त करता है, और अंतिम रिपोर्ट में संग्रह दायरा स्पष्ट करता है।
जब खाता सेट निर्माताओं से बना होता है, तो TikTok प्रभावशाली विश्लेषण गाइड का उपयोग करें।
एक नज़र में पाइपलाइन
एक व्यावहारिक TikTok प्रतिस्पर्धी विश्लेषण पाइपलाइन में पाँच चरण होते हैं:
- प्रतिस्पर्धी रॉस्टर और रिपोर्टिंग अवधि को परिभाषित करें।
- प्रत्येक सार्वजनिक उपयोगकर्ता नाम को
sec_uidमें हल करें। - प्रत्येक खाते के लिए समान सीमित पोस्ट नमूना इकट्ठा करें।
- पारदर्शी नियमों के साथ विवरण और हैशटैग की वर्गीकृत करें।
- अवलोकित नमूने को साप्ताहिक रिपोर्ट में एकत्रित करें।
पाइपलाइन कच्चे उत्तर और सामान्यीकृत पंक्तियों को संग्रहीत करती है, फिर किसी भी सारांश की गणना करने से पहले। उस अलगाव से रिपोर्टिंग परिवर्तन को एक और संग्रह चलाने के लिए मजबूर नहीं किया जाता है।
पूर्वापेक्षाएँ
- Scrapeless खाता और Scrapeless डैशबोर्ड से API टोकन
- इसके मानक पुस्तकालय के साथ Python 3
- सार्वजनिक ब्रांड उपयोगकर्ता नामों की एक समीक्षा की गई सूची
- एक निश्चित अनुरोधित पोस्ट संख्या और एक संग्रह समय stamps
- एक छोटा श्रेणी शब्दकोश जिसे एक मानव निरीक्षण कर सकता है
- नीचे दिए गए कोड के लिए एक लाइव टोकन निर्यात किया गया है
SCRAPELESS_API_KEY
संविधान किया गया उदाहरण एक पूर्वापेक्षाएँ अंतर के रूप में चिह्नित है क्योंकि इसे पाठक के API प्रमाण पत्र और चयनित खातों की आवश्यकता है। रूपांतरण तर्क शामिल है, लेकिन लेख में निजी प्रमाणपत्र या बनाए गए अभिनेताoutput नहीं हैं।
चरण 1: तुलना योग्य प्रतिस्पर्धी सेट को परिभाषित करें
एक प्रतिस्पर्धी रॉस्टर रिपोर्ट स्पेसिफिकेशन का हिस्सा है। हर खाते को एक स्थिर आंतरिक लेबल, एक सार्वजनिक उपयोगकर्ता नाम, इसे शामिल करने का कारण, और रॉस्टर के अनुमोदन की तिथि दें। इसी आकार के ब्रांड खातों के सेट में बड़े प्रकाशक या व्यक्तिगत निर्माताओं को चुपचाप जोड़ने से बचें क्योंकि इसकी सामग्री मात्रा तुलना को विकृत करेगी।
एक संक्षिप्त रॉस्टर इस तरह लग सकता है:
| account_label | username | inclusion_reason |
|---|---|---|
| Brand A | brand_a |
प्रत्यक्ष श्रेणी प्रतिस्पर्धी |
| Brand B | brand_b |
समान दर्शक और मूल्य स्तर |
| Brand C | brand_c |
सन्निहित श्रेणी मानक |
रॉस्टर को उपयोगकर्ताओं द्वारा प्रदान किया गया रखें। यहाँ उपयोग किए गए अभिनेता पूरी प्रतिस्पर्धात्मक बाजार की खोज नहीं करते हैं या यह साबित नहीं करते हैं कि दो खाते व्यावसायिक रूप से प्रतिस्पर्धा करते हैं।
चरण 2: समान सीमित पोस्ट नमूना इकट्ठा करें
संग्रह चरण प्रत्येक उपयोगकर्ता नाम को scraper.tiktok.user.detail के माध्यम से हल करता है, फिर लौटाए गए sec_uid को scraper.tiktok.user.work पर प्रदान करता है। पोस्ट अनुरोध cursor और count को स्वीकार करता है; यह कार्यप्रवाह प्रलेखित कर्सर "0" से शुरू होता है जिसमें प्रत्येक खाते के लिए समान अनुरोधित संख्या होती है।
अनुरोधित संख्या और लौटाई गई संख्या को अलग से संग्रहीत करें। यदि एक खाता कम उपयोगी वस्तुएं लौटाता है, तो उसकी मेट्रिक्स को शून्य-मूल्य पंक्तियों से भरें नहीं। साप्ताहिक रिपोर्ट में अंतर का खुलासा करें।
पोस्ट प्रतिक्रिया में विवरण, हैशटैग, निर्माण समय, सार्वजनिक प्ले और व्यस्तता गणनाएँ, यूआरएल, पिन किया गया स्थिति, भाषा, संगीत, उपशीर्षक, और मीडिया क्षेत्र शामिल हो सकते हैं। वैकल्पिक मूल्य खाली हो सकते हैं। एक गायब मूल्य तब तक गायब रहना चाहिए जब तक कि स्रोत की अर्थशास्त्र एक और व्याख्या को सही न ठहराए।
Scrapeless के साथ स्क्रैपिंग शुरू करें
Scrapeless के साथ अपने वेब स्क्रैपिंग और स्वचालन कार्यप्रवाह को शक्ति प्रदान करें!
आज साइन अप करें और 5 अमेरिकी डॉलर का मुफ्त क्रेडिट प्राप्त करें — क्रेडिट कार्ड की आवश्यकता नहीं।
अपने फ्री क्रेडिट को अब Scrapeless Dashboard में क्लेम करें।
चरण 3: समीक्षीय नियमों के साथ सामग्री वर्गीकृत करें
सामग्री वर्गीकरण को हर लेबल के पीछे सबूत को संरक्षित करना चाहिए। एक सरल नियम तालिका अक्सर साप्ताहिक संचालन रिपोर्ट के लिए पर्याप्त होती है:
| विषय | विवरणात्मक वाक्य | हैशटैग |
|---|---|---|
| उत्पाद शिक्षा | how to, tips, explained |
tutorial, howto |
| लॉन्च | new, introducing, available now |
launch, newproduct |
| प्रचार | sale, discount, limited offer |
sale, deal |
| समुदाय | duet, challenge, your turn |
challenge, community |
ये लेबल संपादकीय नियम हैं, न कि अभिनेता-प्रदाता तथ्य। मेल खाते हुए शब्द को सहेजें और uncategorized की अनुमति दें जब कोई नियम फिट न हो। एक समीक्षक फिर वर्गीकरण त्रुटि को संग्रहण त्रुटि से भिन्न कर सकता है।
नियम-आधारित लेबल ओवरलैप को भी उजागर करते हैं। एक पोस्ट एक उत्पाद लॉन्च और एक प्रचार पर एक साथ चर्चा कर सकती है। या तो अधिकतम लेबल की अनुमति दें या एक प्रलेखित प्राथमिकता क्रम को परिभाषित करें; अमूर्त रूप से शब्दकोश क्रम को तय करने की अनुमति न दें।
चरण 4: सहभागिता और अवलोकित ताल को संक्षेपित करें
पब्लिक एंगेजमेंट गणनाएँ संग्रहण के समय में कैप्चर की गई संचित अवलोकन हैं। उन्हें घोषित नमूने के भीतर तुलना करें न कि उन्हें ब्रांड प्रदर्शन के एक पूर्ण माप के रूप में मानें।
प्रति खाते के लिए उपयोगी क्षेत्र शामिल हैं:
- लौटे हुए पोस्ट की गणना
- अवलोकित नमूने में सबसे पुराना और सबसे हाल का सृजन समय
- मध्यवर्ती खेल, पसंद, टिप्पणी, और शेयर की गणनाएँ
- स्प्रेड दिखाने के लिए न्यूनतम और अधिकतम मान
- वर्गीकृत नमूने में विषय का हिस्सा
- नमूने में पिन की गई पोस्ट की संख्या
- निकटवर्ती सैम्पल पोस्ट तिथियों के बीच अवलोकित अंतराल
पायथन का स्टैटिस्टिक्स मॉड्यूल डॉक्यूमेंटेशन कार्यान्वयन में प्रयुक्त मध्यवर्ती ऑपरेशन को परिभाषित करता है। एक मध्यवर्ती मध्य में अवलोकित मूल्य देता है और एक असाधारण बड़े पोस्ट के प्रभाव को सीमित करता है, लेकिन यह सैंपलिंग पूर्वाग्रह को समाप्त नहीं करता है।
पोस्टिंग ताल को सावधानीपूर्वक शब्दों में व्यक्त करने की आवश्यकता होती है। यदि एकत्र किया गया नमूना रिपोर्टिंग काल के पूरे कवरेज को साबित नहीं करता है, तो "एकत्र किए गए नमूने में अवलोकित पोस्ट" और इसके सबसे पुराने और नवीनतम आइटम के बीच की तारीख की跨度 की रिपोर्ट करें। उस संख्या को खाते की सटीक साप्ताहिक पोस्टिंग आवृत्ति के रूप में प्रस्तुत न करें।
चरण 5: पायथन पाइपलाइन संकलित करें
नीचे दिया गया स्क्रिप्ट प्रत्येक दिए गए उपयोगकर्ता नाम के लिए एक निश्चित प्रारंभिक नमूना एकत्र करता है, एक या एक से अधिक सामग्री विषयों को असाइन करता है, और पोस्ट-स्तरीय पंक्तियाँ और एक खाता-स्तरीय संक्षेप लिखता है। पायथन का CSV मॉड्यूल डॉक्यूमेंटेशन निर्यात प्रारूप को कवर करता है, और NIST प्राइवेसी फ्रेमवर्क पहुँच, सुरक्षा, और डेटा-न्यूनतम निर्णयों के लिए एक उपयोगी संरचना प्रदान करता है।
नोट: नीचे दिया गया कोड
SCRAPELESS_API_KEYमें एक लाइव Scrapeless API टोकन और पाठक द्वारा प्रदान किए गए वास्तविक सार्वजनिक उपयोगकर्ता नाम की आवश्यकता है।
python
import csv
import json
import os
from datetime import datetime, timezone
from statistics import median
from urllib.request import Request, urlopen
ENDPOINT = "https://api.scrapeless.com/api/v1/scraper/request"
TOKEN = os.environ["SCRAPELESS_API_KEY"]
ACCOUNTS = [name.strip().lstrip("@") for name in os.environ[
"TIKTOK_COMPETITOR_USERNAMES"
].split(",") if name.strip()]
REQUESTED_COUNT = 20
THEMES = {
"product_education": {"how to", "tips", "explained", "tutorial", "howto"},
"launch": {"new", "introducing", "available now", "launch", "newproduct"},
"promotion": {"sale", "discount", "limited offer", "deal"},
"community": {"duet", "challenge", "your turn", "community"},
}
def run_actor(actor, actor_input):
data = json.dumps({"actor": actor, "input": actor_input}).encode()
request = Request(
ENDPOINT,
data=data,
headers={"x-api-token": TOKEN, "content-type": "application/json"},
method="POST",
)
with urlopen(request, timeout=60) as response:
return json.load(response)
def labels_for(item):
hashtag_values = []
for tag in item.get("hashtags") or []:
hashtag_values.append(
str(tag.get("name", "")) if isinstance(tag, dict) else str(tag)
)
searchable = " ".join([
str(item.get("description") or ""),
" ".join(hashtag_values),
]).lower()
labels = [
theme for theme, terms in THEMES.items()
if any(term in searchable for term in terms)
]
return labels or ["uncategorized"]
def metric(item, name):
value = item.get(name)
return value if isinstance(value, (int, float)) else None
collected_at = datetime.now(timezone.utc).isoformat()
rows = []
for username in ACCOUNTS:
profile = run_actor("scraper.tiktok.user.detail", {"unique_id": username})
response = run_actor(
"scraper.tiktok.user.work",
{"sec_uid": profile["sec_uid"], "cursor": "0", "count": REQUESTED_COUNT},
)
with open(f"{username}-posts-raw.json", "w", encoding="utf-8") as raw_file:
json.dump(response, raw_file, ensure_ascii=False, indent=2)
for item in response.get("items") or []:
rows.append({
"account": username,
"collected_at": collected_at,
"requested_count": REQUESTED_COUNT,
"post_id": str(item.get("id") or item.get("post_id") or ""),
"post_url": item.get("url") or item.get("post_url") or "",
"created_at": item.get("create_time") or item.get("date") or "",
"themes": "|".join(labels_for(item)),
"play_count": metric(item, "play_count"),
"like_count": metric(item, "like_count"),
"comment_count": metric(item, "comment_count"),
"share_count": metric(item, "share_count"),
"is_pinned": item.get("is_pinned"),
})
with open("competitor-posts.csv", "w", newline="", encoding="utf-8") as output:
writer = csv.DictWriter(output, fieldnames=rows[0].keys() if rows else ["account"])
writer.writeheader()
writer.writerows(rows)
with open("competitor-weekly-summary.csv", "w", newline="", encoding="utf-8") as output:
fields = ["account", "observed_posts", "median_plays", "median_likes"]
writer = csv.DictWriter(output, fieldnames=fields)
writer.writeheader()
for username in ACCOUNTS:
account_rows = [row for row in rows if row["account"] == username]
plays = [row["play_count"] for row in account_rows if row["play_count"] is not None]
likes = [row["like_count"] for row in account_rows if row["like_count"] is not None]
writer.writerow({
"account": username,
"observed_posts": len(account_rows),
"median_plays": median(plays) if plays else "",
"median_likes": median(likes) if likes else "",
})
संक्षेप जानबूझकर observed_posts कहता है। इसे विषय की गणना, मूल्य सीमा, और नमूना तिथि की स्पेंस के साथ बढ़ाएं, जब आप लाइव प्रतिक्रिया में सटीक टाइमस्टाम्प प्रतिनिधित्व की पुष्टि करें।
साप्ताहिक प्रतिस्पर्धी सामग्री रिपोर्ट टेम्पलेट
एक उपयोगी रिपोर्ट एक पृष्ठ में उपयुक्त हो सकती है, जो परिशिष्ट से पहले हो:
| अनुभाग | शामिल करें | दायरा नोट |
|---|---|---|
| संग्रहण सारांश | खाता सूची, संग्रहण समय, अनुरोधित और लौटाई गई गणनाएँ | परिणामों को एकत्र किए गए नमूनों को कवर करने के लिए स्थिति दें |
| सामग्री मिश्रण | विषय की गणनाएँ और हिस्से, श्रेणीबद्ध दर | वर्तमान नियम शब्दकोश संलग्न करें |
| सहभागिता | मेट्रिक और खाते के अनुसार मध्यवर्ती और सीमा | संग्रहण के समय सार्वजनिक संचित गणनाएँ |
| ताल | अवलोकित पोस्ट तिथियाँ और अंतराल | कवरेज के बिना पूर्ण-काल आवृत्ति का दावा न करें |
| उल्लेखनीय पोस्ट | पोस्ट URL, विषय, मेट्रिक संदर्भ, समीक्षक नोट | अवलोकनों को व्याख्या से अलग करें |
| क्रियाएँ | अगले रिपोर्ट में परीक्षण करने के लिए प्रश्न | संरक्षित रचनात्मक संपत्तियों की प्रतिलिपि बनाने से बचें |
पोस्ट-स्तरीय पंक्तियों को परिशिष्ट या लिंक किए गए CSV में रखें। मुख्य रिपोर्ट को पाठक को एकत्र किए गए खाते, पोस्ट URL, संग्रहण समय, और वर्गीकरण नियम के लिए हर निष्कर्ष को ट्रेस करने की अनुमति देनी चाहिए।
सार्वजनिक खाता डेटा को जिम्मेदारी से संभालें
एक सार्वजनिक प्रोफ़ाइल में व्यक्तिगत डेटा भी शामिल हो सकता है। रिपोर्टिंग उद्देश्य के लिए खाता सेट को सीमित करें, कच्चे जवाबों तक पहुँच को प्रतिबंधित करें, एक मिटाने की अनुसूची को परिभाषित करें, और कैप्शन, भाषा, या दृश्य सामग्री से संवेदनशील गुणों का अनुमान लगाने से बचें।
प्रतिस्पर्धी विश्लेषण को दृश्य सामग्री पैटर्न का वर्णन करना चाहिए। इसे मीडिया को पुनः प्रकाशित नहीं करना चाहिए, सुरक्षित रचनात्मक कार्य की नकल नहीं करनी चाहिए, या किसी ब्रांड या निर्माता के लिए छिपी हुई मंशा निर्धारित नहीं करनी चाहिए। मानव समीक्षा को उन लेबलों के लिए शामिल करें जो वाणिज्यिक निर्णयों पर प्रभाव डाल सकते हैं।
Scrapeless सार्वजनिक संग्रहकर्ताओं को Scraping API के माध्यम से प्रदान करता है। अनुरोधित खाते और नमूने की गणनाओं को उत्पादन योजना में अनुवाद करते समय वर्तमान मूल्य निर्धारण पृष्ठ की जांच करें।
निष्कर्ष: तुलना को ऑडिट करने योग्य बनाएं
जब हर संख्या का अपना दायरा होता है तो TikTok प्रतिस्पर्धी विश्लेषण उपयोगी हो जाता है। खाता सूची को ठीक करें, तुलनीय नमूनों का अनुरोध करें, कच्चे उत्तरों को संरक्षित करें, वर्गीकरण नियमों को उजागर करें, और लौटाई गई गणनाओं के साथ माध्यमिक रिपोर्ट करें। परिणाम एक साप्ताहिक सामग्री रिपोर्ट है जो समीक्षा का समर्थन करती है बिना यह दिखाए कि नमूना हर खाते का पूर्ण दृश्य है।
क्या आप एक साप्ताहिक प्रतिस्पर्धी रिपोर्ट बनाने के लिए तैयार हैं?
संग्रह और रिपोर्टिंग पैटर्न पर चर्चा करने के लिए Scrapeless Discord या Telegram community से जुड़ें। जब सूची और नमूना नीति तैयार हो जाए, तो Scrapeless Dashboard में एक खाता बनाएं।
सामान्य प्रश्न
प्र. TikTok प्रतिस्पर्धी विश्लेषण क्या है?
TikTok प्रतिस्पर्धी विश्लेषण एक उपयोगकर्ता-परिभाषित सेट के खातों में दृष्टिगोचर सार्वजनिक सामग्री और व्यस्तता गतिकी की तुलना करता है। एक ठोस रिपोर्ट अपनी संग्रहण समय, नमूना आकार, और वर्गीकरण नियमों को भी बताती है।
प्र. साप्ताहिक प्रतिस्पर्धी रिपोर्ट में कौन से मैट्रिक्स शामिल होने चाहिए?
एक साप्ताहिक प्रतिस्पर्धी रिपोर्ट में अवलोकित पोस्ट की संख्या, नमूना तिथि सीमा, सामग्री-थीम मिश्रण, माध्यमिक सार्वजनिक व्यस्तता की गणनाएं, रेंज, और प्रमुख पोस्टों के लिंक शामिल हो सकते हैं। प्रत्येक मैट्रिक्स को एक नमूना अवलोकन के रूप में लेबल किया जाना चाहिए।
प्र. क्या नमूना सटीक पोस्टिंग आवृत्ति दिखा सकता है?
नमूना सटीक पोस्टिंग आवृत्ति केवल तभी दिखाता है जब संग्रह ने निर्दिष्ट अवधि का पूर्ण कवरेज सत्यापित किया हो। अन्यथा, अवलोकित तारीखों और संग्रहित नमूने के भीतर अंतराल की रिपोर्ट करें।
प्र. औसत व्यस्तता के बजाय माध्यमिक व्यस्तता का उपयोग क्यों करें?
माध्यमिक व्यस्तता एक असामान्य रूप से बड़े अवलोकित मान के प्रभाव को कम करती है। यह अब भी नमूने की गुणवत्ता पर निर्भर करती है, इसलिए इसके बगल में नमूना गणना और रेंज प्रकाशित करें।
प्र. क्या कार्यप्रवाह को एक ब्राउज़र पार्सर या प्रॉक्सी सेटअप की आवश्यकता है?
API निर्धारित पहचानकर्ताओं के लिए समर्थित सार्वजनिक खाता और पोस्ट क्षेत्रों को लौटाता है। रिपोर्टिंग पाइपलाइन अभी भी खातों, नमूना सीमाओं, भंडारण, वर्गीकरण, और समीक्षा को परिभाषित करती है।
प्र. क्या सार्वजनिक प्रतिस्पर्धी सामग्री एकत्र करना कानूनी है?
कानूनीता क्षेत्राधिकार, उद्देश्य, डेटा, पहुँच विधि, और लागू शर्तों पर निर्भर करती है। केवल आवश्यक सार्वजनिक क्षेत्रों को एकत्र करें, बौद्धिक संपदा का सम्मान करें, संरक्षण को सीमित करें, और विशेष उपयोग के लिए कानूनी सलाह प्राप्त करें।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



