Planifier un transfert Facebook Ads

Le service de transfert de données BigQuery pour le connecteur d'annonces Facebook vous permet de planifier et de gérer automatiquement les jobs de chargement récurrents des annonces Facebook dans BigQuery.

Limites

Les transferts d'annonces Facebook sont soumis aux limitations suivantes :

  • L'intervalle minimum entre les transferts récurrents des annonces Facebook est de 24 heures. L'intervalle par défaut entre transferts récurrents est de 24 heures.
  • Le service de transfert de données BigQuery pour Facebook Ads n'accepte qu'un ensemble fixe de tables. Les rapports personnalisés ne sont pas acceptés.
  • La durée maximale des transferts d'annonces Facebook est de six heures. Un transfert échoue si sa durée dépasse cette durée maximale.
  • Les transferts incrémentiels ne sont pas acceptés pour les tables AdInsights et AdInsightsActions. Lorsque vous créez un transfert de données qui inclut des tables AdInsights et AdInsightsActions, et que vous avez spécifié une date dans les options de planification, toutes les données disponibles pour cette date sont transférées.
  • Le service de transfert de données BigQuery permet une fenêtre d'actualisation d'un jour pour les tables AdInsights et AdInsightsActions. La fenêtre d'actualisation fait référence au nombre de jours pendant lesquels un transfert de données récupérera les données sources. Lorsque vous exécutez un transfert de données pour la première fois, celui-ci récupère toutes les données sources disponibles pendant l'intervalle d'actualisation.
  • Le jeton d'accès utilisateur de longue durée requis pour les transferts Facebook Ads expire au bout de 60 jours.

    Si votre jeton d'accès de longue durée a expiré, vous pouvez obtenir le nouveau en accédant aux détails du transfert et en cliquant sur Modifier. Sur la page de modification du transfert, suivez la même procédure que dans la section Conditions préalables à l'utilisation des annonces Facebook pour générer un nouveau jeton d'accès de longue durée.

Ingestion de données à partir de transferts Facebook Ads

Lorsque vous transférez des données de Facebook Ads vers BigQuery, elles sont chargées dans des tables BigQuery partitionnées par date. La partition de la table dans laquelle les données sont chargées correspond à la date de la source de données. Si vous planifiez plusieurs transferts pour la même date, le service de transfert de données BigQuery remplace la partition de cette date spécifique par les données les plus récentes. Plusieurs transferts le même jour ou l'exécution de remplissages n'entraînent pas de données en double, et les partitions des autres dates ne sont pas affectées.

Pour les tables AdInsights et AdInsightsAction, la partition de la table dans laquelle les données sont chargées correspond à la date de la source de données.

Pour les tables AdAccounts, les instantanés sont réalisés une fois par jour et stockés dans la partition de la dernière date d'exécution du transfert. La fenêtre d'actualisation ne s'applique pas à la table AdAccounts.

Avant de commencer

Les sections suivantes décrivent la procédure à suivre avant de créer un transfert Facebook Ads.

Conditions préalables à l'utilisation des annonces Facebook

Vérifiez que vous disposez des informations Facebook Ads suivantes lorsque vous créez un transfert d'annonces Facebook.

Paramètres de Facebook Ads Description
clientID Nom d'ID d'application pour le client OAuth 2.0.
clientSecret Code secret de l'application pour le client OAuth 2.0.
refreshToken Jeton d'accès utilisateur de longue durée, également appelé jeton d'actualisation.

Pour obtenir un clientID et un clientSecret, procédez comme suit :

  1. Créez une application de développeur Facebook avec le type d'application Business.
  2. Dans le tableau de bord des applications Facebook, cliquez sur Paramètres de l'application > Basic, puis recherchez l'ID de l'application. et le code secret de l'application correspondant à l'application.

