Можно ли отслеживать установку приложений с помощью Facebook Unity SDK без входа пользователя в Facebook? - PullRequest
0 голосов
/ 01 ноября 2018

Я прочитал похожие вопросы, и они, похоже, не охватывают именно эту проблему. В основном я пытаюсь настроить маркетинговую кампанию в Facebook с целью отслеживания установок приложений. Facebook рекомендует использовать их SDK для получения точной информации об установках приложений, но я не хочу предлагать пользователю войти в Facebook в моем приложении. Можно ли установить приложение facebook sdk track без входа пользователей? Согласно Facebook, их API автоматически отслеживает установки приложений, но, похоже, что в сценарии их инициализации mainmenu.cs требуется вход на Facebook.

1 Ответ

0 голосов
/ 02 ноября 2018

Хорошо, поэтому я в основном создал постоянный игровой объект в моей первой сцене и прикрепил к нему этот код. Я основал этот код на примере 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...