ポイント プログラムの概要

ポイント プログラムを利用して、Google で店舗のメリットをアピールしましょう。送料無料、利用可能なポイント、会員限定価格など、さまざまな特典を登録できます。ポイント プログラムの特典は、Google 検索、ショッピング タブ、Google ウォレットなどの Google サービスにわたり、無料リスティング、ショッピング広告、ローカル在庫広告に表示できます。

Merchant API を使用すると、販売者と販売者の代理を務めるサードパーティのポイント プログラム プロバイダは、LoyaltyProgramService を使用してポイント プログラムをプログラムで設定および管理できます。このサービスでは、ポイント プログラムの作成、取得、一覧表示、更新、削除を行うことができます。

ビジネス要件とポリシー ガイドラインについて詳しくは、Merchant Center ヘルプセンターの販売者のポイント プログラムについてをご覧ください。

主なコンセプト

ポイント プログラムを使用する際は、次のコンセプトと制限事項に注意してください。

  • アカウント レベルの識別子: Merchant API は、所有している Merchant Center アカウント ID でポイント プログラムを識別します。
  • 単一プログラムの制限: Merchant API でサポートされているポイント プログラムは、販売アカウントごとに 1 つのみです。
  • 直接アカウントの所有権: ポイント プログラムは、対象の販売アカウント(accounts/{ACCOUNT_ID})で直接設定する必要があります。このサービスでは、サブアカウントの高度なアカウント レベルでポイント プログラムを管理することはできません。販売者のアカウントへのアクセス権を付与されたサードパーティのポイント プログラム プロバイダは、販売者の代わりにプログラムを管理できます。
  • 編集審査: ロイヤリティ プログラムを作成または更新すると、プログラムは審査を受けます。review_result.review_status フィールドは、プログラムが UNDER_REVIEWAPPROVED、または REJECTED かどうかを示します。
  • サポートされている地域: 販売者のポイント プログラムは、オーストラリア、ブラジル、カナダ、フランス、ドイツ、インド、イタリア、メキシコ、オランダ、韓国、スペイン、英国、米国などのサポートされている国でご利用いただけます。
  • ティアの要件: ティアには、参加費が無料のもの、メンバーシップ料金が必要なもの、利用額のしきい値が必要なもの、販売者ブランドのクレジット カードが必要なものがあります。職業に基づく階層(学生や軍人の階層など)はサポートされていません。
  • 特典とメリット: プログラムでは、送料無料、利用可能なポイント、メンバー価格がサポートされています。広告でメンバー価格を表示するには、通常価格またはセール価格から 5% または 5 通貨単位以上の割引が必要です。

前提条件

Merchant API でポイント プログラムを管理する前に、次の要件を満たしていることを確認してください。

  • 有効な Merchant Center アカウントが必要です(サードパーティのポイント プログラム プロバイダの場合は、販売者のアカウントへの承認済みアクセス権が必要です)。
  • アカウントのポイント プログラム アドオンを有効にします。アドオンは、次のいずれかの方法で有効にできます。

Programs サブ 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 を指定すると、リソース nameaccounts/{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} はアカウント 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 を使用すると、更新するフィールドを正確に指定できます。マスクにリストされているフィールドのみが変更され、リストされていないフィールドは変更されません。更新マスクから省略されたフィールドは、リクエスト本文で指定されていても無視されます。

次のサンプル リクエストでは、programDescriptionsadvancedSettings のみが更新されます。

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"
}

この例では、signupUrlupdate_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}

成功すると、レスポンスの本文は空になります。

次のステップ