Pour obtenir un jeton d'accès utilisateur de longue durée, également appelé jeton d'actualisation, procédez comme suit :

  1. Dans la console Google Cloud, suivez les étapes permettant de créer un transfert Facebook Ads.

  2. Dans la section Détails de la source de données, copiez l'URI de redirection répertorié après le champ Jeton d'actualisation.

    Copier l'URI de redirection

  3. Cliquez sur le tableau de bord des applications Facebook, puis sur Configurer dans la section Facebook Login for Business.

    Configurer les paramètres de Facebook Login for Business

  4. Sur la page Paramètres, saisissez l'URL de redirection dans le champ URI de redirection OAuth valides, puis cliquez sur Enregistrer.

  5. Revenez à la console Google Cloud. Dans la section Détails de la source de données, cliquez sur Autoriser. Vous allez être redirigé vers une page d'authentification Facebook.

    Générer un jeton d'accès utilisateur de longue durée

  6. Sélectionnez l'application de développeur Facebook pour autoriser le compte qui se connecte au service de transfert de données BigQuery.

  7. Une fois l'opération terminée, cliquez sur OK pour revenir à la console Google Cloud. Le jeton d'accès de longue durée est désormais renseigné dans la configuration de transfert.

Vous pouvez également générer un jeton d'accès utilisateur de longue durée à l'aide de l'API Graph. Les autorisations ads_management, ads_read et business_management sont requises pour un jeton valide pour le transfert.

Les jetons d'accès utilisateur de longue durée expirent au bout de 60 jours.

Prérequis pour BigQuery

Rôles BigQuery requis

Pour obtenir les autorisations nécessaires pour créer un transfert, demandez à votre administrateur de vous accorder le rôle IAM Administrateur BigQuery (roles/bigquery.admin). Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient les autorisations requises pour créer un transfert. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer un transfert :

  • bigquery.transfers.update sur l'utilisateur
  • bigquery.datasets.get sur l'ensemble de données cible
  • bigquery.datasets.update sur l'ensemble de données cible

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un transfert de données Facebook Ads

Sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud, accédez à la page BigQuery Studio.

    Accéder à BigQuery Studio

  2. Cliquez sur Transferts de données > Créer un transfert.

  3. Dans le champ Source de la section Type de source, sélectionnez Facebook Ads.

  4. Dans la section Nom de la configuration de transfert, sous Nom à afficher, saisissez le nom du transfert.

  5. Dans la section Options de programmation, procédez comme suit :

    • Dans la liste Fréquence de répétition, sélectionnez une option pour spécifier la fréquence d'exécution de ce transfert. Pour spécifier une fréquence de répétition personnalisée, sélectionnez Personnalisée. Si vous sélectionnez À la demande, ce transfert s'exécute lorsque vous déclenchez manuellement le transfert.

    • Le cas échéant, sélectionnez Commencer ou Commencer à l'heure définie, puis indiquez une date de début et une heure d'exécution.

  6. Dans la section Paramètres de destination, pour le champ Ensemble de données de destination, choisissez l'ensemble de données que vous avez créé pour stocker vos données.

  7. Dans la section Data source details (Détails de la source de données), procédez comme suit :

    • Dans le champ ID client, saisissez l'ID d'application.
    • Sous Code secret du client, saisissez le code secret de l'application.
    • Pour Jeton d'actualisation, saisissez l'ID du jeton d'accès utilisateur de longue durée en cliquant sur Autoriser.

    Pour en savoir plus sur la récupération de ces valeurs, consultez la section Prérequis pour les annonces Facebook.

  8. Facultatif : Dans le menu Compte de service, sélectionnez un compte de service parmi ceux associés à votre projet Google Cloud. Le compte de service sélectionné doit disposer des rôles requis pour exécuter ce transfert.

    Si vous vous êtes connecté avec une identité fédérée, vous devez disposer d'un compte de service pour créer un transfert. Si vous vous êtes connecté avec un compte Google, un compte de service pour le transfert est facultatif.

    Pour en savoir plus sur l'utilisation des comptes de service avec des transferts de données, consultez la page Utiliser des comptes de service.

  9. Facultatif : dans la section Options de notification, procédez comme suit :

    • Pour activer les notifications par e-mail, cliquez sur le bouton Notification par e-mail. Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
    • Pour activer les notifications d'exécution de transfert Pub/Sub pour ce transfert, cliquez sur le bouton Notifications Pub/Sub. Vous pouvez sélectionner le nom de votre sujet ou cliquer sur Créer un sujet pour en créer un.
  10. Cliquez sur Enregistrer.

Lorsque ce transfert s'exécute, le service de transfert de données BigQuery renseigne automatiquement les tables suivantes.

Nom de la table Description
AdAccounts Comptes publicitaires disponibles pour un utilisateur.
AdInsights Rapport des insights sur les annonces pour tous les comptes publicitaires.
AdInsightsActions Rapport sur les actions des insights sur les annonces pour tous les comptes publicitaires.

