Illustration de l’extracteur TikTok Ad LibraryBibliothèque de contenus commerciaux

Extracteur TikTok Ad Library.

Collectez les annonces TikTok dans l’UE/EEE, au Royaume-Uni et en Suisse. Regardez les vidéos, comparez offres et activité, puis préparez des tests pour votre audience.

Lancer sur Apify

Comment utiliser cet extracteur.

Essayez ces exemples pour le marketing, la croissance et l’analyse concurrentielle.

01

Préparez un test vidéo par catégorie de produit

Pour une campagne beauté en France, collectez les annonces de la catégorie et regardez les vidéos. Annotez accroches, démonstrations et offres pour choisir vos angles de test.

Gardez les références dans un tableau et sélectionnez des idées de storyboard.

02

Étudiez les créations avant un nouveau marché

Comparez les annonces en Allemagne et en Espagne. Étudiez annonceurs, contenus et langues avant de choisir la production locale.

Gardez les vidéos sources dans une étude de marché avec les questions de localisation restantes.

03

Trouvez les créateurs du contenu commercial d’une marque

Recherchez une marque et vérifiez si chaque résultat appartient à son entité enregistrée ou à un créateur. Gardez les deux identités.

Utilisez la liste d’annonceurs et créateurs pour étudier des partenariats.

DU PREMIER ESSAI AU FLUX RÉCURRENT

Votre premier essai, pas à pas.

  1. Ouvrez l’Actor sur Apify, choisissez Input et passez à l’éditeur JSON pour coller une configuration.
  2. Remplacez toute la saisie JSON par l’exemple et Nike par votre annonceur. Un nom visible peut correspondre à plusieurs noms juridiques ; passez à advertiserBusinessIds après avoir vérifié l’identifiant dans un résultat.
  3. Choisissez un pays pris en charge, comme FR, et maxAds 50. Gardez les proxies résidentiels. Supprimez la région GB préremplie si vous voulez uniquement la France. Laissez les filtres d’audience vides jusqu’à ce premier résultat.
  4. Lancez l’exécution et consultez le journal. Vérifiez les cibles et filtres retenus avant de conclure qu’aucun résultat n’existe.
  5. Ouvrez Storage → Dataset, vérifiez quelques lignes et exportez en JSON pour les données imbriquées ou en CSV pour un premier examen dans un tableur.
Configuration de départ
{
  "searchTerms": ["Nike"],
  "regions": ["FR"],
  "maxAds": 50,
  "adStatus": "all",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}

Collez ceci dans l’éditeur JSON de l’Actor. Remplacez les cibles d’exemple avant de lancer.

Voir le formulaire actuel sur Apify

Choisissez votre mode de recherche.

Il s’agit de la bibliothèque de contenu commercial de TikTok, couvrant l’UE/EEE, le Royaume-Uni et la Suisse. Elle convient à la recherche d’annonceurs dans ces marchés. Pour des idées créatives aux États-Unis, utilisez le scraper Creative Center.

Méthode de rechercheQuand l’utiliserCe qui change
Nom d’annonceur ou de marqueQuand l’utiliserVous avez une liste de concurrents à suivre.Ce qui changeRecherchez les annonceurs, souvent enregistrés sous leur raison sociale. Des noms partiels, profils TikTok et sites peuvent identifier une marque. Sans annonces, le nom peut devenir un mot-clé.
Recherche par mots-clésQuand l’utiliserVous cherchez des résultats pertinents avant de choisir des cibles précises.Ce qui changeRecherchez des thèmes comme running shoes dans le contenu, indépendamment de l’annonceur. Utile pour découvrir de nouvelles entreprises.
Identifiants d’annonceursQuand l’utiliserVous connaissez l’entité exacte à collecter.Ce qui changeIdentifiants numériques d’entreprise TikTok. Permettent un suivi exact sans correspondance de nom. Copiez un identifiant vérifié, pas un pseudonyme TikTok.
URL de la bibliothèque publicitaireQuand l’utiliserVous avez déjà configuré la recherche sur le site source.Ce qui changeCollez des liens de recherche library.tiktok.com. Leurs pays, dates, statuts et filtres d’audience priment ; les champs séparés complètent les valeurs absentes.

