ユーザー ポイント プログラムへの登録とパスのアップグレード

ポイント プログラムの登録とログイン機能により、ユーザーはポイント プログラムを検索し、Google ウォレットから直接参加するか自分のアカウントにログインできます。ユーザーはモバイル向けウェブサイトに案内され、プロセスを完了すると、公式カードを Google ウォレットに追加できます。

この機能を実装することは、ユーザーが追加した「静的」パスを API リンクの「動的」パスに変換するための前提条件です。このガイドでは、ポイント プログラムを登録、ログイン、パスのアップグレードで有効にするために必要なメリットと実装手順の概要を説明します。

概要

開始するには、プロジェクトを以前に設定しており、Google Wallet API にアクセスできることを確認します。

次の 4 つのステップに従って、機能を実装する必要があります。

  1. テストクラスを設定する: フローをテストするために Google ウォレットを設定します。
  2. ページを開発する: Google ウォレットの SharedDataType を使用して登録ページ/ログインページを作成します。
  3. プッシュバックを実装する: アクション後にポイントカードを Google ウォレットに送信します。
  4. 確認をリクエストする: 審査のために送信し、アップグレードの有効化をリクエストします。

ポイント プログラムの登録を実装する理由

この統合の価値を理解するには、Google ウォレットに存在する 2 種類のパス(L1(ユーザー追加)と L2(パートナー発行))を区別することが重要です。

L1 と L2 の違い

機能 L1 Pass(ユーザー追加) L2 合格(パートナー発行)
送信元 ユーザーが物理的なカードを手動でスキャンするか、番号を入力したときに作成されます。 ユーザーがフローを使用して登録またはログインした後に、Wallet API を使用して作成、プッシュされます。
管理 Static. パートナーはこのパスを表示したり制御したりすることはできません。 動的。パートナーは API を使用して完全に制御できます。
機能 バーコードの静止画像。この設定は変更できません。 ポイント残高やメンバーシップ ステータスの更新、パーソナライズされた特典の表示、通知の受信が可能です。

アップグレード パス: プログラムへの「橋」

ロイヤルティ登録フロー(「宛先」)を構築することで、Google はユーザーを静的な L1 パスから公式の L2 パスにアップグレードする「ブリッジ」を構築できるようになります。アップグレードの主なトリガーは次の 2 つです。

  1. L1 から L2 へのパスのアップグレード: ユーザーが以前にカード(L1)を手動で追加している場合、Google ウォレットで新しいログイン フローにアクセスして公式の動的パス(L2)にアップグレードするよう求めるメッセージが表示されます。
  2. Gmail からインポートされたパスのアップグレード: Google ウォレットがユーザーの Gmail を使用しているポイントカードを検出した場合、ユーザーにフローにアクセスして認証を受け、公式の L2 パスを取得するよう促すことができます。

ステップ 1: Google ウォレットでテストクラスを設定する

登録 URL とログイン URL、プログラムロゴ、選択したユーザー フィールドを決定します。次に、loyaltyclass の discoverableProgram ネスト フィールドを使用して、適切な値を設定します。

discoverableProgram に値を設定して、登録とログインに対応したポイント プログラムのドラフト版を作成します。テスターがこれを表示するには、テスターが Google Pay and Wallet Console にアクセスできる必要があります。Google Pay and Wallet Console へのアクセスを他のユーザーと共有する方法の詳細については、ユーザーページの詳細をご覧ください。

開発プロセス中に実装機能の検証を完了するには、Google Pay and Wallet Console のお問い合わせウィジェットを使用して Google にご連絡ください。コンソールのトピックで [Google Wallet API] を選択し、サブトピックで [ポイント プログラムへのログイン/登録] を選択してください。

ステップ 2: 登録ページとログインページを開発する

ユーザーがポイント プログラムにログインまたは登録することを選択すると、ユーザーは登録またはログインのプロセスを完了するために、ウェブサイト上のユーザーに合わせたページに案内されます。ユーザーが登録を選択した場合、Google ウォレットはユーザーデータの共有を承認するようユーザーにリクエストします。

ユーザーがこれらの操作を完了できるように、次の 2 つのページのいずれかまたは両方を用意する必要があります。

  1. ユーザーが既存のアカウントにログインできるログイン URL。
  2. ユーザーが新しいアカウントを作成できる登録 URL。

ログインページと登録ページは、次の要件を満たしている必要があります。

  • モバイル向けのユーザー エクスペリエンスを提供します。
  • 登録プロセスでの必須フィールドの数を最小限に抑えます。
  • ユーザーがログインまたは登録を 1 つのページ内で完了できるようにします。
  • HTTPS 暗号化を有効な証明書とともに使用して、ユーザーデータが安全に送信されるようにします。
  • ログインページと登録ページの稼働時間を 99.9% 以上にします。

