jsonscraper
Markten
Terug naar het journaal

Controleren van reclamevermeldingen in openbare TikTok-video’s

Een Python-script verzamelt video’s op basis van zoekopdrachten naar een merk, markeert expliciete reclamevermeldingen en slaat een lijst op voor handmatige controle

Redactioneel beleid Een fout melden

Om openbare TikTok-video’s met merkvermeldingen en expliciete reclamevermeldingen op te sporen, verzamel je resultaten voor meerdere zoekopdrachten, haal je de bijschriften op en markeer je signaalwoorden. Het resultaat is een CSV-bestand met links en beschikbare statistieken: een wachtrij voor menselijke controle, geen automatisch oordeel over naleving van de regels.

Deze werkwijze is geschikt voor een bureau dat een campagne aan de briefing toetst, of voor een intern team dat een lijst met openbare vermeldingen bijhoudt. Zo worden zoekresultaten systematisch geordend en blijven de aanwijzingen bewaard waarmee een analist bepaalt welke video moet worden geopend en bekeken.

Waar moet je in de video naar zoeken?

Voor een reclamecontrole zijn de band tussen de maker en het merk en de manier waarop die band bij een aanbeveling wordt vermeld van belang. De FTC-richtlijn voor influencers legt uit dat een wezenlijke band financieel, werkgerelateerd, persoonlijk of familiair kan zijn en dat de vermelding duidelijk zichtbaar en begrijpelijk moet zijn. Voor aanbevelingen in video’s geeft de FTC aan dat de vermelding in de video zelf moet staan, en niet alleen in de beschrijving. Een bijschrift is daarom nuttig om resultaten te filteren, maar laat op zichzelf niet zien wat kijkers in beeld zagen of op de audio hoorden.

Deze script heeft een beperktere taak: video’s in de teruggegeven zoekresultaten vinden waarvan de bijschriften merkgerelateerde termen en mogelijke signaalwoorden bevatten, zoals ‘reclame’, ‘sponsor’ of ‘partnerschap’. Stem de woordenlijst af op de taal en terminologie van de campagne. Als een signaalwoord niet in het bijschrift voorkomt, open dan de video en controleer de inhoud: een tekstovereenkomst stelt niet vast of de vermelding in de video zelf staat.

Hoe maak je van zoekresultaten een wachtrij voor controle?

Stel een korte lijst zoekopdrachten samen: de merknaam, de campagne en een gangbare schrijfwijze van het product. Voer de zoekopdrachten afzonderlijk uit en sla ze naast de resultaten op. Zo kan het team zien met welke zoekopdracht een video is gevonden en de verzameling indien nodig opnieuw uitvoeren.

Artikel: Controleren van reclamevermeldingen in openbare TikTok-video’s
Samenvatting: Marketingteams willen vaak openbare TikTok-video’s met merkvermeldingen en mogelijke reclamevermeldingen opsporen. We laten zien hoe je API-resultaten verzamelt, bijschriften en beschikbare statistieken uitleest en expliciete woorden zoals ‘reclame’ en ‘partnerschap’ markeert voor latere controle.
Beeldrol: ondersteunende illustratie 2 — een ander specifiek aspect
Sectie: Hoe maak je van zoekresultaten een wachtrij voor controle?
Het schema toont de route van zoekresultaten naar een CSV-wachtrij en handmatige controle van de vermelding in de video zelf.© jsonscraper · AI-gegenereerde illustratie
Artikel: Controleren van reclamevermeldingen in openbare TikTok-video’s
Samenvatting: Marketingteams willen vaak openbare TikTok-video’s met merkvermeldingen en mogelijke reclamevermeldingen opsporen. We laten zien hoe je API-resultaten verzamelt, bijschriften en beschikbare statistieken uitleest en expliciete woorden zoals ‘reclame’ en ‘partnerschap’ markeert voor latere controle.
Beeldrol: omslag — het centrale idee
Sectie: Hoe maak je van zoekresultaten een wachtrij voor controle?
Visueel onderwerp: Russische inf
Het schema toont de route van zoekresultaten naar een CSV-wachtrij en handmatige controle van de vermelding in de video zelf.© jsonscraper · gemaakt met AI

