Création de la liste d'utilisateurs

Pour expression_rule_user_list, une distinction supplémentaire doit être faite. Par défaut, Google Ads regroupe tous les éléments de règles d'un groupe à l'aide de la méthode AND. Cela signifie que chaque élément de règle d'au moins un groupe d'éléments de règle doit correspondre pour que la règle ajoute un visiteur à la liste. C'est ce qu'on appelle la "forme normale disjonctive" ou OR_OF_ANDS.

Vous pouvez également configurer votre liste pour n'ajouter un visiteur à la liste que si au moins un élément de règle dans chaque groupe d'éléments de règle correspond. C'est ce que l'on appelle la "forme normale conjonctive" ou AND_OF_ORS. Elle est disponible pour expression_rule_user_list à l'aide du champ rule_type. Si vous essayez d'utiliser AND_OF_ORS pour un date_specific_rule_user_list, une erreur se produira.

Il ne vous reste plus qu'à combiner les groupes d'éléments de règle ci-dessus dans une nouvelle liste d'utilisateurs. Dans ce cas, nous allons laisser la fonctionnalité OR_OF_ANDS par défaut en place, car c'est pour cela que nous avons créé ces règles.

Java

FlexibleRuleUserListInfo flexibleRuleUserListInfo =
    FlexibleRuleUserListInfo.newBuilder()
        .setInclusiveRuleOperator(UserListFlexibleRuleOperator.AND)
        .addInclusiveOperands(
            FlexibleRuleOperandInfo.newBuilder()
                .setRule(
                    // The default rule_type for a UserListRuleInfo object is OR of ANDs
                    // (disjunctive normal form). That is, rule items will be ANDed together
                    // within rule item groups and the groups themselves will be ORed together.
                    UserListRuleInfo.newBuilder()
                        .addRuleItemGroups(checkoutDateRuleGroup)
                        .addRuleItemGroups(checkoutAndCartSizeRuleGroup))
                // Optional: includes a lookback window for this rule, in days.
                .setLookbackWindowDays(7L))
        .build();
      

C#

FlexibleRuleUserListInfo flexibleRuleUserListInfo = new FlexibleRuleUserListInfo();
FlexibleRuleOperandInfo flexibleRuleOperandInfo = new FlexibleRuleOperandInfo() {
    Rule = new UserListRuleInfo()
};
flexibleRuleOperandInfo.Rule.RuleItemGroups.Add(checkoutAndCartSizeRuleGroup);
flexibleRuleOperandInfo.Rule.RuleItemGroups.Add(checkoutDateRuleGroup);
flexibleRuleUserListInfo.InclusiveOperands.Add(flexibleRuleOperandInfo);
      

PHP

$flexibleRuleUserListInfo = new FlexibleRuleUserListInfo([
    'inclusive_rule_operator' => UserListFlexibleRuleOperator::PBAND,
    'inclusive_operands' => [
        new FlexibleRuleOperandInfo([
            'rule' => new UserListRuleInfo([
                // The default rule_type for a UserListRuleInfo object is OR of ANDs
                // (disjunctive normal form). That is, rule items will be ANDed together
                // within rule item groups and the groups themselves will be ORed together.
                'rule_item_groups' => [
                    $checkoutAndCartSizeRuleGroup,
                    $checkoutDateRuleGroup
                ]
            ]),
            // Optionally add a lookback window for this rule, in days.
            'lookback_window_days' => 7
        ])
    ],
    'exclusive_operands' => []
]);
      

Python

