创建简短的推荐人链接
生成简短、可共享的推荐人链接,以实现用户到用户归因并跟踪来自有机推荐的应用程序安装。
版本要求:此功能需要 SDK 11.0.8 或更高版本。短链接在创建后 30 天内保持有效。
概述
什么是短推荐人链接
短链接将冗长、充满参数的奇异链接转换为简洁、安全的 URL,便于通过短信、社交媒体或应用程序内的邀请进行分享。
动态创建短链接,以便用户与朋友分享,邀请他们下载和使用您的应用程序。每个短链接都会跟踪推荐用户,使您能够衡量病毒式增长,并将新安装归功于特定的拥护者。
实施要求
所需组件
在创建推荐人短链接之前,请先收集这些元素:
- 单一链接:引导用户下载应用程序的基本跟踪链接。有关设置说明,请参阅奇异链接常见问题
- 动态参数:用于为链接添加上下文的可选自定义参数。查看跟踪链接参数中的可用选项
- 推荐人信息:分享链接的用户的姓名和 ID,以便将新安装归因于推荐人
SDK 方法
创建推荐人短链接
生成带有自定义参数和成功与错误状态回调处理程序的短链接。
方法签名:
+ (void)createReferrerShortLink:(NSString *)baseLink
referrerName:(NSString *)referrerName
referrerId:(NSString *)referrerId
passthroughParams:(NSDictionary *)passthroughParams
completionHandler:(void(^)(NSString *, NSError *))completionHandler;
参数:
- baseLink:原始奇异跟踪链接 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 和详细信息
- 与会者跟踪:衡量活动之间的病毒传播
- 网络效应:识别转换率最高的活动