上記の要件に加え、ユーザーがフォームに記入したり利用規約への同意のためにページを開いておいたりしなくても、ポイント プログラムに登録できるようにすることをおすすめします。

  • SharedDataType で提供されるユーザーデータを利用することで、アカウントを作成してポイントカードをすぐにプッシュバックできます。
  • その後、ワンタイム パスワード、またはパスワードとオプションのアカウント詳細を構成するためのリンクをユーザーにメールで送信できます。
  • これにより、ユーザーが登録プロセスを放棄する可能性が減ります。ステップが増えると、離脱の増加につながります。

ログインページまたは登録ページを表示するときに、Google ウォレットは Android WebView を作成し、指定された URL に対して POST リクエストが行われます。ユーザーデータはパラメータ SharedDataType で提供されます。これは Content-Type が application/x-www-form-urlencoded で UTF-8 エンコードの POST リクエストに含まれています。SharedDataType パラメータの値は、Base64 でエンコードされた JSON オブジェクトです。

ユーザーが選択した操作と、ユーザーにリクエストするために指定されているフィールドに応じて、JSON オブジェクトには次のフィールドが含まれます。

フィールド 登録
メール ✓
firstName ✓
lastName ✓
addressLine [1-3] ✓
city ✓
state ✓
zipcode ✓
country ✓
スマートフォン ✓

SharedDataType に含まれる JSON オブジェクトのデコードされたサンプルについては、以下をご覧ください。

リソース

{
  "firstName": "Jane",
  "lastName": "Doe",
  "addressLine1": "1600 Amphitheatre Pkwy",
  "addressLine2": "Apt 123",
  "addressLine3": "Attn:Jane",
  "city": "Mountain View",
  "state": "CA",
  "zipcode": "94043",
  "country": "US",
  "email": "jane.doe@example.com",
  "phone": "555-555-5555"
}

ステップ 3: Google ウォレットへの即時プッシュバックを実装する

認証(ログイン)またはアカウント作成(登録)後、ページはユーザーのポイントカードを Google ウォレットにすぐにプッシュバックする必要があります。

ポイントカードを Google ウォレットにプッシュバックするには、以下の構造に従ったリンクにリダイレクトします。

https://pay.google.com/gp/v/save/{jwt_generated}

URL に安全に使用できる長さは 2,000 文字です。リンクがこの上限を超えないようにしてください。JWT でエンコードされるオブジェクトは小さくし、ユーザー固有のデータのみが含まれるようにします。JWT を作成する前に、できる限りのデータをオブジェクトのクラスに保存してください。上限を超えてしまう大きなオブジェクトについては、Google Wallet API でオブジェクトを作成してから、オブジェクト ID のみを JWT で送信することを検討してください。

一般的な通信フロー

ユーザーが登録またはログインを完了する通信フローを次の図に示します。「Your Server」間のすべての操作を実装する必要があります。

登録とログインのフロー

ステップ 4: 確認と有効化をリクエストする

開発作業を完了し、登録フローとログインフローをテストしたら、実装の審査と完全な有効化をリクエストする必要があります。

  1. Google Pay and Wallet Console に移動します。
  2. サポートにお問い合わせウィジェットを使用します。
  3. ポイント登録の統合が完了したことをサポートチームに伝えます。

Google ウォレット アプリとの組み合わせで正しい機能を確認する実装の完全なレビューの後に、このポイント プログラムの登録/ログイン機能が一般公開されます。

最適なユーザー エクスペリエンスのために、登録/ログインの実装のチェックが繰り返し行われ、機能要件の継続的な遵守が確認されます。相違がある場合には通知され、問題が解決されるまでログイン/登録機能が無効になる可能性があります。

よくある質問

  • ポイント プログラムで使用する画像に要件はありますか? はい。画像は HTTPS の場所でホストされている必要があります。そうしないと、Google ウォレットでは表示されません。

  • JWT の実装とデバッグが簡単になるツールはありますか?はい。www.jwt.io などのプラットフォームでは、開発プロセス中にトークンのデコードやデバッグを行うことができるため、送信するコンテンツを確認できます。ただし、Google との提携関係はなく、そのようなサードパーティを特におすすめするわけではありません。

  • Base64 でエンコードされた SharedDataType データを正しく処理するにはどうすればよいですか?プロセス全体で UTF-8 エンコードを使用してください。JSON 文字列は最初に UTF-8 でエンコードされ、その後 android.util.Base64 を使用してエンコードされます(NO_WRAP と URL_SAFE オプションを使用)。これは RFC 3548 セクション 4 に対応しています。