La différence à retenir

Seuls les 32 marchés indiqués sont couverts : UE/EEE, Royaume-Uni et Suisse. Les pays explicites sont recherchés séparément. Une liste regions vide recherche tous les marchés ensemble ; ["all"] recherche chaque pays séparément. Les pays non pris en charge sont ignorés. S’il n’en reste aucun, tous les marchés couverts sont recherchés.

Comparer le scraper associé

Tous les paramètres, expliqués.

Utilisez les noms exacts ci-dessous en JSON. Dans le formulaire Apify, saisissez les éléments des listes séparément et respectez les types numériques et booléens.

Valeur par défaut et préremplissage sont différents. La valeur par défaut s’applique si vous omettez un réglage ; le préremplissage est un exemple déjà saisi dans le formulaire Apify. Vérifiez cibles et limites avant chaque collecte. Certains réglages n’ont pas de valeur par défaut dans le schéma. Indiquez au moins une cible prise en charge.

Cibles et recherches5
searchTerms
ListeExemple prérempli : ["Nike"]

Recherchez les annonceurs, souvent enregistrés sous leur raison sociale. Des noms partiels, profils TikTok et sites peuvent identifier une marque. Sans annonces, le nom peut devenir un mot-clé.

searchTerm
Texte

Un nom d’annonceur au lieu de searchTerms. Utilisez la liste pour plusieurs concurrents et advertiserBusinessIds pour une entité connue.

keywords
Liste

Recherchez des thèmes comme running shoes dans le contenu, indépendamment de l’annonceur. Utile pour découvrir de nouvelles entreprises.

advertiserBusinessIds
Liste

Identifiants numériques d’entreprise TikTok. Permettent un suivi exact sans correspondance de nom. Copiez un identifiant vérifié, pas un pseudonyme TikTok.

adLibraryUrls
Liste

Collez des liens de recherche library.tiktok.com. Leurs pays, dates, statuts et filtres d’audience priment ; les champs séparés complètent les valeurs absentes.

Marchés, dates et filtres10
regions
ListeExemple prérempli : ["GB"]

Seuls les 32 marchés indiqués sont couverts : UE/EEE, Royaume-Uni et Suisse. Les pays explicites sont recherchés séparément. Une liste regions vide recherche tous les marchés ensemble ; ["all"] recherche chaque pays séparément. Les pays non pris en charge sont ignorés. S’il n’en reste aucun, tous les marchés couverts sont recherchés.

Valeurs JSON proposées
AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MT NL NO PL PT RO SE SI SK all
region
Texte

Un pays en complément ou à la place de regions. Contrairement à Google Ads, ce champ se combine avec la liste, pas seulement lorsqu’elle est vide.

Valeurs JSON proposées
AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MT NL NO PL PT RO SE SI SK
minDate
Texte

Filtre côté serveur la dernière diffusion, pas la création. Utilisez YYYY-MM-DD ; sans dates, l’archive disponible est couverte, pas seulement les 30 jours du site.

maxDate
Texte

La dernière diffusion doit être à cette date ou avant. Avec minDate, définit une période de dernière diffusion ; une annonce lancée des mois avant peut correspondre.

adType
TextePar défaut : all

Choisissez all, video, image ou text. Filtre le format créatif, pas la nature politique ou commerciale.

Valeurs JSON proposées
all video image text
adStatus
TextePar défaut : all

active signifie en cours, inactive arrêté, all les deux. Statut et dernière diffusion répondent à des questions différentes ; définissez-les séparément.

Valeurs JSON proposées
all active inactive
sortBy
TextePar défaut : last_shown_date,desc

Triez par dernière diffusion, publication ou portée unique, en ordre croissant ou décroissant. Avec maxAds, cela change la portion collectée en premier.

Valeurs JSON proposées
last_shown_date,desc last_shown_date,asc create_time,desc create_time,asc impression,desc impression,asc
gender
TextePar défaut : ALL

