如何知道玩家是否在社交应用上分享了我的 link?

How to know if the player shared my link on a social app?

我正在使用 Unity3d 和 C# scripts/code。我刚开始使用 Yasirkula 的原生共享插件。

这是我的部分代码:

NativeShare().SetSubject( "Check out this game!" ).SetText( "Link to my app here" ).Share();

当我到达这一行时,用户会看到一个共享菜单,他可以选择任何他想要的共享应用程序。如何确保用户实际上在 Whatsapp、FaceBook、Twitter 上分享了 link 而不是使用他的剪贴板或任何其他应用程序?我只想奖励用户真正的社交分享。

为什么不看看 Facebook Unity API?

https://developers.facebook.com/docs/unity

有一个方法叫做FB.FeedShare

https://developers.facebook.com/docs/unity/reference/current/FB.FeedShare

FB.FeedShare(
    link: new Uri("Link"),
    linkName: "Oh la la",
    callback: Callback
);

还有一个叫FB.ShareLink

https://developers.facebook.com/docs/unity/reference/current/FB.ShareLink

FB.ShareLink(
    new Uri("Link"),
    callback: Callback
);

查看这两个的回调参数,IShareResult,它有一个 bool Cancelled 和一个 string PostId

所以你可以这样做

void Callback(IShareResult result)
{
    if (result.Cancelled || result.PostId == null)
    {
        Debug.Log("No reward for you");
    }            
}

我说可能,因为我自己没有测试过。

很多营销电子邮件都使用这种技术来跟踪电子邮件状态:

最初的想法是在 URL 中放置一个参数,当此 URL 用于访问您的应用程序时,它将被共享和跟踪。

该参数可以是包含有用信息的加密随机数。当您收到带有 URL 的请求时,您会解密随机数并使用此数据来识别共享 link.

的用户

Here 您可以研究如何将此模式应用于跟踪电子邮件状态(打开、已读等...)

Native Share 有一种方法可以选择您要与之共享的应用程序,但它仅限 Android:

// Share on WhatsApp only, if installed (Android only)
if( NativeShare.TargetExists( "com.whatsapp" ) )
        new NativeShare().AddFile( filePath ).SetText( "Hello world!" ).SetTarget( "com.whatsapp" ).Share();

有了这个,您可以为每个您希望允许用户共享的应用制作一个按钮,防止与非社交应用共享。我认为这是最接近你想要的东西了。

不幸的是,我不知道 iOS 和 cancel/back 按钮是否有任何解决方法。

一个开箱即用的想法:

NativeShare().SetSubject( "Check out this game!" ).SetText( "Link to my app here" ).Share();

进入

NativeShare().SetSubject( "Check out this game!" ).SetText( "Link to my app here #trackablehashtag" ).Share();

然后您可以通过搜索您的主题标签来爬取社交网络,或使用内置的社交媒体营销工具来跟踪趋势。虽然这可能不是您问题的完整解决方案,但它可能有一些额外的好处,完整的解决方案可能无法自行创建。