bq

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config.

bq mk \
    --transfer_config \
    --project_id=PROJECT_ID \
    --data_source=DATA_SOURCE \
    --display_name=DISPLAY_NAME \
    --target_dataset=DATASET \
    --params='PARAMETERS'

Où :

  • PROJECT_ID (Facultatif) ID de votre projet Google Cloud. Si vous ne fournissez pas de --project_id afin de spécifier un projet particulier, le projet par défaut est utilisé.
  • DATA_SOURCE : source de données (par exemple, facebook-ads).
  • DISPLAY_NAME : nom à afficher de la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert si vous devez le modifier ultérieurement.
  • DATASET : ensemble de données cible de la configuration de transfert.
  • PARAMETERS correspond aux paramètres de la configuration de transfert créée, au format JSON. Exemple : --params='{"param":"param_value"}'. Voici les paramètres d'un transfert Facebook Ads :
    • connector.authentication.oauth.clientId : nom d'ID de l'application pour le client OAuth 2.0.
    • connector.authentication.oauth.clientSecret : code secret de l'application pour le client OAuth 2.0.
    • connector.authentication.oauth.refreshToken : ID du jeton de longue durée.

Par exemple, la commande suivante crée un transfert Facebook Ads dans le projet par défaut avec tous les paramètres requis :

    bq mk 
--transfer_config
--target_dataset=mydataset
--data_source=facebook_ads
--display_name='My Transfer'
--params='{"connector.authentication.oauth.clientId": "1650000000", "connector.authentication.oauth.clientSecret":"TBA99550", "connector.authentication.oauth.refreshToken":"abcdef"}'

API

Utilisez la méthode projects.locations.transferConfigs.create et fournissez une instance de la ressource TransferConfig.

Résoudre les problèmes liés à la configuration d'un transfert

Si vous rencontrez des problèmes lors de la configuration d'un transfert d'annonces Facebook, essayez les étapes de dépannage suivantes :

  • Vérifiez que le jeton d'accès de longue durée n'a pas expiré. Les jetons d'accès utilisateur de longue durée expirent au bout de 60 jours. Si votre jeton d'accès de longue durée a expiré, accédez aux détails de votre transfert, puis cliquez sur Modifier pour modifier la configuration de votre transfert. Sur la page de modification du transfert, suivez la même procédure que dans la section Conditions préalables à l'utilisation des annonces Facebook pour en générer un nouveau.
  • Vérifiez que le jeton d'accès de longue durée est généré avec les autorisations requises : ads_management, ads_read et business_management. Si ce n'est pas le cas, suivez les étapes de la section Conditions préalables à l'utilisation des annonces Facebook pour générer un nouveau jeton d'accès de longue durée.
  • Consultez l'onglet Actions requises du tableau de bord de l'application Facebook pour rechercher tous les éléments nécessitant attention.

Vous pouvez rencontrer les messages d'erreur suivants liés aux erreurs de limite de débit de l'API Meta :

Erreur : Please reduce the amount of data you're asking for, then retry your request.
Erreur : There have been too many calls from this ad-account. Wait a bit and try again.
Solution : vérifiez qu'il n'existe pas de workflows parallèles utilisant les mêmes applications ou identifiants. Si ces erreurs persistent, essayez d'améliorer le niveau de votre application pour réduire la limitation du débit.

Messages courants concernant les métriques de surveillance

Vous pouvez également consulter les métriques de surveillance du service de transfert de données BigQuery pour déterminer la cause d'un échec de transfert. Le tableau suivant regroupe certaines messages ERROR_CODE courants pour les transferts d'annonces Facebook.

Erreur Description
INVALID_ARGUMENT La configuration fournie n'est pas valide
PERMISSION_DENIED Les identifiants ne sont pas valides
UNAUTHENTICATED Une authentification est obligatoire
SERVICE_UNAVAILABLE Le service ne peut pas gérer ce transfert pour le moment
DEADLINE_EXCEEDED Le transfert ne s'est pas terminé dans le délai maximal de six heures
NOT_FOUND Une ressource demandée est introuvable
INTERNAL Un autre problème a entraîné l'échec du connecteur
RESOURCE_EXHAUSTED Un quota ou une limite de source de données a été atteint

Tarification

Le transfert des données Facebook Ads vers BigQuery est gratuit tant que cette fonctionnalité est en version bêta.

Étapes suivantes