Transferts Google Ads

Le service de transfert de données BigQuery pour Google Ads (anciennement connu sous le nom de Google AdWords) vous permet de programmer et de gérer automatiquement les tâches de chargement récurrentes pour les données de rapports Google Ads.

Rapports acceptés

Le service de transfert de données BigQuery pour Google Ads est compatible avec l'API Google Ads version 14 :

Pour en savoir plus sur la transformation des rapports Google Ads en tables et vues du service de transfert de données BigQuery, consultez la section Transformation des rapports Google Ads.

Pour mapper les rapports Google Ads sur le contenu de l'UI de Google Ads, consultez la page Mapper les rapports sur l'UI de Google Ads.

Option de création de rapports Compatibilité
Version d'API compatible

v14

Planification

Tous les jours, à l'heure où le transfert a été créé (par défaut)

Vous pouvez configurer l'heure de la journée.

Fenêtre d'actualisation

7 derniers jours (par défaut)

Configurable jusqu'à 30 jours

Les instantanés des tableaux de correspondance sont réalisés une fois par jour, puis stockés dans la partition pour la dernière date d'exécution. Ils ne sont pas mis à jour pour les remplissages ni pour les jours chargés via l'intervalle d'actualisation.

Durée maximale du remplissage

No limit

Même si aucune restriction connue n'est appliquée à la conservation des données dans Google Ads, excepté pour le rapport sur les performances des clics, le service de transfert de données BigQuery limite le nombre de jours couverts par chaque requête de remplissage. Pour en savoir plus sur les remplissages, consultez la page Configurer un remplissage.

Nombre de numéros client par compte administrateur

8 000

Le service de transfert de données BigQuery accepte jusqu'à 8 000 numéros client pour chaque compte administrateur Google Ads (CM).

Ingestion de données à partir de transferts Google Ads

Lorsque vous transférez des données de Google 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.

Limites

  • La fréquence maximale pour laquelle vous pouvez configurer un transfert Google Ads est d'une fois toutes les 24 heures. Par défaut, un transfert commence au moment où vous créez le transfert. Toutefois, vous pouvez configurer l'heure de début du transfert lorsque vous créez votre transfert.
  • Le service de transfert de données de BigQuery n'est pas compatible avec les transferts incrémentiels lors d'un transfert Google Ads. Lorsque vous spécifiez une date pour un transfert de données, toutes les données disponibles pour cette date sont transférées.

Avant de commencer

Avant de créer un transfert Google Ads, procédez comme suit :

Autorisations requises

Assurez-vous que la personne qui crée le transfert dispose des autorisations requises suivantes :

  • Service de transfert de données BigQuery :

    • Autorisations bigquery.transfers.update pour créer le transfert
    • Autorisations bigquery.datasets.get et bigquery.datasets.update sur l'ensemble de données cible

    Le rôle IAM prédéfini bigquery.admin inclut les autorisations bigquery.transfers.update, bigquery.datasets.update et bigquery.datasets.get. Pour en savoir plus sur les rôles IAM associés au service de transfert de données BigQuery, consultez la documentation de référence sur le contrôle des accès.

  • Google Ads : accès en lecture au numéro client Google Ads ou au compte administrateur (CM) utilisé dans la configuration de transfert.

Créer un transfert de données Google Ads

Pour créer un transfert de données pour les rapports Google Ads, vous devez disposer de votre numéro client Google Ads ou de votre compte administrateur (CM). Pour en savoir plus sur la récupération de votre numéro client Google Ads, consultez la page Localiser votre numéro client.

