Facebook SDK for Unity在初始化之前进行调用

时间:2017-09-27 23:02:16

标签: ios facebook unity3d facebook-unity-sdk

我开发了一个使用Facebook SDK的Unity应用程序。一切都很顺利,除了我看到流量离开我的应用程序,甚至在我正式初始化Facebook SDK之前就将advertiser_id信息发送到Facebook。

如果应用程序适用于13岁以下的孩子,则会导致严重问题,因为它会为不应跟踪的用户发送ID。有没有办法限制这些调用的发生,或者仅在SDK正式初始化后才发生,而不是在应用程序启动时发生?

以下是我所看到的示例调用:

POST /v2.8/XXXXXXXXXXXXXXX/activities?advertiser_id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&advertiser_tracking_enabled=1&anon_id=XXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&application_tracking_enabled=1&event=MOBILE_APP_INSTALL&extinfo=XXXXXXXXXXXXXXXXXXXXXXXX&format=json&include_headers=false&sdk=ios&url_schemes=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HTTP/1.1
Host: graph.facebook.com
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; 
Accept-Language: en-gb
Content-Length: 1378
Accept: */*
Connection: keep-alive
User-Agent: FBiOSSDK.4.17.0

sdk ios
advertiser_tracking_enabled 1
format  json
include_headers false
anon_id XXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
application_tracking_enabled    1
event   MOBILE_APP_INSTALL
extinfo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
url_schemes XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
advertiser_id   XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

显然,如果SDK尚未正式初始化,我无法关闭这些调用的跟踪。

1 个答案:

答案 0 :(得分:0)

在没有任何其他工作的情况下集成SDK会导致此问题。但是,解决它的唯一方法是直接修改XCode for iOS中的本机代码。

您必须转到文件FacebookSDK / SDK / Editor / iOS / FBUnityInterface.mm并从此处修改以下功能

- (void)didBecomeActive:(NSNotification *)notification
{
  [FBSDKAppEvents activateApp];
}

到这个

- (void)didBecomeActive:(NSNotification *)notification
{
//  [FBSDKAppEvents activateApp];
}

否则事件将在您启动应用程序时触发,而不需要年龄门。希望这有帮助