当用户通过完成任务获得货币时,Tapjoy 会向您指定的回调 URL 发送 HTTP GET 请求。该请求包含以下参数:
snuid
:用户 ID。
currency
:要向用户帐户添加的货币数量。
mac_address
:用户的 Wi-Fi MAC 地址(如果可用)。
请参阅以下回调示例:
<callback_url>?snuid=<user_id>¤cy=<currency>&mac_address=<mac_address> // Example http://www.sampledoman.com/payments/offers/tapjoy?&snuid=42¤cy=50&mac_address=00-16-41-34-2C-A6
如果未设置,Tapjoy 默认使用设备 ID(通常为广告 ID),该 ID 可能因 SDK 版本、设备或操作系统而异。以下代码示例演示了如何使用 connect 标志,以及必要时如何直接调用 setUserID API(连接后)。直接调用该 API 时,请使用回调来确保已成功设置 ID。最好是尽可能使用 connect 标志。
// Recommended approach using connect flagNSDictionary *connectFlags = @{TJC_OPTION_USER_ID : @"<USER_ID_HERE>"};[Tapjoy connect:@"SDK_KEY_GOES_HERE" options:connectFlags];// Setting the user id directly[Tapjoy setUserIDWithCompletion:@"<USER_ID_HERE>" completion:^(BOOL success, NSError *error) {}];
// Recommended approach using connect flagHashtable<String, Object> connectFlags = new Hashtable<String, Object>();connectFlags.put(TapjoyConnectFlag.USER_ID, "<USER_ID_HERE>"); // Important for self-managed currencyTapjoy.connect(getApplicationContext(), "SDK_KEY_GOES_HERE", connectFlags, new TJConnectListener() {...});// Setting the user id directlyTapjoy.setUserID("<USER_ID_HERE>", new TJSetUserIDListener() { @Override public void onSetUserIDSuccess() { } @Override public void onSetUserIDFailure(String error) { }});
// Recommended approach using connect flagDictionary<string,string> connectFlags = new Dictionary<string,string>();connectFlags.Add("TJC_OPTION_USER_ID", "<USER_ID_HERE>");#if UNITY_ANDROID Tapjoy.Connect("your_android_sdk_key", connectFlags);#elif UNITY_IOS Tapjoy.Connect("your_ios_sdk_key", connectFlags);#endif// Callbacks for SetUserIDTJPlacement.OnSetUserIDSuccess += HandleOnSetUserIDSuccess;TJPlacement.OnSetUserIDFailure += HandleOnSetUserIDFailure;// Setting the user id directlyTapjoy.SetUserID("<USER_ID_HERE>")
// Recommended approach using connect flagtry { let flags: object = { TJC_OPTION_USER_ID: '<userId>' }; await Tapjoy.connect('<sdk_key>', flags);} catch (error) { console.log(error);}// Setting the user id directlytry { await Tapjoy.setUserId('<userId>');} catch (error) { console.log(error);}
let placement = new TJPlacement('placementName');try {await offerwallPlacement?.setRequiredAmount(100, '100');} catch (e: any) { let code = e.code; let message = e.message;}
。如果未设置用户 ID,系统将尝试使用可用的最优设备 ID。通常情况下,这个 ID 值就是设备的广告 ID。但是,根据 SDK 版本、设备型号/版本、设备操作系统 (OS) 版本和 Google Play 服务,具体的 ID 可能会有所不同。其他可能的值包括 Android ID、udid 和 mac_address。