リファラー短縮リンクの作成
共有可能な短縮リファラーリンクを生成し、ユーザー間のアトリビューションを 可能にして、オーガニックなリファラーからのアプリインストールを追跡します。
バージョン要件: この機能には SDK バージョン 11.0.8 以上が必要です。短縮リンクは作成後 30 日間 有効です。
概要
リファラー短縮リンクとは
短縮リンクは、パラメータが多く長い Singular Links を、SMS、ソーシャル メディア、またはアプリ内招待で共有しやすいコンパクトで安全な URL に変換します。
短縮リンクを動的に作成して、ユーザーが友人にアプリのダウンロードと 使用を勧めるために共有できるようにします。各短縮リンクはリファラーとなる ユーザーを追跡し、バイラル成長を測定し、新しいインストールを特定の 推奨者にアトリビューションすることを可能にします。
実装要件
必須コンポーネント
リファラー短縮リンクを作成する前に、次の要素を準備してください:
- Singular Link: ユーザーをアプリのダウンロードに誘導する ベーストラッキングリンクです。設定手順については Singular Links FAQ を参照してください
- 動的パラメータ: リンクにコンテキストを追加するための オプションのカスタムパラメータです。利用可能なオプションは Tracking Link Parameters で確認できます
- リファラー情報: 新しいインストールをリファラーに アトリビューションできるように、リンクを共有するユーザーの名前と ID
SDK メソッド
createReferrerShortLink
成功およびエラー状態用のコールバックハンドラーとカスタムパラメータを備えた リファラー短縮リンクを生成します。
メソッドシグネチャ:
+ (void)createReferrerShortLink:(NSString *)baseLink
referrerName:(NSString *)referrerName
referrerId:(NSString *)referrerId
passthroughParams:(NSDictionary *)passthroughParams
completionHandler:(void(^)(NSString *, NSError *))completionHandler;
パラメータ:
- baseLink: 元の Singular トラッキングリンク URL
- referrerName: リファラーとなるユーザーの表示名
- referrerId: リファラーとなるユーザーの一意の識別子
- passthroughParams: 追加の動的パラメータを含む NSDictionary (オプション)
- completionHandler: 短縮リンク文字列とエラーパラメータを 持つコールバックブロック
使用例
カスタムパラメータで短縮リンクを作成し、コンプリーションハンドラーで共有 ロジックを実装します。
// Define your Singular tracking link as the base link
let referrerBaseLink = "https://yourdomain.sng.link/Csfge/aknl?_dl=myscheme%3A%2F%2Fmydeeplink/referrer&_smtype=3"
// Get referrer information from user input
let referrerID = referrerIDField.text ?? "unknown_user"
let referrerName = referrerNameField.text ?? "Anonymous"
// Add custom passthrough parameters
let passthroughParams: [String: Any] = [
"channel": "sms",
"campaign_id": "summer_promo_2025",
"referral_type": "friend_invite"
]
// Generate the short referrer link
Singular.createReferrerShortLink(
referrerBaseLink,
referrerName: referrerName,
referrerId: referrerID,
passthroughParams: passthroughParams
) { shortLink, error in
if let error = error {
// Handle error - retry or show user feedback
print("Error creating short link: \(error.localizedDescription)")
// Show error message to user
let alert = UIAlertController(
title: "Error",
message: "Failed to create share link. Please try again.",
preferredStyle: .alert
)
alert.addAction(UIAlertAction(title: "OK", style: .default))
self.present(alert, animated: true)
return
}
if let shortLink = shortLink, !shortLink.isEmpty {
// Share the short link via iOS Activity Controller
let shareText = "Join me on this awesome app! \(shortLink)"
let activityVC = UIActivityViewController(
activityItems: [shareText],
applicationActivities: nil
)
// For iPad: set popover presentation controller
if let popover = activityVC.popoverPresentationController {
popover.sourceView = self.view
popover.sourceRect = CGRect(x: self.view.bounds.midX,
y: self.view.bounds.midY,
width: 0,
height: 0)
popover.permittedArrowDirections = []
}
self.present(activityVC, animated: true)
}
}
// Define your Singular tracking link as the base link
NSString *referrerBaseLink = @"https://yourdomain.sng.link/Csfge/aknl?_dl=myscheme%3A%2F%2Fmydeeplink/referrer&_smtype=3";
// Get referrer information from user input
NSString *referrerID = self.referrerIDField.text ?: @"unknown_user";
NSString *referrerName = self.referrerNameField.text ?: @"Anonymous";
// Add custom passthrough parameters
NSDictionary *passthroughParams = @{
@"channel": @"sms",
@"campaign_id": @"summer_promo_2025",
@"referral_type": @"friend_invite"
};
// Generate the short referrer link
[Singular createReferrerShortLink:referrerBaseLink
referrerName:referrerName
referrerId:referrerID
passthroughParams:passthroughParams
completionHandler:^(NSString *shortLink, NSError *error) {
if (error) {
// Handle error - retry or show user feedback
NSLog(@"Error creating short link: %@", error.localizedDescription);
// Show error message to user
UIAlertController *alert = [UIAlertController
alertControllerWithTitle:@"Error"
message:@"Failed to create share link. Please try again."
preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"OK"
style:UIAlertActionStyleDefault
handler:nil]];
[self presentViewController:alert animated:YES completion:nil];
return;
}
if (shortLink && ![shortLink isEqualToString:@""]) {
// Share the short link via iOS Activity Controller
NSString *shareText = [NSString stringWithFormat:@"Join me on this awesome app! %@", shortLink];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]
initWithActivityItems:@[shareText]
applicationActivities:nil];
// For iPad: set popover presentation controller
if (activityVC.popoverPresentationController) {
activityVC.popoverPresentationController.sourceView = self.view;
activityVC.popoverPresentationController.sourceRect = CGRectMake(
CGRectGetMidX(self.view.bounds),
CGRectGetMidY(self.view.bounds),
0, 0
);
activityVC.popoverPresentationController.permittedArrowDirections = 0;
}
[self presentViewController:activityVC animated:YES completion:nil];
}
}];
実装のベストプラクティス
エラー処理
ネットワーク障害、無効なパラメータ、またはサーバーの問題を管理するために、 コンプリーションハンドラーで堅牢なエラー処理を実装します。
- リトライロジック: 一時的なネットワークエラーに対して指数 バックオフを実装します
- ユーザーフィードバック: リンクの作成に失敗したときに明確な エラーメッセージを表示します
- フォールバックオプション: 代替の共有方法を提供します (例: 短縮リンクの作成に失敗した場合は完全な Singular Link を共有する)
-
検証:
問題を早期に検出するために
createReferrerShortLinkを呼び出す前にパラメータを確認します
トラッキングと分析
リファラー情報を活用してバイラルループを構築し、オーガニックな成長を 測定します。
ベストプラクティス: 社内のユーザー識別システムと一致する 一貫したリファラー ID を使用します。これにより、次のことが 可能になります:
- 特定のリファラーとなるユーザーに新しいインストールをアトリビューション
- 成功したリファラルに対してユーザーに報酬を提供
- バイラル係数と K-factor 指標の追跡
- 最も価値のあるブランド支持者を特定
リンクの有効期限
共有戦略において 30 日間のリンクライフサイクルを計画してください。
重要: 短縮リンクは 30 日後に期限切れになります。長期 キャンペーンや永続的な共有機能の場合は、新しい短縮リンクを定期的に 生成するか、フォールバックとして完全な Singular Link を使用してください。
一般的なユースケース
アプリ内リファラルプログラム
パーソナライズされたリファラルリンクを使用して、ユーザーがアプリから直接 友人を招待できるようにします。
- 報酬システム: リファラルを追跡し、友人のサインアップが 成功したユーザーに報酬を与えます
- ソーシャル共有: Messages、Mail、ソーシャルメディアと の iOS Activity Controller を統合します
- 個人的な招待: パーソナライゼーションのために共有 メッセージにリファラーの名前を含めます
ユーザー生成コンテンツ
ユーザーが他のユーザーと共有したいコンテンツを生成したときに共有可能な リンクを作成します。
- コンテンツアトリビューション: どのコンテンツが最も多くの アプリインストールを促進するかを追跡します
- クリエイター認知: ゲーミフィケーションのために新規 ユーザーをコンテンツクリエイターにアトリビューションします
- キャンペーンタギング: コンテンツの種類またはカテゴリに 基づいて動的パラメータを追加します
イベント招待
どの参加者が新規ユーザーを連れてくるかを追跡するイベント招待用の ユニークなリンクを生成します。
- イベントコンテキスト: リンクパラメータにイベント ID と 詳細を含めます
- 参加者追跡: イベントからイベントへのバイラル拡散を 測定します
- ネットワーク効果: 最も高いコンバージョン率のイベントを 特定します