Contrairement aux autres composants, les composants Lieu sont créés automatiquement par l'API Google Ads après la création d'un ensemble de composants. Commencez par créer un ensemble de composants de synchronisation des lieux et associez-le au client. Ensuite, si vous devez sélectionner un sous-ensemble de composants Lieu dans l'ensemble de composants pour une campagne ou un groupe d'annonces, créez un ensemble de composants de groupe de zones géographiques et associez-le à la campagne ou au groupe d'annonces.
Créer un ensemble de composants de synchronisation des lieux et l'associer au client
- Créez un ensemble de composants de synchronisation des lieux.
- Associez-le à un client à l'aide de
CustomerAssetSetService.
Créer un ensemble de composants de synchronisation des lieux
- Créez un nouveau
AssetSet.- Définissez
typesurLOCATION_SYNC. - Définissez
location_setsur un nouveauLocationSet.
- Définissez
Dans le nouveau
LocationSet:- Définissez
location_ownership_typeen fonction de votre cas d'utilisation :- Définissez-le sur
BUSINESS_OWNERsi vous êtes propriétaire de l'établissement. - Définissez-le sur
AFFILIATEsi vous n'êtes pas propriétaire de l'établissement, mais que vous y vendez vos produits là.
- Définissez-le sur
Définissez le champ
sourceoneof en fonction de votre cas d'utilisation :Définissez
business_profile_location_setsi vous souhaitez effectuer une synchronisation avec vos établissements dans votre compte de fiche d'établissement Google.Lorsque vous créez un
BusinessProfileLocationSetpour associer Google Ads à un compte de fiche d'établissement Google, vous devez fournir un jeton d'accès OAuth 2.0 dans le champhttp_authorization_token. Ce jeton prouve que vous autorisez Google Ads à accéder aux données d'établissement de la fiche d'établissement Google spécifiée.Le jeton doit répondre aux exigences suivantes :
- Il doit être généré pour le compte Google (compte d'utilisateur ou de service) dont l'adresse e-mail est fournie dans le champ
email_addressduBusinessProfileLocationSet. - Ce compte doit disposer des autorisations suffisantes pour lire les établissements dans la fiche d'établissement Google.
- Le jeton OAuth 2.0 doit être obtenu avec le champ d'application
https://www.googleapis.com/auth/business.manage.
Pour obtenir des instructions détaillées sur la génération d'un jeton d'accès OAuth 2.0, consultez Utiliser OAuth 2.0 pour accéder aux API Google.
- Il doit être généré pour le compte Google (compte d'utilisateur ou de service) dont l'adresse e-mail est fournie dans le champ
Définissez
chain_location_setsi vous souhaitez effectuer une synchronisation avec les établissements dans les ID de chaîne spécifiés.Définissez
maps_location_setsi vous souhaitez ajouter manuellement des établissements à l'aide d' ID de lieu.
- Définissez
Une fois ces étapes effectuées, l'API Google Ads génère des composants
Lieu et les ajoute à l'ensemble de composants de synchronisation des lieux créé, comme
lorsque vous le faites manuellement à l'aide
AssetSetAssetService. Vous n'avez pas besoin de
les manipuler, sauf si vous souhaitez les ajouter manuellement à des ensembles de composants de groupe de zones géographiques statiques.
Un seul ensemble de composants de synchronisation des lieux actif avec
(status défini sur
ENABLED) peut exister
pour un client. Si vous devez créer un autre type d'ensemble de composants de synchronisation des lieux, supprimez d'abord celui qui existe.
Associer l'ensemble de composants de synchronisation des lieux à un client
Utilisez
CustomerAssetSetService.MutateCustomerAssetSets
pour associer l'ensemble de composants de synchronisation des lieux de la section précédente à votre client.
(Facultatif) Créer un ensemble de composants de groupe de zones géographiques et l'associer à une campagne ou à un groupe d'annonces
Un ensemble de composants de groupe de zones géographiques n'est nécessaire que si vous devez sélectionner un sous-ensemble de composants Lieu. En effet, les campagnes et les groupes d'annonces héritent des composants Lieu au niveau du client.
Les ensembles de composants de groupe de zones géographiques contiennent un sous-ensemble de composants Lieu de l'ensemble de composants de synchronisation des lieux. Vous pouvez créer dynamiquement un ensemble de composants de groupe de zones géographiques en tirant parti de certaines fonctionnalités de la fiche d'établissement Google (comme le filtrage par libellés) ou des ID et des établissements de chaîne. Vous pouvez également créer un ensemble de composants de groupe de zones géographiques de manière statique.
- Créez un ensemble de composants de groupe de zones géographiques. L'ensemble de composants du groupe de zones géographiques peut être dynamique ou statique.
- Associez l'ensemble de composants à une campagne à l'aide de ou à un groupe d'annonces, selon vos besoins.
- (Facultatif) Ajoutez les composants générés précédemment à l'ensemble de composants de groupe de zones géographiques statique que vous venez de créer.
Pour un client donné, vous pouvez créer plusieurs ensembles de composants de groupe de zones géographiques dynamiques ou statiques.
Créer un ensemble de composants de groupe de zones géographiques
Créez un nouveau AssetSet et définissez
location_group_parent_asset_set_id sur l'ID de l'ensemble de composants de synchronisation des lieux créé précédemment.
Ensuite, définissez certains champs selon que vous souhaitez créer un ensemble de composants de groupe de zones géographiques dynamique ou statique.
Ensembles de composants dynamiques
En fonction du champ que vous définissez dans LocationSet, définissez
les champs en fonction de la règle suivante :
| Si vous définissez le champ suivant | Définissez le type sur | Et définissez ce champ comme champ oneof asset_set_source field |
|---|---|---|
business_profile_location_set |
BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP |
business_profile_location_group |
chain_location_set |
CHAIN_DYNAMIC_LOCATION_GROUP |
chain_location_group |
Si vous définissez maps_location_set lorsque vous créez l'ensemble de composants de synchronisation des lieux, vous ne pourrez pas créer d'ensemble de composants de groupe de zones géographiques dynamique. En effet, vous avez ajouté manuellement des établissements par ID de lieu et vous ne pouvez pas utiliser de fonctionnalités de filtrage pour ce type d'établissements.
Ensembles de composants statiques
Définissez type sur
STATIC_LOCATION_GROUP.
Vous pouvez créer des ensembles de composants de groupe de zones géographiques statiques pour tous les types d'ensembles de composants de synchronisation des lieux, quels que soient les champs (business_profile_location_set,
chain_location_set, ou maps_location_set) que vous définissez dans le
LocationSet.
Pour les ensembles de composants de groupe de zones géographiques statiques, vous devez ajouter manuellement les composants Lieu générés aux ensembles de composants de groupe de zones géographiques.
Associer l'ensemble de composants à une campagne ou à un groupe d'annonces
Utilisez
CampaignAssetSetService.MutateCampaignAssetSets
pour associer l'ensemble de composants de groupe de zones géographiques à votre
campagne.
Vous pouvez également utiliser
AdGroupAssetSetService.MutateAdGroupAssetSets
si vous souhaitez associer l'ensemble de composants de groupe de zones géographiques à
un groupe d'annonces.
(Facultatif) Ajouter les composants Lieu à l'ensemble de composants de groupe de zones géographiques statique
Cette étape n'est nécessaire que si vous avez créé un ensemble de composants de groupe de zones géographiques statique précédemment.
- Utilisez le rapport
asset_set_assetpour récupérer les noms de ressources des composants générés automatiquement pour l' ensemble de composants de synchronisation des lieux créé précédemment. Utilisez le filtrage pour ne récupérer que les composants que vous souhaitez. - Ajoutez-les à l'ensemble de composants de groupe de zones géographiques statique à l'aide
AssetSetAssetService.MutateAssetSetAssets.
Gérer les ID d'établissement de la fiche d'établissement
Lorsque vous utilisez un business_profile_location_set et que vous filtrez sur
listing_id_filters
récupérés à partir du site Web ou de l'API de la fiche d'établissement, il peut être nécessaire
de convertir ces valeurs numériques du type uint64 en int64. Si votre code génère une erreur d'exécution indiquant que l'ID de zone géographique de votre fiche d'établissement est hors plage lorsque vous l'ajoutez au champ répété listing_id_filters[], vous devrez probablement le convertir à l'aide de l'un des exemples suivants :
Java
/**
* Converts the business profile location ID to the format expected by the
* DynamicBusinessProfileLocationGroupFilter.listing_id_filters[] repeated field.
* The business profile location ID is an unsigned 64-bit integer, while the
* listing_id_filters[] field expects signed 64-bit integers. This means that
* for business profile location IDs that are out of range, we must perform the
* two's complement to convert it into a signed int.
*
* @param businessProfileLocationId The ID of a Business Profile location ID.
* @return a Business Profile location ID as a signed 64-bit integer (long).
*/
public static long convertBusinessProfileLocationId(String businessProfileLocationId) {
return Long.parseUnsignedLong(businessProfileLocationId);
}
C#
/// <summary>
/// Converts the business profile location ID to the format expected by the
/// DynamicBusinessProfileLocationGroupFilter.listing_id_filters[] repeated field.
/// The business profile location ID is an unsigned 64-bit integer, while the
/// listing_id_filters[] field expects signed 64-bit integers. This means that
/// for business profile location IDs that are out of range, we must perform the
/// two's complement to convert it into a signed int.
/// </summary>
/// <param name="businessProfileLocationId">The ID of a Business Profile location.</param>
/// <returns>The converted business location ID in signed 64 bit.</returns>
public long ConvertBusinessProfileLocationId(ulong businessProfileLocationId)
{
return unchecked((long)businessProfileLocationId);
}
PHP
/**
* Converts a business profile location ID to a signed 64 bit integer.
*
* Converts the business profile location ID to the format expected by the
* DynamicBusinessProfileLocationGroupFilter.listing_id_filters[] repeated field.
* The business profile location ID is an unsigned 64-bit integer, while the
* listing_id_filters[] field expects signed 64-bit integers. This means that
* for business profile location IDs that are out of range, we must perform the
* two's complement to convert it into a signed int.
*
* @param string $businessProfileLocationId the ID of a Business Profile location
* @return int the converted business location ID in signed 64 bit
*/
public static function convertBusinessProfileLocationId(string $businessProfileLocationId): int
{
$unsignedMax = '18446744073709551615'; // 2^64 - 1
$signedMax = '9223372036854775807'; // 2^63 - 1
// Check if the business profile location ID is within 64 bit range.
// If not, throw an error.
if (bccomp($businessProfileLocationId, '0') < 0 || bccomp($businessProfileLocationId, $unsignedMax) > 0) {
throw new InvalidArgumentException(
'The given business profile location id is outside of the range for a 64 bit integer.'
);
}
// Check if the business profile location ID is in signed 64 bit range.
// If it's not, convert it to its two's complement.
if (bccomp($businessProfileLocationId, $signedMax) > 0) {
// Two's complement: ID - 2^64
return (int) bcsub($businessProfileLocationId, '18446744073709551616');
}
return (int) $businessProfileLocationId;
}
Python
import ctypes
def convert_business_profile_location_id(business_profile_location_id):
"""Converts a business profile location ID to a signed 64 bit integer.
Converts the business profile location ID to the format expected by the
DynamicBusinessProfileLocationGroupFilter.listing_id_filters[] repeated field.
The business profile location ID is an unsigned 64-bit integer, while the
listing_id_filters[] field expects signed 64-bit integers. This means that
for business profile location IDs that are out of range, we must perform the
two's complement to convert it into a signed int.
Args:
business_profile_location_id: the ID of a Business Profile location ID.
Returns:
a Business Profile location ID as a signed 64 bit integer.
"""
# Check if the business profile location ID is within 64 bit range.
# If not, throw an error.
if business_profile_location_id >= 2 ** 64:
raise ValueError(
"The given business profile location id is outside of the range for a 64 bit integer."
)
# Check if the business profile location ID is in signed 64 bit range.
# If it's not, convert it to its two's complement.
elif business_profile_location_id >= 2 ** 63:
return ctypes.c_int64(business_profile_location_id).value
else:
return business_profile_location_id
Ruby
# Converts the business profile location ID to the format expected by the
# DynamicBusinessProfileLocationGroupFilter.listing_id_filters[] repeated field.
# The business profile location ID is an unsigned 64-bit integer, while the
# listing_id_filters[] field expects signed 64-bit integers. This means that
# for business profile location IDs that are out of range, we must perform the
# two's complement to convert it into a signed int.
# Since Ruby supports arbitrary precision numbers, we have to calculate it
# manually.
LONG_MAX = 2 ** 63
ULONG_MAX = LONG_MAX * 2
def convert_business_profile_location_id(business_profile_location_id)
# Check if the business profile location ID is within 64 bit range.
# If not, throw an error.
if business_profile_location_id >= 2 ** 64
raise "The given business profile location id is outside of the range for a 64 bit integer."
# Check if the business profile location ID is in signed 64 bit range.
# If it's not, convert it to its two's complement.
elseif business_profile_location_id >= 2**63
-1 * (ULONG_MAX - business_profile_location_id)
else
business_profile_location_id
end
end
Perl
use bigint;
# Converts the business profile location ID to the format expected by the
# DynamicBusinessProfileLocationGroupFilter.listing_id_filters[] repeated field.
# The business profile location ID is an unsigned 64-bit integer, while the
# listing_id_filters[] field expects signed 64-bit integers. This means that
# for business profile location IDs that are out of range, we must perform the
# two's complement to convert it into a signed int.
sub convert_business_profile_location_id {
my ($business_profile_location_id) = @_;
# Check if the business profile location ID is within 64 bit range.
# If not, throw an error.
if ($business_profile_location_id >= 2**64) {
die "The given business profile location id is outside of the range for a 64 bit integer";
# Check if the business profile location ID is in signed 64 bit range.
# If it's not, convert it to its two's complement.
} elseif ($business_profile_location_id >= 2**63) {
return -1 * (2**64 - $business_profile_location_id);
} else {
return $business_profile_location_id;
}
}