وقتی در اینترنت جستجو میکنید که «چند هشتگ باید استفاده کنیم؟»، پاسخهای قطعی اما کاملاً متضادی دریافت میکنید: سه، پنج، یازده، سی عدد یا حتی «اصلاً هشتگ نزنید». همه اینها حدس و گمان هستند یا بدتر از آن، به مطالعهای استناد میکنند که روی حساب کاربری یک نفر دیگر در یک حوزه کاملاً متفاوت انجام شده است. تنها پاسخی که واقعاً اهمیت دارد، پاسخی است که پستهای خود شما به شما میدهند و میتوانید آن را در طول یک بعدازظهر محاسبه کنید.
این یک روششناسی است، نه یک حکم قطعی. قرار نیست به شما بگوییم «هفت هشتگ استفاده کنید». در عوض، نشان میدهیم چطور پستهای عمومی خودتان (یا یک رقیب) را استخراج کنید و رابطه بین تعداد هشتگ و تعامل را بسنجید تا به عددی برسید که واقعاً برای مخاطبان شما درست است.
چرا مطالعات عمومی هشتگ برای شما بیارزش هستند
رفتار هشتگها به شدت به حوزه فعالیت (نیش) شما بستگی دارد. یک هشتگ شلوغ مثل #fitness شباهتی به یک هشتگ تخصصیتر ندارد. مطالعهای که میلیونها پست را در تمام دستهها جمعآوری میکند، یک «میانگین» به دست میدهد که هیچ حساب واقعی را توصیف نمیکند. نرخ تعامل شما به مخاطبان، رقابت هشتگ در حوزه شما و الگوریتم فعلی پلتفرم بستگی دارد که هیچکدام در یک بررسی کلی و عمومی ثبت نمیشوند.
بنابراین، بهترین کار این است که تحلیل را روی مجموعه دادهای اجرا کنید که شبیه خود شماست: پستهای خودتان یا چند حساب کاربری در همان حوزه تخصصیتان. این همان چیزی است که دسترسی به دادههای پستهای عمومی ممکن میسازد.
گام اول: استخراج پستها
برای هر پست به دو چیز نیاز دارید: تعداد هشتگها و یک شاخص تعامل. نقاط پایانی پستها در ابزارهای تحلیلی هر دو را در اختیار شما میگذارند. برای اینستاگرام، میتوانید پستهای یک پروفایل را به کمک اسکریپتهای پایتون فراخوانی کنید:
import os, re, requests
API_KEY = os.environ["SOCIAVAULT_API_KEY"]
BASE = "https://api.sociavault.com/v1"
def instagram_posts(handle, pages=3):
posts, cursor = [], None
for _ in range(pages):
params = {"handle": handle}
if cursor:
params["next_max_id"] = cursor
r = requests.get(f"{BASE}/scrape/instagram/posts",
headers={"x-api-key": API_KEY}, params=params, timeout=60)
r.raise_for_status()
data = r.json().get("data", {})
items = data.get("items", []) if isinstance(data, dict) else []
posts.extend(items)
cursor = data.get("next_max_id") if isinstance(data, dict) else None
if not cursor:
break
return posts
فیلدها را بااحتیاط بخوانید و یک پاسخ خام را بررسی کنید تا مطمئن شوید ساختار دادهها درست است. در اینستاگرام، پستها شامل متن کپشن، تعداد لایک و تعداد کامنت میشوند.
گام دوم: استخراج تعداد هشتگ و میزان تعامل
اکنون هر پست را به یک جفت داده شامل (تعداد هشتگ، میزان تعامل) تبدیل کنید:
def to_rows(posts):
rows = []
for p in posts:
caption = ((p.get("caption") or {}).get("text")) or ""
hashtags = len(re.findall(r"#\w+", caption))
likes = p.get("like_count") or 0
comments = p.get("comment_count") or 0
rows.append({"hashtags": hashtags, "engagement": likes + comments})
return rows

