La segmentation est disponible dans l'interface utilisateur Google Ads dans un menu distinct. Vous pouvez implémenter la segmentation dans l'API Google Ads en ajoutant le champ approprié à une requête. Par exemple, supposons que vous ajoutiez segments.device à une requête. Le rapport obtenu comporte une ligne pour chaque combinaison d'appareil
et de ressource spécifiée dans la clause FROM, et
les valeurs statistiques (impressions, clics, conversions, etc.) sont réparties entre
elles.
Dans l'interface utilisateur Google Ads, vous ne pouvez utiliser qu'un seul segment à la fois, mais avec l'API, vous pouvez en spécifier plusieurs dans la même requête.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
L'envoi de cette requête à GoogleAdsService.SearchStream génère une chaîne JSON semblable à celle-ci :
{
"results":[
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"10922"
},
"segments":{
"device":"MOBILE"
}
},
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"28297"
},
"segments":{
"device":"DESKTOP"
}
},
...
]
}
Dans cet exemple de résultat, les attributs des premier et deuxième objets, y compris le nom de la ressource, sont identiques. Les impressions sont segmentées par appareil . Par conséquent, deux objets ou plus peuvent être renvoyés pour la même campagne.
Segmentation implicite
Chaque rapport est initialement segmenté par la ressource spécifiée dans la clause FROM. Le champ resource_name de la ressource dans la clause FROM est renvoyé et les métriques sont segmentées par celui-ci, même lorsque le champ resource_name n'est pas explicitement inclus dans la requête. Par exemple, lorsque vous spécifiez
ad_group comme ressource dans la clause FROM, alors
ad_group.resource_name sera
automatiquement renvoyé et les métriques seront implicitement segmentées par celui-ci au niveau du
groupe d'annonces.
Ainsi, pour cette requête,
SELECT metrics.impressions
FROM ad_group
vous obtenez une chaîne JSON comme celle-ci :
{
"results":[
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/2222222222"
},
"metrics":{
"impressions":"237"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/33333333333"
},
"metrics":{
"impressions":"15"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/44444444444"
},
"metrics":{
"impressions":"0"
}
}
]
}
Le champ resource_name de adGroup est toujours renvoyé, car ad_group est spécifié comme ressource dans la clause FROM.
Champs de segment pouvant être sélectionnés
Les champs de segment ne peuvent pas tous être sélectionnés pour une ressource donnée dans la clause FROM.
Par exemple, supposons que vous continuiez à interroger la ressource ad_group. Pour qu'un champ de segment puisse être sélectionné à partir de la ressource ad_group, il doit figurer dans la liste Segments pour ad_group. La liste Segments correspond à la partie jaune du tableau des champs disponibles sur la page des métadonnées de la ressource ad_group.
Ressources de segment
Lorsque vous effectuez une sélection à partir de certaines ressources, vous pouvez avoir la possibilité de joindre implicitement des ressources associées en sélectionnant leurs champs à côté des champs de la ressource dans la clause FROM. Ces ressources associées se trouvent dans la liste Attributed Resources sur la page des métadonnées de la ressource dans la clause FROM. Dans le cas de la ressource ad_group, vous verrez
que vous pouvez également sélectionner des champs à partir de la ressource campaign. Le champ resource_name de toutes les Attributed Resources comportant au moins un champ dans la clause SELECT est automatiquement renvoyé, même lorsque le champ resource_name n'est pas explicitement inclus dans la requête.
Comme pour la sélection des champs Attributed Resource, vous pouvez également sélectionner des champs Segmenting Resource. Si une ressource donnée comporte une Segmenting Resources
liste sur sa page de métadonnées, la sélection de champs à partir de l'une de ces ressources
entraîne une segmentation supplémentaire de la requête par le
resource_name renvoyé de cette Segmenting Resource. Par exemple, vous constaterez que
la ressource campaign est répertoriée en tant que Segmenting
Resource pour la ressource campaign_budget.
La sélection d'un champ de campagne, tel que
campaign.name, à partir de la campaign_budget
ressource entraîne non seulement le renvoi du champ campaign.name, mais également celui du champ
the campaign.resource_name field
et sa segmentation.
Possibilité de sélection entre les segments et les métriques
Un champ de segment donné peut ne pas être compatible avec certains autres champs de segment ou avec certains champs de métrique. Pour identifier les champs de segment compatibles entre eux, consultez la liste selectable_with des segments dans la clause SELECT.
Dans le cas de la ressource ad_group, vous pouvez sélectionner plus de 50
segments disponibles. Toutefois, la selectable_with liste pour
segments.hotel_check_in_date
est un ensemble beaucoup plus petit de segments compatibles. Cela signifie que si vous ajoutez le champ segments.hotel_check_in_date à la clause SELECT, vous limiterez les segments disponibles que vous pourrez sélectionner à l'intersection de ces deux listes.
Contraintes de segment conjointes
Certains champs de segment sont soumis à des contraintes de sélection explicites qui nécessitent qu'ils soient demandés avec d'autres champs. Par exemple, segments.ad_sub_format_type (qui répartit les annonces InStream non désactivables YouTube par durée) doit toujours être sélectionné dans la même requête que segments.ad_format_type.
Filtrage implicite par sélection de segment
Lorsque vous sélectionnez certains champs de segment dans votre requête, l'API Google Ads peut filtrer implicitement les résultats pour n'inclure que les lignes où ce segment est applicable et comporte une valeur.
Impact de segments.keyword.*
Un exemple courant et important de ce comportement se produit lorsque vous sélectionnez un champ
sous segments.keyword (tel que segments.keyword.info.text et
segments.keyword.ad_group_criterion).
- Exclusion du trafic non lié aux mots clés : si vous incluez un champ
segments.keyword.*dans votre clauseSELECT, les résultats sont limités aux lignes directement associées à un critère de groupe d'annonces de mot clé du Réseau de Recherche. Types de campagnes concernés : par conséquent, les données des types de campagnes ou des groupes d'annonces qui ne dépendent pas des mots clés du Réseau de Recherche sont exclues des résultats. Cela inclut, sans s'y limiter :
- Annonces dynamiques du Réseau de Recherche : car les cibles des annonces dynamiques du Réseau de Recherche sont basées sur le contenu du site Web plutôt que sur des mots clés.
- Campagnes Shopping : qui utilisent des groupes de produits au lieu de mots clés.
- Campagnes Performance Max : bien que Performance Max puisse diffuser des annonces sur le Réseau de Recherche, ses rapports ne sont généralement pas segmentés par les mêmes critères de mots clés.
Réseau Display : les champs
segments.keyword.*concernent les mots clés utilisés sur le Réseau de Recherche. Ils ne segmentent pas par mots clés du Réseau Display ni par d'autres méthodes de ciblage display.
Bonne pratique : Si votre analyse doit inclure des données sur les performances provenant d'annonces dynamiques du Réseau de Recherche, de campagnes Shopping ou d'autres sources non basées sur des mots clés de recherche, n'incluez pas de champs de segments.keyword.* dans votre requête. Analysez d'abord les données pour tous les types de campagnes, puis appliquez la segmentation par mots clés uniquement lorsque vous vous concentrez sur les performances des mots clés du Réseau de Recherche.
Règles pour les segments dans la clause WHERE
Lorsqu'un segment se trouve dans la clause WHERE, il doit également se trouver dans la clause SELECT.
Les segments de date suivants, appelés segments de date principaux, font exception
à cette règle :
segments.datesegments.weeksegments.monthsegments.quartersegments.year
Règles pour les champs de segment de date principal
Les segments segments.date, segments.week, segments.month, segments.quarter et segments.year fonctionnent comme suit :
Ces segments peuvent être filtrés dans la clause
WHEREsans apparaître dans la clauseSELECT.Si l'un de ces segments se trouve dans la clause
SELECT, une plage de dates finie composée de segments de date principaux doit être spécifiée dans la clauseWHERE. Les segments de date ne doivent pas nécessairement être les mêmes que ceux spécifiés dans la clauseSELECT.
Exemples
Non valide : étant donné que segments.date se trouve
dans la clause SELECT, vous devez spécifier une plage de dates finie dans
la clause WHERE pour segments.date,
segments.week, segments.month,
segments.quarter ou segments.year.
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Valide : cette requête renvoie les noms de campagne et les
clics accumulés au cours de la période. Notez que segments.date n'a pas besoin d'apparaître dans la clause SELECT.
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Valide : cette requête renvoie les noms de campagne et les clics segmentés par date pour tous les jours de la période. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Valide : cette requête renvoie les noms de campagne et les clics segmentés par mois pour tous les jours de la période. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Valide : cette requête renvoie les noms de campagne et les clics segmentés par trimestre, puis par mois pour tous les mois de la période. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2019 AND segments.year < 2024 |
search_term_view
La ressource search_term_view est également segmentée implicitement par groupe d'annonces, et pas seulement par terme de recherche, comme le reflète la structure de son nom de ressource, qui inclut également le groupe d'annonces. Par conséquent, vous obtiendrez des lignes apparemment en double avec les mêmes termes de recherche dans vos résultats, mais ces lignes appartiennent à un groupe d'annonces différent.
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2024-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2024-06-15"
}
}
]
}
Bien que les deux objets renvoyés dans cet exemple semblent être des doublons, leurs noms de ressource sont en fait différents, en particulier dans la partie "groupe d'annonces". Cela signifie que le terme de recherche "google photos" est attribué aux deux groupes d'annonces (ID 2222222222 et 33333333333) à la même date (2024-06-15). Nous pouvons donc conclure que l'API a fonctionné comme prévu et n'a pas renvoyé d'objets en double dans ce cas.