Filtre le genre ciblé déclaré : ALL, FEMALE ou MALE. Il s’agit du ciblage, pas d’une répartition mesurée des spectateurs.

Valeurs JSON proposées
ALL FEMALE MALE
ages
Liste

Tranches d’âge ciblées sous forme de liste de textes. Utilisez les valeurs à virgule, comme 18,24. Vide signifie tous les âges ; ce ne sont pas les spectateurs mesurés.

Valeurs JSON proposées
all 13,17 18,24 25,34 35,44 45,54 55,100
adReach
Liste

Conservez certaines plages de portée publique : 0-10K, 10K-100K ou 100K+. Vide les inclut toutes. Ce ne sont pas des impressions ou conversions exactes.

Valeurs JSON proposées
all 0-10K 10K-100K 100K+
Limites, détails et proxys5
proxyConfiguration
ObjetPar défaut : {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}Exemple prérempli : {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}

Les proxys résidentiels sont nécessaires. Les sorties datacenter peuvent échouer à l’initialisation sans message clair. Gardez RESIDENTIAL avant de modifier les filtres pour diagnostiquer.

maxAds
EntierExemple prérempli : 500

Plafond d’annonces uniques pour tout le run, toutes cibles et tous marchés compris. Commencez à 50. Sans ce plafond, une recherche large peut produire beaucoup plus de données.

maxPages
Entier

Limite les pages par pays et recherche. Une page contient au maximum 12 annonces, même si d’anciennes descriptions évoquent davantage. Effacez pour poursuivre jusqu’au plafond de résultats.

pageSize
EntierPar défaut : 12

De 1 à 12 annonces par requête. Au-delà, la valeur devient 12. maxPages augmente la profondeur ; pageSize au-delà de 12 ne change rien.

delayMs
EntierPar défaut : 500

Pause entre requêtes de pages, en millisecondes. Augmentez-la en cas de limitation ; la réduire ne supprime ni la latence ni les limites de la source.

Réglages avancés et reprise4
raw
Vrai ou fauxPar défaut : false

Renvoie les données originales TikTok, sans conversion des dates ni décodage des liens médias. Gardez false pour un dataset utilisable dans un tableur.

proxyRotations
EntierPar défaut : 3

Réessaie les requêtes refusées avec une nouvelle session proxy. Davantage d’essais peut surmonter des blocages temporaires, mais ajoute du temps et du trafic. Gardez le réglage par défaut sauf indication du journal.

resume
Vrai ou fauxPar défaut : true

Sauvegarde la progression environ toutes les 30 secondes pour reprendre après un redémarrage ou une migration Apify. Laissez-le activé.

continueFromLastRun
Vrai ou fauxPar défaut : false

Poursuit le travail inachevé du run précédent avec la même entrée. Les résultats précédents restent dans son dataset. Gardez false pour une collecte nouvelle ou régulière.

Cette référence reprend les paramètres de l’Actor. Vérifiez le formulaire actuel avant de modifier un flux de production. Voir le formulaire actuel sur Apify.

Des configurations à copier.

Chaque exemple est une exécution distincte. Commencez petit, vérifiez les résultats, puis élargissez. Adaptez les cibles, pays et dates à votre recherche.

Suivre les annonces actives d’un annonceur

Collectez jusqu’à 50 annonces actives diffusées au Royaume-Uni. Vérifiez les noms juridiques avant de planifier et conservez le même pays et les mêmes filtres pour chaque relevé hebdomadaire.

Suivre les annonces actives d’un annonceur
{
  "searchTerms": ["Nike"],
  "regions": ["GB"],
  "adStatus": "active",
  "maxAds": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}

Explorer un segment créatif précis

Cherchez des vidéos skincare en France ciblant les 25 à 34 ans avec une portée de 100K+. L’échantillon peut être petit ou vide. Retirez les filtres de portée et d’âge un à un pour élargir la recherche.

Explorer un segment créatif précis
{
  "keywords": ["skincare"],
  "regions": ["FR"],
  "adType": "video",
  "ages": ["25,34"],
  "adReach": ["100K+"],
  "sortBy": "last_shown_date,desc",
  "maxAds": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}