Voor het verzamelen kun je de TikTok Scraper API van jsonscraper gebruiken. De gedocumenteerde GET-route /searchVideo staat op https://tiktok.evelode.com en accepteert de parameters keyword, count, date_posted, sort_by, region en cursor. In een waargenomen antwoord stonden de TikTok-gegevens met video’s in search_item_list[].aweme_info; aweme_list kon leeg zijn. De parser hieronder controleert beide locaties.

De sleutel wordt doorgegeven via de parameter license_key. Bewaar deze in een omgevingsvariabele, niet in het script of de repository. De documentatie van de TikTok-routes bevat de namen van de zoekparameters; gebruik de teruggegeven cursor voor de volgende pagina. Sla het aantal verwerkte objecten en de zoekopdracht zelf op: paginering maakt het mogelijk de resultatenreeks voort te zetten, maar garandeert op zichzelf niet dat de dataset volledig is.

Een minimaal Python-voorbeeld

Het script voert voor elke zoekterm één aanvraag uit, verzamelt beide gedocumenteerde resultaatvormen, verwijdert dubbele video-ID’s, markeert woorden in de beschrijving en schrijft de resultaten naar een CSV-bestand. Installeer requests met de opdracht python -m pip install requests, stel JSONSCRAPER_TIKTOK_LICENSE_KEY in als omgevingsvariabele en voer het bestand uit. Het voorbeeld werkt met Python 3.8 en hoger.

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")

Controleer voordat je de gegevens opslaat de status van het API-antwoord en daarna de gegevens in tiktok. De normalisatiefunctie leest beide locaties met video’s uit. Voor een volgende pagina kun je de ontvangen cursor ongewijzigd aan de volgende aanvraag doorgeven; dit minimale voorbeeld beperkt zich bewust tot één pagina per zoekopdracht.

Wat staat er in het CSV-bestand?

Elke rij bevat de video-ID en -link, de beschikbare auteursidentificatie, het bijschrift, de zoektermen en de gevonden signaalwoorden. Als het antwoord statistieken over weergaven, likes en reacties bevat, worden die opgeslagen als context voor het bepalen van de controlevolgorde. Deze velden kunnen ontbreken; het script laat ze dan leeg en vult ze niet met nullen.

Open vervolgens de video, controleer of de vermelding in de video zelf aanwezig en duidelijk zichtbaar is en leg de uitkomst vast aan de hand van afgesproken categorieën, bijvoorbeeld ‘gevonden’, ‘verdere controle nodig’ of ‘niet aangetroffen bij het bekijken’. De code zoekt alleen naar exacte tekstuele signaalwoorden in het bijschrift; hij analyseert geen beeld of audio en beoordeelt niet of aan de regels wordt voldaan.

Voer het verzamelen voor een terugkerend proces volgens een schema uit, noteer het tijdstip van de aanvraag en bewaar de oorspronkelijke JSON samen met het CSV-bestand. Beperk de lijst zoekopdrachten tot de benodigde termen en stel een bewaartermijn voor de verzamelde gegevens vast. In het beleid voor verantwoord gegevens verzamelen van jsonscraper wordt gesproken over een redelijke aanvraagfrequentie, gegevensminimalisatie en het controleren van AI-resultaten voordat daarop actie wordt ondernomen.

Het resultaat is een reproduceerbare wachtrij met openbare video’s voor handmatige controle van reclamevermeldingen: overeenkomsten in zoekresultaten en beschikbare statistieken helpen bepalen welke video je als eerste opent, terwijl de beoordeling van de video zelf aan de controleur blijft. Je kunt de parameterbenamingen nalezen in de documentatie van de TikTok API en productinformatie vinden op de pagina van de TikTok Scraper API.

Mensen

Er zijn nog geen mensen vermeld voor dit artikel.

Blijf lezenTikTok: maak van zoekresultaten een wekelijkse lijst met supportonderwerpen
Lees het volgende artikel

Maak van wat je leest een werkende integratie

Ontdek de socialdata-API's van jsonscraper, test aanvragen en bouw je volgende workflow.

API's verkennen