Cómo crear la lista de usuarios

Se debe realizar una distinción adicional para expression_rule_user_list. De forma predeterminada, Google Ads combinará con AND todos los elementos de regla de un grupo de elementos de regla. Esto significa que todos los elementos de regla de al menos un grupo de elementos de regla deben coincidir para que la regla agregue un visitante a la lista. Esto se denomina "formato disyuntivo normal" o OR_OF_ANDS.

Como alternativa, puedes configurar tu lista para que solo agregue un visitante a la lista si coincide al menos un elemento de la regla en cada grupo de elementos de regla. Esto se denomina "formato conjuntivo normal" o AND_OF_ORS y está disponible para expression_rule_user_list mediante el campo rule_type. Si intentas usar AND_OF_ORS para una date_specific_rule_user_list, se producirá un error.

Todo lo que falta es combinar los grupos de elementos de reglas anteriores en una nueva lista de usuarios. En este caso, dejaremos la funcionalidad OR_OF_ANDS predeterminada, ya que para eso compilamos estas reglas.

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)
      

Rita

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::V16::Common::FlexibleRuleUserListInfo->new({
    inclusiveRuleOperator => AND,
    inclusiveOperands     => [
      Google::Ads::GoogleAds::V16::Common::FlexibleRuleOperandInfo->new({
          rule => Google::Ads::GoogleAds::V16::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 => []});
      

Limitar por período de visitas al sitio

La expression_rule_user_list anterior satisface tus necesidades, pero ¿qué sucede si solo quieres captar a los usuarios que satisfacen la regla de esa lista y visitan tu sitio entre el 1 de octubre y el 31 de diciembre? Usa date_specific_rule_user_list.

Crear un date_specific_rule_user_list sigue el mismo proceso que seguirías para un expression_rule_user_list. En lugar de establecer el campo expression_rule_user_list de tu objeto RuleBasedUserListInfo, configura el campo date_specific_rule_user_list con un objeto DateSpecificRuleUserListInfo. Este objeto contendrá campos para start_date y 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 lista nueva contendrá todos los usuarios que cumplan las mismas reglas que la lista anterior, pero solo si visitan tu sitio entre el start_date (inclusive) y el end_date (inclusive).

Incluir a los usuarios anteriores en la lista

También puedes incluir usuarios anteriores en una lista de usuarios basada en reglas si configuras el prepopulation_status de la lista de usuarios como REQUESTED y, para supervisar el progreso del proceso de prepropagación asíncrono, verifica de forma periódica el estado de este campo.

Esta acción solo agregará a los usuarios anteriores de los últimos 30 días, según la duración de la membresía de la lista y la fecha en la que se agregue la etiqueta de remarketing. El estado se actualizará a FINISHED una vez que se procese la solicitud o FAILED si la solicitud falla.