短いリファラーリンクの作成
ユーザー間のアトリビューションを可能にし、オーガニックな紹介からのアプリのインストールを追跡する、共有可能な短いリファラーリンクを生成します。
バージョン要件この機能を使用するには、SDKバージョン11.0.8以降が必要です。短いリンクは、作成後30日間有効です。
概要
ショートリファラーリンクとは
ショートリンクは、長い、パラメータいっぱいのシンギュラーリンクを、SMS、ソーシャルメディア、アプリ内招待で共有するのに便利な、コンパクトで安全なURLに変換します。
ショートリンクを動的に作成することで、ユーザーがお友達と共有し、アプリのダウンロードや使用を招待することができます。各ショートリンクは参照ユーザーを追跡するので、バイラルの成長を測定し、新規インストールを特定の支持者に帰属させることができます。
実装要件
必要なコンポーネント
ショートリファラーリンクを作成する前に、これらの要素を集めてください:
- 単一リンク:アプリのダウンロードにユーザーを誘導するベーストラッキングリンク。設定方法については、Singular Links FAQを参照してください。
- 動的パラメータ:リンクにコンテキストを追加するオプションのカスタムパラメータ。トラッキングリンクパラメータで利用可能なオプションを見る
- リファラー情報:リンクを共有するユーザーの名前と 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];
}
}];
実装のベストプラクティス
エラーハンドリング
ネットワーク障害、無効なパラメータ、またはサーバーの問題を管理するために、完了ハンドラで堅牢なエラー処理を実装します。
- 再試行ロジック:一過性のネットワークエラーに対する指数関数的バックオフを実装する。
- ユーザーフィードバック:リンク作成失敗時に明確なエラーメッセージを表示
- フォールバック・オプション:代替共有方法の提供(例:短いリンク作成に失敗した場合、完全なシンギュラーリンクを共有する
-
検証:問題を早期に発見するために、
createReferrerShortLinkを呼び出す前にパラメータを検証します。
トラッキングと分析
リファラー情報を活用して、バイラルループを構築し、オーガニックな成長を測定する。
ベストプラクティス社内のユーザー識別システムと一致する一貫したリファラーIDを使用する。これにより、次のことが可能になります:
- 新規インストールを特定の参照ユーザーに帰属させる。
- 紹介に成功したユーザーに報酬を与える
- バイラル係数とKファクターメトリクスの追跡
- 最も価値のあるブランド支持者を特定
リンクの有効期限
共有戦略において、30日間のリンクライフサイクルを計画する。
重要:ショートリンクは30日で失効します。長期的なキャンペーンや永続的な共有機能の場合は、定期的に新しいショートリンクを生成するか、予備として完全なシンギュラーリンクを使用してください。
一般的な使用例
アプリ内紹介プログラム
パーソナライズされた紹介リンクを使って、ユーザーがアプリから直接友達を招待できるようにします。
- 報酬システム:紹介者を追跡し、友達登録に成功したユーザーに報酬を与えます。
- ソーシャル共有:メッセージ、メール、ソーシャルメディア用のiOSアクティビティコントローラと統合します。
- パーソナライズされた招待:パーソナライズするために、紹介者の名前を共有メッセージに含めることができます。
ユーザー生成コンテンツ
ユーザーが他のユーザーと共有したいコンテンツを作成すると、共有可能なリンクを作成します。
- コンテンツのアトリビューション:どのコンテンツが最もアプリのインストールを促進したかを追跡
- クリエイターの認識:新規ユーザーをコンテンツ作成者に帰属させ、ゲーミフィケーションを実現します。
- キャンペーンタグ付け:コンテンツの種類やカテゴリーに基づいた動的なパラメータを追加
イベント招待
どの出席者が新規ユーザーを連れてきたかを追跡するイベント招待用のユニークなリンクを生成します。
- イベントコンテキスト:リンクパラメータにイベントIDと詳細を含める
- 参加者のトラッキング:イベントからイベントへのバイラル拡散を測定
- ネットワーク効果:コンバージョン率の高いイベントを特定