Pour créer un transfert de données pour les rapports Google Ads, sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page "BigQuery" de la console Google Cloud.

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts de données.

  3. Cliquez sur Créer un transfert.

  4. Dans la section Source type (Type de source), choisissez Cloud Storage comme Source.

  5. Dans la section Transfer config name (Nom de la configuration de transfert), sous Display name (Nom à afficher), saisissez un nom pour le transfert, tel que My Transfer. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert si vous devez le modifier ultérieurement.

  6. Dans la section Schedule options (Options de programmation) :

    • Pour le champ Fréquence de répétition, choisissez la fréquence d'exécution du transfert : Si vous sélectionnez Jours, indiquez une heure valide au format UTC.

      • Heures
      • Jours
      • À la demande
    • 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.

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

  8. Dans la section Data source details (Détails de la source de données) :

    1. Dans le champ Numéro client, saisissez votre numéro client Google Ads :

      Informations sur la source Google Ads

    2. Facultatif : sélectionnez des options pour exclure les éléments supprimés ou désactivés et inclure des tables nouvelles à Google Ads.

    3. Facultatif : saisissez une liste de tables séparées par une virgule, par exemple Campaign, AdGroup. Ajoutez le préfixe - à cette liste pour exclure certaines tables, par exemple -Campaign, AdGroup. Toutes les tables sont incluses par défaut.

    4. Facultatif : Sélectionnez l'option permettant d'inclure des tableaux spécifiques aux rapports PMax. Pour en savoir plus sur la compatibilité avec PMax, consultez la page Compatibilité avec PMax.

    5. Facultatif : pour Intervalle d'actualisation, saisissez une valeur comprise entre 1 et 30.

  9. Dans le menu Compte de service, sélectionnez un compte de service parmi ceux associés à votre projet Google Cloud. Vous pouvez associer un compte de service à votre transfert au lieu d'utiliser vos identifiants utilisateur. 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.

    • 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.
    • Le compte de service doit disposer des autorisations requises.
  10. Facultatif : dans la section Notification options (Options de notification) :

    • Cliquez sur le bouton pour activer les notifications 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.

    • Cliquez sur le bouton pour activer les notifications Pub/Sub. Pour le champ Select a Cloud Pub/Sub topic (Sélectionner un sujet Cloud Pub/Sub), choisissez le nom de votre sujet ou cliquez sur Create a topic (Créer un sujet). Cette option configure les notifications d'exécution Pub/Sub pour votre transfert.

      Notifications Google Ads

  11. Cliquez sur Enregistrer.

bq

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config. Les paramètres suivants sont également requis :

  • --data_source
  • --target_dataset
  • --display_name
  • --params

Les options suivantes sont facultatives :

  • --project_id : spécifie le projet à utiliser. Si l'option n'est pas spécifiée, le projet par défaut est utilisé.
  • --table_filter : spécifie les tables à inclure dans le transfert. Si l'option n'est pas spécifiée, toutes les tables sont incluses. Pour n'inclure que des tables spécifiques, utilisez une liste de valeurs séparées par des virgules (par exemple, Ad, Campaign, AdGroup). Pour exclure des tables spécifiques, ajoutez un tiret comme préfixe aux valeurs (-) (par exemple, -Ad, Campaign, AdGroup).
  • --service_account_name : spécifie un compte de service à utiliser pour l'authentification du transfert Google Ads, au lieu de votre compte utilisateur.
bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source \
--table_filter=tables
--service_account_name=service_account_name

Où :

  • project_id est l'ID de votre projet.
  • dataset est l'ensemble de données cible de la configuration de transfert.
  • name est le nom à afficher pour la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert si vous devez le modifier ultérieurement.
  • parameters contient les paramètres de la configuration de transfert créée au format JSON. Exemple : --params='{"param":"param_value"}'. Pour Google Ads, vous devez fournir le paramètre customer_id. Vous pouvez éventuellement définir le paramètre exclude_removed_items sur true pour empêcher le transfert d'entités et de métriques supprimées ou désactivées.
  • data_source correspond à la source de données : google_ads.
  • tables est la liste de tables séparées par une virgule à inclure ou à exclure du transfert.
  • service_account_name est le nom du compte de service utilisé pour authentifier le transfert. Le compte de service doit appartenir au même project_id que celui utilisé pour créer le transfert et doit disposer de toutes les autorisations requises.

Par exemple, la commande suivante crée un transfert Google Ads nommé My Transfer utilisant l'ID client 123-123-1234 et l'ensemble de données cible mydataset. Le transfert est créé dans le projet par défaut :

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"customer_id":"123-123-1234","exclude_removed_items":"true"}' \
--data_source=google_ads