Comparer la diffusion dans deux pays

Recherchez en Allemagne et en France avec une période de dernière diffusion. La même annonce peut apparaître dans les deux recherches et n’est conservée qu’une fois. Ne sommez pas les comptes par pays comme des inventaires distincts.

Comparer la diffusion dans deux pays
{
  "searchTerms": ["Nike"],
  "regions": ["DE", "FR"],
  "minDate": "2026-09-01",
  "maxDate": "2026-09-30",
  "maxAds": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}

Exécutez, vérifiez, exportez, recommencez.

Conservez identifiant, nom juridique, URL, médias et dates de première et dernière diffusion. La portée peut être une tranche, et dépenses ou impressions peuvent manquer. Ces lignes ne montrent ni conversions ni succès. Sauvegardez rapidement les références média, dont les URL peuvent expirer, et gardez le contexte du pays recherché.

  1. Consultez le dataset et le record SUMMARY. Comparez le total à votre limite, vérifiez les entrées ignorées ou échouées et contrôlez quelques liens sources.
  2. Conservez les identifiants et ajoutez collected_at et run_id à l’enregistrement. Utilisez CSV pour les colonnes simples et JSON pour les listes ou détails imbriqués.
  3. Enregistrez la configuration testée comme Apify Task et programmez-la. Pour des observations régulières, laissez continueFromLastRun à false. Dédupliquez par identifiant en conservant chaque date d’observation.
  4. Dans Make ou n8n, attendez la fin du run, récupérez son dataset et mappez les champs vers Sheets ou votre entrepôt. Alimentez Looker Studio avec une table de reporting et utilisez dbt pour transformer et tester les modèles.
  5. Le même JSON fonctionne avec l’API Actors d’Apify. Dans Claude avec Apify MCP, nommez cet Actor, demandez la lecture du schéma et précisez cibles, marchés et limites avant l’exécution.

Reprendre ne crée pas une nouvelle observation

resume protège le run actuel si Apify le redémarre. continueFromLastRun poursuit un ancien run avec la même configuration ; ses données restent dans son dataset. Réunissez les deux datasets et augmentez une limite déjà atteinte. Relancez de zéro pour observer les changements d’aujourd’hui.

Suivre les guides Sheets, Claude, Looker et BigQuery
Lancer cet Actor par l’API

Enregistrez une configuration ci-dessus dans input.json. Définissez APIFY_TOKEN avec votre jeton Apify dans le terminal, puis envoyez le fichier comme corps de requête.

Démarrer la collecte
curl --fail-with-body --request POST \
  --url "https://api.apify.com/v2/actors/jmlp~tiktok-ad-library-scraper/runs" \
  --header "Authorization: Bearer $APIFY_TOKEN" \
  --header "Content-Type: application/json" \
  --data-binary @input.json

La réponse contient un identifiant de collecte et defaultDatasetId, pas les résultats finaux. Attendez la réussite, définissez DATASET_ID avec cet identifiant et récupérez les lignes. Pour les gros jeux, utilisez limit et offset pour paginer.

Récupérer les données
curl --fail-with-body \
  --url "https://api.apify.com/v2/datasets/$DATASET_ID/items?format=json" \
  --header "Authorization: Bearer $APIFY_TOKEN"

Référence API de lancement et d’export d’Apify
Options d’export des données

Si les résultats vous surprennent.

Modifiez un réglage à la fois, gardez une petite limite et consultez le résumé avant d’élargir.

Le pays choisi ne renvoie aucun résultat utile.

Seuls les 32 marchés indiqués sont couverts : UE/EEE, Royaume-Uni et Suisse. Les pays explicites sont recherchés séparément. Une liste regions vide recherche tous les marchés ensemble ; ["all"] recherche chaque pays séparément. Les pays non pris en charge sont ignorés. S’il n’en reste aucun, tous les marchés couverts sont recherchés.

La source renvoie des pages vides ou des erreurs d’accès.

