我已经阅读了相关问题,但它们似乎并未涵盖这个确切的问题。基本上,我试图设置一个Facebook营销活动,目标是跟踪应用安装。 Facebook建议使用他们的SDK获取有关应用安装的准确信息,但是我不想提示用户在我的应用中登录Facebook。是否可以在没有用户登录的情况下安装facebook sdk track app?根据facebook的说法,他们的api会自动跟踪应用安装,但是在其名为mainmenu.cs的初始化脚本中,似乎要求有Facebook登录名。
答案 0 :(得分:0)
好吧,我要做的基本上是在我的第一个场景中创建一个持久性游戏对象,并将此代码附加到该对象上。我基于Facebook示例https://developers.facebook.com/docs/app-events/unity编写了此代码,但添加了一些其他检查,因此不会两次调用FB.Init()。我还添加了一个协程,它将等待激活事件直到FB.Init()完成,因为FB.Init()是一个异步函数。希望它能对任何人有帮助。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Facebook.Unity;
public class FacebookTracker : MonoBehaviour {
private static FacebookTracker instance;
private bool initCalled;
private void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject);
} else
{
Destroy(gameObject);
}
if (FB.IsInitialized == false && initCalled == false)
{
FB.Init();
initCalled = true;
}
}
private void OnApplicationPause(bool pause)
{
Debug.Log("OnApplicationPause = " + pause);
if (pause == false)
{
if (FB.IsInitialized == true)
{
FB.ActivateApp();
} else
{
if (initCalled == false)
{
FB.Init();
initCalled = true;
}
StartCoroutine(ActivateEvent());
}
}
}
private IEnumerator ActivateEvent()
{
yield return new WaitUntil(() => FB.IsInitialized == true);
Debug.Log("Facebook Activate Event Logged");
FB.ActivateApp();
}
}