La première fois que vous exécutez la commande, vous recevez un message de ce type :

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

Suivez les instructions du message et collez le code d'authentification sur la ligne de commande.

API

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

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create ads(formerly AdWords) transfer config
public class CreateAdsTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    // the customer_id only allows digits and hyphen ('-').
    String customerId = "012-345-6789";
    String refreshWindow = "100";
    Map<String, Value> params = new HashMap<>();
    params.put("customer_id", Value.newBuilder().setStringValue(customerId).build());
    params.put("refreshWindow", Value.newBuilder().setStringValue(refreshWindow).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Ads Transfer Config Name")
            .setDataSourceId("adwords")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .build();
    createAdsTransfer(projectId, transferConfig);
  }

  public static void createAdsTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("Ads transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Ads transfer was not created." + ex.toString());
    }
  }
}

Déclencher manuellement un transfert Google Ads

Lorsque vous déclenchez manuellement un transfert pour Google Ads, des instantanés des tables de correspondance sont réalisés une fois par jour, puis stockés dans la partition de la dernière date d'exécution. Lorsque vous déclenchez un transfert manuel, les instantanés des tables de correspondances des tables suivantes ne sont pas mis à jour :

  • Ad
  • AdGroup
  • AdGroupAudience
  • AdGroupBidModifier
  • AdGroupAdLabel
  • AdGroupCriterion
  • AdGroupCriterionLabel
  • AdGroupLabel
  • Âge
  • Asset
  • AssetGroup
  • AssetGroupAsset
  • AssetGroupListingGroupFilter
  • AssetGroupSignal
  • Audience
  • Objectif d'enchères
  • Budget
  • Campaign
  • CampaignAudience
  • CampaignCriterion
  • CampaignLabel
  • Client
  • Genre
  • Mot clé
  • Critère de la campagne basée sur la zone
  • État du parent
  • Emplacement
  • Vidéo

Compatibilité PMax

Le connecteur Google Ads vous permet d'exporter les données des campagnes PMax. Vous devez cocher la case Inclure les tables des campagnes PMax lors de la création d'un transfert de données, car les données PMax ne sont pas exportées par défaut.

L'inclusion des données PMax supprime les champs ad_group de certaines tables et inclut de nouvelles tables. Vous ne pouvez pas inclure de champs ad_group, car l'API Google Ads filtre les données PMax.

Les tableaux suivants excluent les colonnes associées à ad_group lorsque la case Inclure les tables des campagnes PMax est cochée :

  • GeoStats
  • GeoConversionStats
  • ShoppingProductConversionStats
  • ShoppingProductStats
  • LocationsUserLocationsStats

Les tableaux suivants sont ajoutés lorsque la case Inclure les tables des campagnes PMax est cochée :

  • Asset
  • AssetGroup
  • AssetGroupAsset
  • AssetGroupListingGroupFilter
  • AssetGroupSignal
  • Audience
  • AssetGroupProductGroupStats
  • CampaignAssetStats

Compatibilité des comptes administrateur Google Ads

Les clients existants qui disposent de plusieurs transferts Google Ads propres à un numéro client sont invités à configurer un transfert Google Ads unique au niveau du compte administrateur (CM), à programmer un remplissage et à désactiver les transferts Google Ads individuels qui sont propres au numéro client.

L'utilisation des comptes administrateur Google Ads présente plusieurs avantages par rapport à l'utilisation de numéros client individuels :

  • Vous n'avez plus besoin de gérer de multiples transferts pour générer des rapports relatifs à différents numéros client.
  • Les requêtes multiclients sont beaucoup plus simples à écrire, car tous les numéros client sont stockés dans la même table.
  • L'utilisation d'un multicompte atténue les problèmes potentiels de quota de chargement du service de transfert de données BigQuery, car plusieurs numéros client sont chargés dans la même tâche.

Pour en savoir plus sur les comptes administrateur Google Ads (CM), consultez les pages Utiliser les comptes gérés et Associer des comptes à votre compte administrateur.

