紹介コードの入力欄
動画(TikTok・YouTube など)では、説明欄にリンクを置けないことが多く、「動画でコードを伝え、ユーザーがアプリで入力する」のが主な流れになります。入力欄がないアプリでは、こうした紹介を 1 件も計測できません。
入力欄は、次の 3 つの形から選べます(以下は Swift の例です)。
a. 画面に直接置く
ペイウォール・設定・オンボーディングなど、どこにでも置けます。
CreatorCodeInputView(rcAppUserID: Purchases.shared.appUserID) { _ in
// 適用が完了したとき(RevenueCat の属性を設定し直す)
Purchases.shared.attribution.setAttributes(GoAlong.attributionAttributes)
} onSkip: {
// 「あとで」を押したとき
}
入力欄は次のように動きます。
- 入力されたコードを確認し、特典があれば「このコードで ◯◯」と「このコードを使う」を表示します
- 紹介リンクを貼り付けると、コードだけを取り出して自動で適用します
- 別の紹介コードが適用済みなら「このコードに変更する」を表示します
- 誰の紹介かはユーザーに表示しません。紹介の取り消しは API(
GoAlong.removeReferral())で行えます
React Native では <CreatorCodeInput />、Flutter では CreatorCodeInput ウィジェットが同じ動きをします。ベータ版で報酬の対象になるのは iOS(App Store)での購入です。Android(Google Play)は対応予定です。
b. ボタンから開く
@State private var showCode = false
Button("紹介コードを入力") { showCode = true }
.goAlongCodeSheet(isPresented: $showCode, rcAppUserID: Purchases.shared.appUserID)
iOS 16 以降ではハーフモーダルで表示されます。
c. デザインを自作する
状態を管理する CreatorCodeModel に、独自の画面を組み合わせます。
@StateObject var model = CreatorCodeModel(rcAppUserID: Purchases.shared.appUserID)
TextField("コード", text: $model.code)
Button("このコードを使う") { Task { await model.apply() } }
// model.phase(.checking / .valid / .applying / .failed / .done)に応じて表示を切り替える
別の紹介コードがすでに適用されている場合は、model.phase が .failed(.conflict(current:)) になります。「別の紹介コードが適用済みです」と伝え、ユーザーが変更を選んだら model.apply(confirmReplace: true) を呼んでください。黙って上書きしないための仕組みです。
見た目と文言
既定はモノクロで、ライト・ダークの両方に対応しています。色・角丸・文言は GoAlongTheme と Labels で変えられます。
var theme = GoAlongTheme()
theme.accent = Color("ReferralAccent") // Asset Catalog の色(ライト/ダークを定義)
theme.onAccent = Color("ReferralOnAccent") // accent の上の文字色。必ずペアで指定
var labels = CreatorCodeInputView.Labels()
labels.title = "招待コード"
CreatorCodeInputView(labels: labels, theme: theme, ...) { _ in }
入力欄に紹介リンクをそのまま貼り付けても、コードだけを取り出して適用します。
初回画面の入口(おすすめ)
動画では「設定画面を開いて…」まで伝えられないため、アプリの方から聞くのが効果的です。ReferralEntryView は状況に応じて出し方を変えます。
ReferralEntryView(rcAppUserID: Purchases.shared.appUserID) { creator in
// 適用が完了したとき
}
| 状況 | 表示 |
|---|---|
| 紹介を適用済み・有効な購読がある | 何も表示しない |
| クリップボードに紹介リンクの手がかりがある | 入力欄を開いた状態で表示 |
| 使える紹介コードが 1 つもない(インフルエンサーがまだコードを発行していないなど) | 何も表示しない |
| 使える紹介コードがあり、手がかりがない | 小さな入口(既定の文言は「紹介コードを入力する」) |
既定の文言は、アプリが表示している言語に合わせて日本語・英語・韓国語・繁体字中国語で表示されます(iOS SDK 0.2.0 以降。それ以外の言語は英語)。文言は Labels で差し替えられます。
使える紹介コードがあるかは GoAlong のサーバーが判定します。募集を停止していても、参加中のインフルエンサーのコードが有効なら入口は表示されます。
有効な購読があるユーザーは対象外
いま有効な購読を持っているユーザーには、紹介コードを適用できません。紹介は新しいユーザーを連れてきた対価であるためです(解約して購読が切れたユーザーは対象になります)。Swift 版は SDK が端末の StoreKit で判定するため、アプリ側の実装は不要です。React Native・Flutter 版は、configure の isActiveSubscriber で判定します(SDK の導入)。対象外のユーザーには「すでにご利用中のため、紹介コードはご利用いただけません」と表示されます。