יצירת רשימת המשתמשים

עבור expression_rule_user_list, יש הבחנה נוספת. כברירת מחדל, מערכת Google Ads AND תקבץ את כל הפריטים של הכללים בקבוצת פריטים של כללים. כלומר, כל פריט של כלל בקבוצת פריטים אחת לפחות של כללים חייב להתאים כדי שהכלל יוסיף מבקר לרשימה. מצב זה נקרא "disjunctive normal form", או OR_OF_ANDS.

לחלופין, אפשר להגדיר את הרשימה כך שיתווסף מבקר לרשימה רק אם לפחות פריט אחד של כלל בכל קבוצת פריטים של כללים תואם. השיטה הזו נקראת 'צורה רגילה חפיפה', או AND_OF_ORS, והיא זמינה עבור expression_rule_user_list באמצעות השדה rule_type. ניסיון להשתמש ב-AND_OF_ORS ב-date_specific_rule_user_list יגרום לשגיאה.

כל מה שנשאר זה לשלב את קבוצות הפריטים של הכללים שלמעלה לרשימת משתמשים חדשה. במקרה כזה, נשאיר את פונקציונליות ברירת המחדל OR_OF_ANDS כמו שצריך, כי לשם כך פיתחנו את הכללים.

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::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 => []});
      

הגבלה לפי טווח תאריכים של ביקורים באתר

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 אם הבקשה נכשלה.