jsonscraper
שווקים
חזרה ליומן

איך לבדוק גילויי פרסום בסרטוני TikTok ציבוריים

סקריפט Python אוסף סרטונים לפי חיפושים הקשורים למותג, מסמן ניסוחים מפורשים של פרסום ושומר רשימה לבדיקה ידנית

מדיניות עריכה דיווח על שגיאה

כדי לאתר סרטוני TikTok ציבוריים שמזכירים מותג וכוללים ניסוחים מפורשים הקשורים לפרסום, אספו תוצאות באמצעות כמה שאילתות חיפוש, חלצו את הכתוביות וסמנו מילות מפתח. התוצאה היא קובץ CSV עם קישורים ומדדים זמינים — תור לבדיקה אנושית, ולא מסקנה אוטומטית בדבר עמידה בכללים.

תהליך כזה יכול להתאים לסוכנות שבודקת קמפיין מול בריף, או לצוות פנימי שמנהל רשימה של אזכורים ציבוריים. הוא מסייע לארגן את תוצאות החיפוש ומשמר את הסימנים שבעזרתם האנליסט מחליט איזה סרטון לפתוח ולבדוק.

מה בדיוק מחפשים בסרטונים?

לצורך בדיקת פרסום חשובים הקשר של היוצר למותג והאופן שבו הקשר הזה נחשף לצד ההמלצה. המדריך של FTC ליוצרים ברשתות החברתיות מסביר שקשר מהותי יכול להיות כספי, תעסוקתי, אישי או משפחתי, ושהגילוי צריך להיות בולט וברור. לגבי המלצה בווידאו, FTC מציינת שיש לכלול את הגילוי בסרטון עצמו, ולא רק בתיאור. לכן הכתובית שימושית למיון, אך אינה מראה כשלעצמה מה הצופה ראה על המסך או שמע באודיו.

מטרת הסקריפט הזה מצומצמת יותר: למצוא בתוצאות החיפוש שהוחזרו סרטונים שהכתוביות שלהם מכילות ביטויים הקשורים למותג וסימנים אפשריים כגון „פרסומת”, „נותן חסות” או „שותפות”. יש להתאים את רשימת המילים לשפה ולמונחים של הקמפיין. אם הסימן אינו מופיע בכתובית, פתחו את הסרטון ובדקו את תוכנו: התאמה טקסטואלית אינה קובעת אם יש גילוי בסרטון עצמו.

איך להפוך תוצאות חיפוש לתור בדיקה?

הרכיבו רשימה קצרה של שאילתות: שם המותג, הקמפיין ואיות נפוץ של שם המוצר. הריצו כל שאילתה בנפרד ושמרו את הניסוח שלה לצד התוצאות. כך הצוות יוכל לראות באיזו שאילתה נמצא הסרטון ולחזור על האיסוף במידת הצורך.

מאמר: איך לבדוק גילויי פרסום בסרטוני TikTok ציבוריים
תקציר: צוותי שיווק צריכים לעיתים לאתר סרטוני TikTok ציבוריים שמזכירים מותג וכוללים אולי גילויי פרסום. במדריך הזה נראה איך לאסוף תוצאות שהוחזרו מה-API, לחלץ כתוביות ומדדים זמינים ולסמן מילים מפורשות כמו „פרסומת” ו„שותפות” לבדיקה בהמשך.
תפקיד התמונה: המחשה תומכת 2 — היבט ספציפי אחר
מקטע: איך להפוך תוצאות חיפוש לתור בדיקה?
התרשים מציג את הדרך מתוצאות החיפוש לתור בדיקה בקובץ CSV ולבדיקה ידנית של הגילוי בסרטון עצמו.© jsonscraper · איור שנוצר באמצעות AI
מאמר: איך לבדוק גילויי פרסום בסרטוני TikTok ציבוריים
תקציר: צוותי שיווק צריכים לעיתים לאתר סרטוני TikTok ציבוריים שמזכירים מותג וכוללים אולי גילויי פרסום. במדריך הזה נראה איך לאסוף תוצאות שהוחזרו מה-API, לחלץ כתוביות ומדדים זמינים ולסמן מילים מפורשות כמו „פרסומת” ו„שותפות” לבדיקה בהמשך.
תפקיד התמונה: תמונת שער — הרעיון המרכזי
מקטע: איך להפוך תוצאות חיפוש לתור בדיקה?
נושא חזותי: אינפוגרפיקה רוסית

לצורך האיסוף אפשר להשתמש ב-TikTok Scraper API של jsonscraper. נקודת הקצה המתועדת GET /searchVideo נמצאת בכתובת https://tiktok.evelode.com ומקבלת את הפרמטרים keyword, count, date_posted, sort_by, region ו-cursor. בתגובה שנצפתה, נתוני TikTok כללו סרטונים ב-search_item_list[].aweme_info; ייתכן ש-aweme_list יהיה ריק. המנתח שלהלן בודק את שני המיקומים.

יש להעביר את המפתח בפרמטר license_key. שמרו אותו במשתנה סביבה, ולא בסקריפט או במאגר הקוד. תיעוד נקודות הקצה של TikTok מפרט את שמות הפרמטרים לחיפוש; כדי לקבל את העמוד הבא השתמשו ב-cursor שהוחזר. שמרו את מספר האובייקטים שעובדו ואת שאילתת החיפוש עצמה: עימוד מאפשר להמשיך בתוצאות, אך אינו מבטיח כשלעצמו שהתקבל מערך מלא.

דוגמה בסיסית ב-Python

