Cómo crear la lista de usuarios

En el caso de expression_rule_user_list, se debe realizar una distinción adicional. De forma predeterminada, Google Ads AND juntará todos los elementos de regla de un grupo de elementos de regla. Esto significa que cada elemento de la regla de al menos un grupo de elementos de la regla debe 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 ella si coincide al menos un elemento de la regla en cada grupo de elementos de la 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 un date_specific_rule_user_list, se producirá un error.

Solo falta combinar los grupos de elementos de reglas anteriores en una lista de usuarios nuevos. En este caso, dejaremos la funcionalidad predeterminada de OR_OF_ANDS en su lugar, ya que para eso creamos 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::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 => []});
      

Límite por período de visitas al sitio

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

La creación de un date_specific_rule_user_list sigue el mismo proceso que seguirías para un expression_rule_user_list. En lugar de configurar 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 cumplen con las mismas reglas que la lista anterior, pero solo si visitan tu sitio entre start_date (inclusive) y 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. Para ello, configura el prepopulation_status de la lista de usuarios como REQUESTED y supervisa el progreso del proceso de prepropagación asíncrono verificando periódicamente el estado de este campo.

Esto 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 agregó la etiqueta de remarketing. El estado se actualizará a FINISHED una vez que se procese la solicitud o a FAILED si la solicitud falla.