Adapty Mail のメール送信先
すべてのキャンペーンには、受信者を誘導する場所が必要です。その場所がメール送信先です。名前、URL、タイプを一度設定すれば、複数のキャンペーンで再利用できます。
キャンペーンは必ず1つのリンク先を指定し、メール内のすべてのクリック可能な要素(CTAボタン、ロゴ、ヒーロー画像)がそのリンク先につながります。それぞれのクリックはアナリティクスで個別に記録されますが、リンク先のURLは共通です。
デスティネーションタイプ
キャンペーンの目的によって、デスティネーションタイプが決まります。作成後にデスティネーションタイプを変更することはできません。
| タイプ | 対応キャンペーン | 受信者の遷移先 | URLの取得元 |
|---|---|---|---|
| Web Paywall | すべてのマーケティングキャンペーン、およびダブルオプトイン | ブラウザ上のチェックアウトページ。購入はApp StoreやGoogle Playではなくウェブ決済として処理されます。 | Adapty Mailが生成するか、ご自身がホストするペイウォールのURLを貼り付けます。チェックアウトの設定で両方の方法を説明しています。 |
| Deep Link | アプリのアクティベーション | アプリ内の指定した画面。アプリがインストールされていない場合はストアのリスティングページに遷移します。 | リンクプロバイダー(OneLink、Branch、Firebase)から取得したURLを貼り付けます。 |
| Cancellation Page | キャンセルページキャンペーン | 独自のアカウントページ、または請求プロバイダーのポータル。サブスクライバーがサブスクリプションの確認・変更・キャンセルを行う場所です。 | 独自サイトまたは請求プロバイダーのURLを貼り付けます。 |
送信先URLは、HTTPSを使用していれば何でも有効です。そのため、Cancellation PageにはWebページだけでなく、アプリを開くユニバーサルリンクも使用できます。App StoreやGoogle Playのサブスクリプションはあなたがホストするページではなくストアでキャンセルされるため、この点は重要です。
トランザクションキャンペーンの送信先
Adapty Mail には、3つのトランザクションキャンペーンがあります:
- Double opt-in — 新しいプロファイルがエントリーポイントから登録されると送信されます。ボタンをクリックすると Adapty Mail の確認ページが開きます。受信者が確認を完了すると、Webペイウォールへ誘導されます。そのため、このキャンペーンにはWebペイウォールが必要です。
- App activation — 購入後に送信され、購入者をアプリへ誘導します。
- Cancellation page — 購入後に送信され、購入者にサブスクリプション管理画面を提供します。
キャンペーンを作成する際、Email Destination ドロップダウンが空の場合は、そのタイプのデスティネーションがまだ存在しないことを意味します。Create リンクをクリックすると、対応するフォームが開きます。
送信先の作成
- Email Destinations に移動し、キャンペーンに必要なタイプを選択します。
- Create をクリックします。
- 送信先に Name を設定します。キャンペーンに紐付ける際にこの名前で選択します。
- URL を入力します。HTTPS を使用する必要があります。
- 受信者ごとに異なる値にはプレースホルダーを追加します。
- URL に
{response.<key>}プレースホルダーを使用する場合は、Advanced の下に Hook URL を追加します。 - Save をクリックします。
キャンペーンに追加した送信先の設定は読み取り専用になります(下書きのキャンペーンに追加した場合も同様です)。別の送信先にキャンペーンを送る場合は、新しい送信先を作成してください。
プレースホルダー
プレースホルダーを使うと、ユーザーごとに宛先URLをパーソナライズできます。プレースホルダーがなければ、ページは誰が訪問したかを判別できません。Adapty Mailはプレースホルダーを受信者固有の値に自動で置き換えます。
| プレースホルダー | 解決される内容 |
|---|---|
{email} | 受信者のメールアドレス。 |
{adapty.external_profile_id} | Adapty連携からのデータに使用するプロファイルID。 |
{funnelfox.external_profile_id} | FunnelFoxからのデータに使用するプロファイルID。 |
{custom.external_profile_id} | Adapty Mail APIからのデータに使用する、送信したユーザーID。 |
{scheduled_email_id} | リンクを含むメールのID。 |
{custom_attribute.<key>} | 受信者のプロファイルに設定されたカスタム属性。キー名は任意に指定できます — {custom_attribute.plan}。 |
{response.<key>} | クリック時に自分のエンドポイントが返す値。詳細はフックを参照。 |
- 受信者に値がないプレースホルダーは空文字列になるため、リテラルテキストとしてページに渡ることはありません。
- カスタム属性とフックの値はパーセントエンコードされるため、
&を含む値によってURLが途中で切れることはありません。 - Adapty Mail が認識しないプレースホルダーは保存をブロックし、エラーメッセージには拒否された内容と受け入れ可能な内容の両方が表示されます。
{emial}のようなタイポはここで検出され、受信者のブラウザに届くことはありません。
フック
{response.<key>} プレースホルダーは、独自のエンドポイントから取得した値のための領域を確保します。一般的な用途としては、ワンタイムサインイントークンやセッション署名などがあります。このプレースホルダーを使用するには、Advanced 内で新しい Hook URL を作成してください — 設定しないと、URLを保存できません。
仕組み:
- 受信者がメール内のリンクをクリックします。
- Adapty Mail は受信者の情報でプレースホルダーを埋めて、Hook URL に GET リクエストを送信します。タイムアウトは5秒で、試行回数は1回のみです。
- エンドポイントが署名を検証し、フラットな JSON オブジェクトで返答します。
- Adapty Mail は各
{response.<key>}を同名のキーの値で埋めます。返されなかったキーはプレースホルダーのまま残ります。 - フックが応答したかどうかにかかわらず、受信者はあなたのページに到達します。
リクエスト
フックURLはプレースホルダーの残りの部分をエンドポイントに転送します。これらのプレースホルダーを使用してユーザーを識別してください。2つのヘッダーで呼び出しを認証します:
| ヘッダー | 値 |
|---|---|
X-Adapty-Mail-Timestamp | リクエストが行われたときのUnix時間(秒単位)。 |
X-Adapty-Mail-Signature | <timestamp>.<url> のHex HMAC-SHA256。Settings > Project の Secret key をキーとして使用。 |
応答する前に両方を検証してください。署名のないエンドポイントは、権限のないユーザーに機密情報を渡してしまう可能性があります。ライブクリックとして有効でないほど古いタイムスタンプは拒否してください:
expected = hmac_sha256(
key=project_secret_key,
message=f"{timestamp}.{full_request_url}",
).hexdigest()
レスポンス
フラットな JSON オブジェクトです。各キーは同名の {response.<key>} に埋め込まれます。
{ "checkout_token": "ct_9f2a…", "plan": "annual" }
値の型が文字列・数値・真偽値の場合はすべて文字列として扱われます。ネストされたオブジェクトや配列は、URL に埋め込む方法がないため除外されます。
クリック後の動作
Adapty Mail は値を埋め込み、フックが設定されている場合はそれを呼び出し、クリックを記録してから、受信者をあなたのページへ送ります。
あなたの役割は、訪問者を識別し、決済を処理し、購入内容を Adapty に報告することです。ペイウォールの設定については チェックアウトのセットアップ を、購入のアトリビューションについては キャンペーン分析 をご覧ください。