Общие сведения о программах лояльности

Показывайте преимущества своего магазина в Google с помощью программ лояльности. Оно дает возможность указывать информацию о преимуществах для участников программы лояльности, например о бесплатной доставке, баллах и специальных ценах. Преимущества программы лояльности могут показываться в бесплатных предложениях, товарной рекламе и рекламе местного ассортимента на разных платформах Google, таких как Google Поиск, вкладка "Покупки" и Google Кошелек.

С помощью Merchant API продавцы и сторонние поставщики услуг по организации программ лояльности, действующие от имени продавцов, могут настраивать и поддерживать программы лояльности программным способом с помощью LoyaltyProgramService. Этот сервис позволяет создавать, получать, обновлять и удалять программы лояльности, а также просматривать их списки.

Подробнее о требованиях к компаниям и рекомендациях по соблюдению правил см. в Справочном центре Merchant Center.

Основные понятия

При работе с программами лояльности учитывайте следующие концепции и ограничения:

  • Идентификатор на уровне аккаунта. Merchant API определяет программы лояльности по идентификатору аккаунта Merchant Center, которому они принадлежат.
  • Ограничение на количество программ. Merchant API поддерживает только одну программу лояльности на аккаунт продавца.
  • Прямое владение аккаунтом. Программы лояльности должны быть настроены непосредственно в целевом аккаунте продавца (accounts/{ACCOUNT_ID}). Сервис не поддерживает управление программами лояльности на уровне расширенного аккаунта для дочерних аккаунтов. Сторонние поставщики услуг, у которых есть авторизованный доступ к аккаунту продавца, могут управлять программой лояльности от его имени.
  • Редакционная проверка. После создания или изменения программы лояльности она проходит проверку. Поле review_result.review_status указывает, является ли программа UNDER_REVIEW, APPROVED или REJECTED.
  • Поддерживаемые регионы. Программы лояльности доступны в Австралии, Бразилии, Великобритании, Германии, Индии, Испании, Италии, Канаде, Мексике, Нидерландах, США, Франции и Южной Корее.
  • Требования к уровням. Участие в программе может быть бесплатным, платным, требовать достижения определенного порога расходов или наличия кредитной карты с брендом продавца. Нельзя создавать уровни на основе рода занятий, например для учащихся или военнослужащих.
  • Преимущества. Программы поддерживают бесплатную доставку, бонусные баллы и специальные цены для участников. В объявлениях специальная цена для участников программы должна быть ниже обычной или цены со скидкой (если она есть) по крайней мере на 5% или 5 единиц валюты, в которой измеряется цена товара.

Требования

Прежде чем управлять программами лояльности с помощью Merchant API, убедитесь, что вы соответствуете следующим требованиям:

  • У вас должен быть активный аккаунт Merchant Center (или авторизованный доступ к аккаунту продавца, если вы сторонний поставщик услуг по программам лояльности).
  • Включите дополнение Программа лояльности для своего аккаунта. Вы можете включить дополнение одним из следующих способов:

Ниже приведен пример запроса на включение дополнения "Программа лояльности" с помощью вложенного API программ:

HTTP

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/programs/loyalty:enable

cURL

curl --request POST \
  'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/programs/loyalty:enable?key={YOUR_API_KEY}' \
  --header 'Authorization: Bearer {YOUR_ACCESS_TOKEN}' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{}' \
  --compressed

Методы

Управлять программами лояльности можно следующими способами:

Как создать программу лояльности

Чтобы создать новую программу лояльности для аккаунта, используйте метод loyaltyPrograms.create. Укажите подробную информацию, например описание программы, URL регистрации, уровни программы с уникальными преимуществами и требованиями.

Обязательный элемент program_label задает уникальный идентификатор программы лояльности. Например, если указать ярлык my-rewards, то ресурс name будет иметь значение accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/my-rewards.

Пример запроса:

HTTP

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms

{
  "programLabel": "my-rewards",
  "loyaltyProgram": {
    "programName": "my rewards",
    "tiers": [
      {
        "tierName": "gold",
        "tierLabel": "gold",
        "tierBenefits": [
          {
            "otherBenefit": "free gift on your birthday"
          },
          {
            "structuredBenefit": {
              "pointsEarningBenefit": {
                "minimumMoneySpent": {
                  "currencyCode": "USD",
                  "units": "25"
                },
                "pointsEarningBenefitAnnotation": {
                  "pointsEarned": 1.0,
                  "amountSpent": {
                    "currencyCode": "USD",
                    "units": "1"
                  }
                }
              }
            }
          }
        ],
        "requirements": {
          "freeToJoin": true
        }
      }
    ],
    "programDescriptions": [
      "earn rewards buying products you love"
    ],
    "signupUrl": "https://www.example.com/my_rewards_signup",
    "regionCodes": [
      "US"
    ]
  }
}

Вместо {ACCOUNT_ID} укажите уникальный идентификатор аккаунта Merchant Center.

Ниже приведен пример ответа на успешный запрос.

{
  "name": "accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/my-rewards",
  "programName": "my rewards",
  "tiers": [
    {
      "tierName": "gold",
      "tierLabel": "gold",
      "tierBenefits": [
        {
          "otherBenefit": "free gift on your birthday"
        },
        {
          "structuredBenefit": {
            "pointsEarningBenefit": {
              "minimumMoneySpent": {
                "currencyCode": "USD",
                "units": "25"
              },
              "pointsEarningBenefitAnnotation": {
                "pointsEarned": 1.0,
                "amountSpent": {
                  "currencyCode": "USD",
                  "units": "1"
                }
              }
            }
          }
        }
      ],
      "requirements": {
        "freeToJoin": true
      },
      "signupUrl": "https://www.example.com/my-rewards/gold"
    }
  ],
  "programDescriptions": [
    "earn rewards buying products you love"
  ],
  "signupUrl": "https://www.example.com/my_rewards_signup",
  "reviewResult": {
    "reviewStatus": "UNDER_REVIEW"
  },
  "regionCodes": [
    "US"
  ]
}

Как получить информацию о программе лояльности

Чтобы получить информацию о конкретной программе лояльности, используйте метод loyaltyPrograms.get.

Пример запроса:

HTTP

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/{PROGRAM_LABEL}

Замените {ACCOUNT_ID} на идентификатор аккаунта, а {PROGRAM_LABEL} – на уникальный ярлык программы лояльности (например, my-rewards).

Ниже приведен пример ответа на успешный запрос.

{
  "name": "accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/my-rewards",
  "programName": "my rewards",
  "tiers": [
    {
      "tierName": "gold",
      "tierLabel": "gold",
      "tierBenefits": [
        {
          "otherBenefit": "free gift on your birthday"
        },
        {
          "structuredBenefit": {
            "pointsEarningBenefit": {
              "minimumMoneySpent": {
                "currencyCode": "USD",
                "units": "25"
              },
              "pointsEarningBenefitAnnotation": {
                "pointsEarned": 1.0,
                "amountSpent": {
                  "currencyCode": "USD",
                  "units": "1"
                }
              }
            }
          }
        }
      ],
      "requirements": {
        "freeToJoin": true
      },
      "signupUrl": "https://www.example.com/my-rewards/gold"
    }
  ],
  "programDescriptions": [
    "earn rewards buying products you love"
  ],
  "signupUrl": "https://www.example.com/my_rewards_signup",
  "reviewResult": {
    "reviewStatus": "UNDER_REVIEW"
  },
  "regionCodes": [
    "US"
  ]
}

Как посмотреть список программ лояльности

Чтобы получить список всех программ лояльности, связанных с вашим аккаунтом, используйте метод loyaltyPrograms.list.

Пример запроса:

HTTP

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms

Ниже приведен пример ответа на успешный запрос.

{
  "loyaltyPrograms": [
    {
      "name": "accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/my-rewards",
      "programName": "my rewards",
      "tiers": [
        {
          "tierName": "gold",
          "tierLabel": "gold",
          "tierBenefits": [
            {
              "otherBenefit": "free gift on your birthday"
            },
            {
              "structuredBenefit": {
                "pointsEarningBenefit": {
                  "minimumMoneySpent": {
                    "currencyCode": "USD",
                    "units": "25"
                  },
                  "pointsEarningBenefitAnnotation": {
                    "pointsEarned": 1.0,
                    "amountSpent": {
                      "currencyCode": "USD",
                      "units": "1"
                    }
                  }
                }
              }
            }
          ],
          "requirements": {
            "freeToJoin": true
          },
          "signupUrl": "https://www.example.com/my-rewards/gold"
        }
      ],
      "programDescriptions": [
        "earn rewards buying products you love"
      ],
      "signupUrl": "https://www.example.com/my_rewards_signup",
      "reviewResult": {
        "reviewStatus": "UNDER_REVIEW"
      },
      "regionCodes": [
        "US"
      ]
    }
  ]
}