Exemple

La liste suivante répertorie les numéros client associés à certains comptes administrateur Google Ads :

  • 1234567890 : compte administrateur racine
    • 1234 : sous-compte administrateur
      • 1111 : numéro client
      • 2222 : numéro client
      • 3333 : numéro client
      • 4444 : numéro client
      • 567 : sous-compte administrateur
        • 5555 : numéro client
        • 6666 : numéro client
        • 7777 : numéro client
    • 89 : sous-compte administrateur
      • 8888 : numéro client
      • 9999 : numéro client
    • 0000 : numéro client

Chaque numéro client associé à un compte administrateur apparaît dans chacun des rapports. Pour en savoir plus sur la structure des rapports Google Ads dans le service de transfert de données BigQuery, consultez la page Transformer des rapports Google Ads.

Configurer un transfert pour le numéro client 1234567890

Configurer un transfert pour le compte administrateur racine (numéro client 1234567890) générerait des exécutions de transfert comprenant les numéros client suivants :

  • 1111 (via le sous-compte administrateur 1234)
  • 2222 (via le sous-compte administrateur 1234)
  • 3333 (via le sous-compte administrateur 1234)
  • 4444 (via le sous-compte administrateur 1234)
  • 5555 (via les sous-comptes administrateur 567 et 1234)
  • 6666 (via les sous-comptes administrateur 567 et 1234)
  • 7777 (via les sous-comptes administrateur 567 et 1234)
  • 8888 (via le sous-compte administrateur 89)
  • 9999 (via le sous-compte administrateur 89)
  • 0000 (numéro client individuel)

Configurer un transfert pour le numéro client 1234

Configurer un transfert pour le sous-compte administrateur 123 (numéro client 1234) générerait des exécutions de transfert comprenant les numéros client suivants :

  • 1111
  • 2222
  • 3333
  • 4444
  • 5555 (via le sous-compte administrateur 567)
  • 6666 (via le sous-compte administrateur 567)
  • 7777 (via le sous-compte administrateur 567)

Configurer un transfert pour le numéro client 567

Configurer un transfert pour le sous-compte administrateur 567 (numéro client 567) générerait des exécutions de transfert comprenant les numéros client suivants :

  • 5555
  • 6666
  • 7777

Configurer un transfert pour le numéro client 89

Configurer un transfert pour le sous-compte administrateur 89 (numéro client 89) générerait des exécutions de transfert comprenant les numéros client suivants :

  • 8888
  • 9999

Configurer un transfert pour le numéro client 0000

Configurer un transfert pour le numéro client 0000 générerait des exécutions de transfert comprenant les numéros client suivants :

  • 0000

Migrer les données Google Ads vers les CM

Pour migrer vos données Google Ads existantes dans le service de transfert de données BigQuery vers la structure CM, vous pouvez configurer un remplissage afin d'ajouter vos données existantes aux tables créées par la configuration de transfert associée au compte administrateur. Veuillez noter que lorsque vous programmez un remplissage, les tables de correspondance ne sont pas mises à jour.

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

Si vous rencontrez des problèmes lors de la configuration de votre transfert, consultez la section Problèmes de transfert sur Google Ads de la page Dépannage des configurations de transferts.

Interroger les données

Lorsque vos données sont transférées vers le service de transfert de données BigQuery, les données sont écrites dans des tables partitionnées par date d'ingestion. Pour plus d'informations, consultez la page Présentation des tables partitionnées.

Si vous interrogez directement les tables au lieu d'utiliser les vues générées automatiquement, vous devez utiliser la pseudo-colonne _PARTITIONTIME dans votre requête. Pour en savoir plus, consultez la page Interroger des tables partitionnées.

Exemples de requêtes Google Ads

Vous pouvez analyser les données que vous avez transférées à l'aide des exemples de requêtes Google Ads suivants. Vous pouvez également interroger les données dans un outil de visualisation tel que Looker Studio. Ces requêtes sont fournies pour vous guider dans l'interrogation des données Google Ads avec le service de transfert de données BigQuery. Si vous avez d'autres questions sur ce que vous pouvez faire avec ces rapports, contactez votre représentant technique Google Ads.