הסקריפט שולח בקשה אחת לכל ביטוי, אוסף את שתי צורות התוצאה המתועדות, מסיר כפילויות לפי מזהה הסרטון, מסמן מילים בתיאור ושומר קובץ CSV. התקינו את requests באמצעות הפקודה python -m pip install requests, הגדירו את JSONSCRAPER_TIKTOK_LICENSE_KEY במשתני הסביבה והפעילו את הקובץ. הדוגמה תואמת ל-Python 3.8 ומעלה.

import csv
import os
import sys
import requests

BASE_URL = "https://tiktok.evelode.com/searchVideo"
KEY = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
if not KEY:
    raise SystemExit("Set JSONSCRAPER_TIKTOK_LICENSE_KEY first")

QUERIES = ["Example Brand", "Example Product", "Example Campaign"]
MARKERS = ("#реклама", "реклама", "спонсор", "партнерство", "партнёрство", "#ad", "sponsored")


def videos_from(payload):
    data = payload.get("tiktok") or {}
    videos = data.get("aweme_list") or []
    if not videos:
        videos = [
            item.get("aweme_info")
            for item in (data.get("search_item_list") or [])
            if isinstance(item, dict) and isinstance(item.get("aweme_info"), dict)
        ]
    return [video for video in videos if isinstance(video, dict)]


rows = {}
for query in QUERIES:
    response = requests.get(
        BASE_URL,
        params={"keyword": query, "count": 20, "date_posted": "this-month", "license_key": KEY},
        timeout=30,
    )
    response.raise_for_status()
    payload = response.json()
    if payload.get("status") != "ok":
        print("Unexpected API status for query:", query, file=sys.stderr)
        continue

    for video in videos_from(payload):
        video_id = video.get("aweme_id")
        if not video_id:
            continue
        author = video.get("author") or {}
        stats = video.get("statistics") or {}
        caption = video.get("desc") or ""
        matched = [word for word in MARKERS if word in caption.casefold()]
        row = rows.setdefault(str(video_id), {
            "video_id": str(video_id),
            "url": video.get("share_url") or "",
            "author": author.get("unique_id") or author.get("nickname") or "",
            "caption": caption,
            "queries": set(),
            "disclosure_markers": set(),
            "play_count": stats.get("play_count"),
            "digg_count": stats.get("digg_count"),
            "comment_count": stats.get("comment_count"),
            "review_status": "manual_review",
        })
        row["queries"].add(query)
        row["disclosure_markers"].update(matched)

with open("tiktok_disclosure_review.csv", "w", newline="", encoding="utf-8-sig") as file:
    fields = ["video_id", "url", "author", "caption", "queries", "disclosure_markers",
              "play_count", "digg_count", "comment_count", "review_status"]
    writer = csv.DictWriter(file, fieldnames=fields)
    writer.writeheader()
    for row in rows.values():
        row["queries"] = " | ".join(sorted(row["queries"]))
        row["disclosure_markers"] = " | ".join(sorted(row["disclosure_markers"]))
        writer.writerow(row)

print("Saved", len(rows), "unique returned videos")

לפני שמירת הקוד, בדקו את הסטטוס של התגובה החיצונית ולאחר מכן את הנתונים שב-tiktok. המנרמל קורא את שני מיקומי הסרטונים. כדי לקבל את העמוד הבא אפשר להעביר את ה-cursor שהתקבל בבקשה הבאה ללא המרה; הדוגמה הבסיסית הזאת מוגבלת במכוון לעמוד אחד לכל שאילתה.

מה יופיע בקובץ CSV?

כל שורה מקשרת בין מזהה הסרטון והקישור אליו, מזהה היוצר הזמין, הכתובית, ביטויי החיפוש וסימני הגילוי שנמצאו. אם התגובה כוללת מדדים של צפיות, לייקים ותגובות, הם נשמרים כהקשר לקביעת סדר הבדיקה. ייתכן שהשדות האלה לא יהיו קיימים; הסקריפט משאיר אותם ריקים ואינו מחליף אותם באפסים.

לאחר מכן פתחו את הסרטון, בדקו אם הגילוי מופיע בו ואם הוא בולט, ותעדו את התוצאה לפי קטגוריות מוסכמות, למשל „נמצא”, „נדרשת בדיקה נוספת” או „לא זוהה בצפייה”. הקוד עצמו מחפש התאמות מדויקות של סימני טקסט בכתובית; הוא אינו מנתח תמונה או אודיו ואינו קובע אם הסרטון עומד בכללים.

בתהליך עבודה שוטף, הריצו את האיסוף לפי לוח זמנים, תעדו את מועד הבקשה ושמרו את ה-JSON המקורי לצד קובץ ה-CSV. הגבילו את רשימת השאילתות לביטויים הנחוצים ואת משך השמירה של הנתונים שנאספו. מדיניות איסוף הנתונים האחראי של jsonscraper ממליצה על תדירות בקשות סבירה, צמצום איסוף הנתונים ובדיקת תוצאות AI לפני נקיטת פעולות המשך.

התוצאה היא תור שחזורי של סרטונים ציבוריים לבדיקה ידנית של גילויי פרסום: התאמות חיפוש והמדדים הזמינים מסייעים לקבוע מה לפתוח תחילה, ואילו הערכת הסרטון עצמו נותרת בידי הבודק. אפשר לבדוק את שמות הפרמטרים ב-תיעוד TikTok API, ולמצוא מידע על המוצר ב-עמוד TikTok Scraper API.

אֲנָשִׁים

עדיין לא רשומים אנשים עבור מאמר זה.

המשיכו לקרואTikTok: הפכו תוצאות חיפוש לרשימת נושאים שבועית לתמיכה
קרא את המאמר הבא

הפכו את מה שקראתם לאינטגרציה עובדת

גלו את ממשקי ה-API לנתונים חברתיים של jsonscraper, בדקו בקשות ובנו את תהליך העבודה הבא.

גלה API