Для expression_rule_user_list
необходимо сделать дополнительное различие. По умолчанию Google Реклама объединяет AND
все элементы правил в группе элементов правил. Это означает, что каждый элемент правила хотя бы в одной группе элементов правил должен совпадать, чтобы правило добавило посетителя в список. Это называется «дизъюнктивной нормальной формой» или OR_OF_ANDS
.
В качестве альтернативы вы можете настроить свой список так, чтобы посетитель добавлялся в список только в том случае, если хотя бы один элемент правила в каждой группе элементов правил соответствует. Это называется «конъюнктивной нормальной формой» или AND_OF_ORS
и доступно для expression_rule_user_list
с помощью поля rule_type
. Попытка использовать AND_OF_ORS
для списка date_specific_rule_user_list
приведет к ошибке.
Все, что осталось, — это объединить приведенные выше группы элементов правил в новый список пользователей. В этом случае мы оставим стандартную функциональность OR_OF_ANDS
, поскольку именно для этого мы создали эти правила.
Ява
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();
С#
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' => [] ]);
Питон
# 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)
Руби
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
Перл
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 => []});
Ограничение по диапазону дат посещения сайта
Вышеупомянутый expression_rule_user_list
соответствует вашим потребностям, но что, если вы хотите захватить только тех пользователей, которые удовлетворяют правилу в этом списке и посещают ваш сайт в период с 1 октября по 31 декабря? Используйте date_specific_rule_user_list
.
Создание date_specific_rule_user_list
повторяет тот же процесс, что и для expression_rule_user_list
. Вместо установки поля expression_rule_user_list
вашего объекта RuleBasedUserListInfo
задайте поле date_specific_rule_user_list
с помощью объекта DateSpecificRuleUserListInfo
. Этот объект будет содержать поля для start_date
и 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();
Новый список будет содержать всех пользователей, которые соответствуют тем же правилам, что и предыдущий список, но только если они посетят ваш сайт в период между start_date
(включительно) и end_date
(включительно).
Включить прошлых пользователей в список
Вы также можете включить прошлых пользователей в список пользователей на основе правил, установив для prepopulation_status
списка пользователей значение REQUESTED
и отслеживать ход асинхронного процесса предварительного заполнения, периодически проверяя состояние этого поля.
При этом будут добавлены только прошлые пользователи за последние 30 дней, в зависимости от продолжительности членства в списке и даты добавления тега ремаркетинга. Статус будет обновлен до FINISHED
после обработки запроса или FAILED
, если запрос не выполнен.