# Create a FlexibleRuleUserListInfo object, or a flexible rule
# representation of visitors with one or multiple actions.
# FlexibleRuleUserListInfo wraps UserListRuleInfo in a
# FlexibleRuleOperandInfo object that represents which user lists to
# include or exclude.
flexible_rule_user_list_info = (
    rule_based_user_list_info.flexible_rule_user_list
)
flexible_rule_user_list_info.inclusive_rule_operator = (
    client.enums.UserListFlexibleRuleOperatorEnum.AND
)
# The default rule_type for a UserListRuleInfo object is OR of
# ANDs (disjunctive normal form). That is, rule items will be
# ANDed together within rule item groups and the groups
# themselves will be ORed together.
rule_operand = client.get_type("FlexibleRuleOperandInfo")
rule_operand.rule.rule_item_groups.extend(
    [
        checkout_and_cart_size_rule_group,
        checkout_date_rule_group,
    ]
)
rule_operand.lookback_window_days = 7
flexible_rule_user_list_info.inclusive_operands.append(rule_operand)
      

Ruby

r.flexible_rule_user_list = client.resource.flexible_rule_user_list_info do |frul|
  frul.inclusive_rule_operator = :AND
  frul.inclusive_operands << client.resource.flexible_rule_operand_info do |froi|
    froi.rule = client.resource.user_list_rule_info do |info|
      info.rule_item_groups += [checkout_date_rule_group, checkout_and_cart_size_rule_group]
    end
    # Optionally include a lookback window for this rule, in days.
    froi.lookback_window_days = 7
  end
end
      

Perl

my $flexible_rule_user_list_info =
  Google::Ads::GoogleAds::V17::Common::FlexibleRuleUserListInfo->new({
    inclusiveRuleOperator => AND,
    inclusiveOperands     => [
      Google::Ads::GoogleAds::V17::Common::FlexibleRuleOperandInfo->new({
          rule => Google::Ads::GoogleAds::V17::Common::UserListRuleInfo->new({
              # The default rule_type for a UserListRuleInfo object is OR of
              # ANDs (disjunctive normal form). That is, rule items will be
              # ANDed together within rule item groups and the groups
              # themselves will be ORed together.
              ruleItemGroups => [
                $checkout_date_rule_group, $checkout_and_cart_size_rule_group
              ]}
          ),
          # Optionally include a lookback window for this rule, in days.
          lookback_window_days => 7
        })
    ],
    exclusiveOperands => []});
      

Limiter par plage de dates de la visite du site

La expression_rule_user_list ci-dessus répond à vos besoins, mais que se passe-t-il si vous souhaitez seulement cibler les utilisateurs qui respectent la règle de cette liste et qui consultent votre site entre le 1er octobre et le 31 décembre ? Utilisez date_specific_rule_user_list.

La création d'un date_specific_rule_user_list suit le même processus que pour un expression_rule_user_list. Au lieu de définir le champ expression_rule_user_list de votre objet RuleBasedUserListInfo, définissez le champ date_specific_rule_user_list avec un objet DateSpecificRuleUserListInfo. Cet objet contiendra des champs pour start_date et end_date.

DateSpecificRuleUserListInfo dateSpecificRuleUserListInfo =
    DateSpecificRuleUserListInfo.newBuilder()
        .setRule(
            UserListRuleInfo.newBuilder()
                .addAllRuleItemGroups(
                    ImmutableList.of(checkoutAndCartSizeRuleGroup, checkoutDateRuleGroup)))
        .setStartDate(StringValue.of("2019-10-01"))
        .setEndDate(StringValue.of("2019-12-31"))
        .build();

La nouvelle liste contiendra tous les utilisateurs qui répondent aux mêmes règles que la liste précédente, mais uniquement s'ils visitent votre site entre le start_date (inclus) et le end_date (inclus).

Inclure les anciens utilisateurs dans la liste

Vous pouvez également inclure les anciens utilisateurs dans une liste d'utilisateurs basée sur des règles en définissant le prepopulation_status de la liste d'utilisateurs sur REQUESTED, et surveiller la progression du processus de préremplissage asynchrone en vérifiant régulièrement l'état de ce champ.

Seuls les utilisateurs passés au cours des 30 derniers jours seront ajoutés, en fonction de la durée de validité de la liste et de la date à laquelle la balise de remarketing est ajoutée. L'état passe à FINISHED une fois la requête traitée, ou à FAILED si la requête échoue.