Как изменить программу лояльности

Чтобы изменить существующую программу лояльности, используйте метод loyaltyPrograms.update. Выполните частичное обновление, используя update_mask, или полную замену, не указывая маску.

Частичное обновление с маской обновления

С помощью параметра update_mask можно указать, какие именно поля нужно обновить. Изменяются только поля, указанные в маске, а остальные остаются без изменений. Любое поле, не указанное в маске обновления, игнорируется, даже если оно есть в теле запроса.

В следующем примере запроса обновляются только поля programDescriptions и advancedSettings:

HTTP

PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/{PROGRAM_LABEL}?update_mask=program_descriptions,advanced_settings

{
  "programDescriptions": [
    "a new description of the program"
  ],
  "advancedSettings": {
    "hideDisplayFromNonMembers": true
  },
  "signupUrl": "https://www.example.com"
}

В этом примере сервис игнорирует signupUrl, поскольку он не включен в update_mask. Поле programDescriptions полностью заменяет все ранее настроенные описания.

Ниже приведен пример ответа на успешный запрос.

{
  "name": "accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/my-rewards",
  "programName": "my rewards",
  "tiers": [
    {
      "tierName": "gold",
      "tierLabel": "gold",
      "tierBenefits": [
        {
          "otherBenefit": "free gift on your birthday"
        },
        {
          "structuredBenefit": {
            "pointsEarningBenefit": {
              "minimumMoneySpent": {
                "currencyCode": "USD",
                "units": "25"
              },
              "pointsEarningBenefitAnnotation": {
                "pointsEarned": 1.0,
                "amountSpent": {
                  "currencyCode": "USD",
                  "units": "1"
                }
              }
            }
          }
        }
      ],
      "requirements": {
        "freeToJoin": true
      },
      "signupUrl": "https://www.example.com/my-rewards/gold"
    }
  ],
  "programDescriptions": [
    "a new description of the program"
  ],
  "signupUrl": "https://www.example.com/my_rewards_signup",
  "reviewResult": {
    "reviewStatus": "UNDER_REVIEW"
  },
  "regionCodes": [
    "US"
  ],
  "advancedSettings": {
    "hideDisplayFromNonMembers": true
  }
}

Полная замена без маски обновления

Если вы не укажете параметр update_mask, запрос полностью заменит конфигурацию программы лояльности.

Пример запроса:

HTTP

PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/{PROGRAM_LABEL}

{
  "programName": "Updated Program",
  "signupUrl": "https://example.com/updated",
  "programDescriptions": [
    "Updated description"
  ],
  "regionCodes": [
    "US"
  ],
  "tiers": [
    {
      "tierName": "Gold Tier",
      "tierLabel": "gold",
      "tierBenefits": [
        {
          "otherBenefit": "Free shipping"
        }
      ],
      "requirements": {
        "freeToJoin": true
      }
    }
  ]
}

Ниже приведен пример ответа на успешный запрос.

{
  "name": "accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/my-rewards",
  "programName": "Updated Program",
  "tiers": [
    {
      "tierName": "Gold Tier",
      "tierLabel": "gold",
      "tierBenefits": [
        {
          "otherBenefit": "Free shipping"
        }
      ],
      "requirements": {
        "freeToJoin": true
      }
    }
  ],
  "programDescriptions": [
    "Updated description"
  ],
  "signupUrl": "https://example.com/updated",
  "reviewResult": {
    "reviewStatus": "UNDER_REVIEW"
  },
  "regionCodes": [
    "US"
  ]
}

Как удалить программу лояльности

Чтобы удалить программу лояльности из аккаунта, используйте метод loyaltyPrograms.delete.

Пример запроса:

HTTP

DELETE https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/programs/loyalty/loyaltyPrograms/{PROGRAM_LABEL}

Если запрос выполнен успешно, тело ответа будет пустым.

Дальнейшие действия