Les proxys résidentiels sont nécessaires. Les sorties datacenter peuvent échouer à l’initialisation sans message clair. Gardez RESIDENTIAL avant de modifier les filtres pour diagnostiquer.

Pourquoi les champs de dépenses ou de performance sont-ils vides ?

Conservez identifiant, nom juridique, URL, médias et dates de première et dernière diffusion. La portée peut être une tranche, et dépenses ou impressions peuvent manquer. Ces lignes ne montrent ni conversions ni succès. Sauvegardez rapidement les références média, dont les URL peuvent expirer, et gardez le contexte du pays recherché.

Le run a réussi, mais reste vide

Un succès indique que l’Actor a terminé, pas que la source a fourni des données. Consultez SUMMARY.inputProblem, SUMMARY.problem et le journal : cible manquante, filtre non pris en charge ou requête refusée. Essayez une cible connue avec moins de filtres.

Moins de lignes que prévu

Vérifiez les limites globales, par recherche et par page, la couverture et les doublons. Plusieurs recherches peuvent trouver la même ligne. Le total annoncé par la source peut inclure des données non accessibles publiquement. Vérifiez les tâches inachevées avant de considérer le dataset complet.

Utilisez les résultats dans vos outils.

Google Sheets

Ajoutez ad_id, advertiser_name, scraped_region, first_shown, last_shown et media_url. Regardez les vidéos avant d’annoter accroches, formats et angles produit.

Lire le guide
Claude + MCP

Demandez à Claude d’organiser les métadonnées et citer les sources. Pour la vidéo, fournissez médias ou transcriptions via une méthode compatible. Les métadonnées seules ne montrent pas l’accroche.

Lire le guide
Looker Studio

Comparez l’activité par annonceur et région. Gardez la portée en plage ; n’additionnez pas les observations régionales répétées comme personnes uniques.

Lire le guide
BigQuery + dbt

Gardez les observations brutes et une table créative par ad_id. Séparez les observations régionales et conservez les plages de portée d’origine.

Lire le guide
Copier une consigne pour Claude
Consigne pour Claude + Apify MCP
Vérifie jmlp/tiktok-ad-library-scraper et collecte jusqu’à 50 résultats Nike en FR. Sépare annonceurs et créateurs, résume dates et plages de portée, cite ad_library_url. Signale dépenses et impressions absentes. Ne décris pas les vidéos non examinées.

Les champs disponibles.

Conservez la date de collecte et les identifiants d’origine pour vérifier la provenance d’un résultat ou le comparer à une exécution ultérieure.

Avant de tirer des conclusions

Ce scraper couvre 32 marchés de l’UE/EEE, du Royaume-Uni et de Suisse. Dépenses et impressions peuvent manquer ; estimated_audience contient les tranches de portée disponibles. Ces tranches et dates n’indiquent ni conversions ni ROAS. Les liens média peuvent expirer.

ad_id / advertiser_business_id
Identifiants stables pour résultats et suivi des annonceurs.
advertiser_name
Compte déclaré ; un créateur peut apparaître pour du contenu de marque.
first_shown / last_shown
Dates de diffusion déclarées dans le pays choisi.
media_url / cover_url
Liens médias et images d’aperçu disponibles.
estimated_audience
Plage de portée publique de la bibliothèque.
scraped_region / ad_library_url
Contexte de collecte et référence source.

Questions fréquentes.

Puis-je collecter les annonces TikTok aux États-Unis ?

Cet Actor couvre les marchés de la bibliothèque commerciale dans l’UE/EEE, au Royaume-Uni et en Suisse. Il ne fournit pas de couverture des États-Unis ou mondiale.

Claude peut-il comprendre automatiquement les vidéos ?

L’extracteur fournit liens et métadonnées. L’analyse vidéo nécessite le média ou une transcription et une méthode compatible.

Source et informations actuelles : Actor TikTok Ad Library de JMLP sur Apify.

D’autres extracteurs
qui pourraient vous être utiles.

Parlons de
votre projet.

Dites-moi ce que vous devez collecter ou comprendre. Je peux vous aider avec un extracteur sur mesure, un pipeline ou l’analyse.

Parlons de votre projet