Dans chacune des requêtes suivantes, remplacez dataset par le nom de votre ensemble de données. Remplacez customer_id par votre numéro client Google Ads.

Si vous interrogez directement les tables au lieu de vous servir des vues générées automatiquement, vous devez utiliser la pseudo-colonne _PARTITIONTIME dans votre requête. Pour en savoir plus, consultez la section Interroger des tables partitionnées.

Performances des campagnes

L'exemple de requête ci-dessous permet d'analyser les performances des campagnes Google Ads au cours des 30 derniers jours.

Console

SELECT
  c.customer_id,
  c.campaign_name,
  c.campaign_status,
  SUM(cs.metrics_impressions) AS Impressions,
  SUM(cs.metrics_interactions) AS Interactions,
  (SUM(cs.metrics_cost_micros) / 1000000) AS Cost
FROM
  `DATASET.ads_Campaign_CUSTOMER_ID` c
LEFT JOIN
  `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs
ON
  (c.campaign_id = cs.campaign_id
  AND cs._DATA_DATE BETWEEN
  DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY))
WHERE
  c._DATA_DATE = c._LATEST_DATE
GROUP BY
  1, 2, 3
ORDER BY
  Impressions DESC

bq

  bq query --use_legacy_sql=false '
  SELECT
    c.customer_id,
    c.campaign_name,
    c.campaign_status,
    SUM(cs.metrics_impressions) AS Impressions,
    SUM(cs.metrics_interactions) AS Interactions,
    (SUM(cs.metrics_cost_micros) / 1000000) AS Cost
  FROM
    `DATASET.ads_Campaign_CUSTOMER_ID` c
  LEFT JOIN
    `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs
  ON
    (c.campaign_id = cs.campaign_id
    AND cs._DATA_DATE BETWEEN
    DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY))
  WHERE
    c._DATA_DATE = c._LATEST_DATE
  GROUP BY
    1, 2, 3
  ORDER BY
    Impressions DESC'

Nombre de mots clés

L'exemple de requête suivant analyse les mots clés par campagne, par groupe d'annonces et par état de mots clé. Cette requête utilise la fonction KeywordMatchType. Grâce aux différents types de correspondance des mots clés, vous pouvez mieux contrôler quelles recherches déclencheront la diffusion de votre annonce. Pour en savoir plus sur les options de ciblage par mots-clés, consultez la page À propos des options de correspondance des mots-clés.

Console

  SELECT
    c.campaign_status AS CampaignStatus,
    a.ad_group_status AS AdGroupStatus,
    k.ad_group_criterion_status AS KeywordStatus,
    k.ad_group_criterion_keyword_match_type AS KeywordMatchType,
    COUNT(*) AS count
  FROM
    `DATASET.ads_Keyword_CUSTOMER_ID` k
    JOIN
    `DATASET.ads_Campaign_CUSTOMER_ID` c
  ON
    (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE)
  JOIN
    `DATASET.ads_AdGroup_CUSTOMER_ID` a
  ON
    (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE)
  WHERE
    k._DATA_DATE = k._LATEST_DATE
  GROUP BY
    1, 2, 3, 4

bq

  bq query --use_legacy_sql=false '
  SELECT
    c.campaign_status AS CampaignStatus,
    a.ad_group_status AS AdGroupStatus,
    k.ad_group_criterion_status AS KeywordStatus,
    k.ad_group_criterion_keyword_match_type AS KeywordMatchType,
    COUNT(*) AS count
  FROM
    `DATASET.ads_Keyword_CUSTOMER_ID` k
  JOIN
    `DATASET.ads_Campaign_CUSTOMER_ID` c
  ON
    (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE)
  JOIN
    `DATASET.ads_AdGroup_CUSTOMER_ID` a
  ON
    (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE)
  WHERE
    k._DATA_DATE = k._LATEST_DATE
  GROUP BY
    1, 2, 3, 4'