# 常见问题解答

> 查找有关 Tapjoy Offerwall 集成、设置和故障排除的常见问题解答。

## 一般问题##general-questions

### Google 大小支持要求##google-size-support-requirement

**What do I need to know about Google's 16 KB page size support requirement for November 1st, 2025, and how does it affect your SDKs?:**

Google 现要求所有以 Android 15 或更高版本为目标且包含 C++ 库的应用，必须在 2025 年 11 月 1 日前支持 16 KB 页面大小。
Tapjoy SDK 从 14.1.0 版本起支持 16 KB 页面大小。如果使用的是旧版本，建议更新到最新的 Tapjoy SDK 版本以确保合规。

### TapjoySDK 证书过期##tapjoysdk-certificate-expired

**What does it mean when the TapjoySDK certificate has expired or been revoked in Xcode?:**

从 Tapjoy SDK 13.3.0 开始，已使用 Tapjoy Inc. Apple 证书对框架进行签名，旨在验证框架的真实性。但是，证书会过期，有时也可能被吊销，因此应尝试更新到最新版本的 SDK。

证书详细信息：

* Team Name（团队名称）：Tapjoy, Inc.
* Team ID（团队 ID）：VLCPHQMND2
* Kind（种类）：Apple Developer Program

Tapjoy 还可能对一些框架重新签名以延长其生命周期，如果是这种情况，您可能需要清除缓存并尝试再次集成，为此请使用以下命令：

1. **Cocoapods integrations**

   ```text title="Cocoapods"
   pod cache clean TapjoySDK --all
   ```

2. **Swift Package Manager integrations**

   ```text title="Swift Package Manager"
   rm -rf ~/Library/Caches/org.swift.swiftpm ~/Library/org.swift.swiftpm
   ```

3. **Manual integrations**

   1.删除 .xcframework。
   2.重新下载。

### SDK 下载##sdk-download

**Where can I download the SDK?:**

这是我们的 [SDK 下载页面](https://ltv.tapjoy.com/d/sdks)。

### SDK 大小##sdk-size

**How much size will the Tapjoy SDK add to my application?:**

对于 Android，12.9.0 SDK 会使应用的大小增加 692KB（库 jar 文件的大小），并包含约 4688 个方法。

对于 iOS，使用 12.9.0 SDK 时，arm64 代码片段会使应用程序的大小增加 906,290 字节。请注意，这一数值中包括 [Tapjoy 所需的框架和库](/grow/offerwall/ios/introduction/manual-integration.md)。实际增加的大小可能小于此值，因为应用程序可能已经使用了这些框架中的许多框架。

### 设备操作系统##device-operating-systems

**What device operating systems are supported?:**

1. **Android**

   * 13.2.0+ API 21
   * 12.0.0-13.1.2 API 14+

2. **iOS**

   * 14.4.0+ iOS 13.0+
   * 14.2.0-14.3.1 iOS 12.0+
   * 13.0.0-14.1.1 iOS 10+
   * 12.8.0-12.11.1 iOS 9+
   * 12.0.0-12.7.1 iOS 8+

### 开发环境##development-environments

**What development environments does Tapjoy support?:**

Tapjoy 支持原生 [iOS](/grow/offerwall/ios/introduction/quickstart.md) 和 [Android](/grow/offerwall/android/introduction/quickstart.md)，我们还有一个用于 [Unity](/grow/offerwall/unity/introduction/quickstart.md)、[React Native](/grow/offerwall/react-native/introduction/quickstart.md) 和 [Flutter](/grow/offerwall/flutter/introduction/quickstart.md) 的插件。此外，我们还为使用 Cocos2d-x 的用户提供了一个 [C++ 库](https://ltv.tapjoy.com/sdk/api/cpp/index.html)。

### 开源软件##open-source-software

**What open source software is included in the Tapjoy SDK?:**

以下是 Tapjoy SDK 的[开放音频源列表](/grow/offerwall/monetization/open-source-software.md)。

### 集成故障排除##troubleshooting-integration

**I've integrated Tapjoy but I don't see any ads. What is wrong?:**

您看不到广告的原因可能有很多。请查看以下原因列表：

**No advertising content associated with the placement:**看不到广告的最常见原因是不存在与广告位关联的广告内容。[在控制面板上设置放置/位置](/grow/offerwall/monetization/dashboard/placements.md)并将其集成到代码中时，在[将内容链接到控制面板](/grow/offerwall/monetization/dashboard/placements.md)之前，实际上不会显示任何内容。**Placement not set up in dashboard:**放置/位置集成在代码中，但未[在控制面板上设置](/grow/offerwall/monetization/dashboard/placements.md)。**Placement mismatch:**应用代码中的广告位名称与后台中的广告位不完全匹配。例如，如果代码中的广告位名称是“app open”，但在后台中设置的广告位名称是“app launch”，则调用“app open”广告位将不会返回任何内容，因此不会看到任何广告。检查代码中和后台中的广告位名称，特别注意空格（“ ”）、下划线“\_”、拼写和常见同义词（例如，“exit\_store”与“quit\_store”）。**No approved currency:**应用还没有已批准的货币。要使用 Tapjoy 显示广告，必须[在控制面板中设置至少一种货币](/grow/offerwall/monetization/virtual-currency/virtual-currency-overview.md)。要查看虚拟货币状态，请转到 **Settings（设置）**> **App Settings（应用设置）**> **Content（内容）**> **Virtual Currency（虚拟货币）**。> **Note:**
>
> 如果应用程序同时在 iOS 和 Android 平台上运行，必须在每个平台上拥有已批准的货币才能在该平台上看到广告。**Tapjoy not connected:**您在 Tapjoy 成功连接之前调用了广告位。必须等到成功完成 Tapjoy Connect 调用后，才能调用广告位，否则广告位调用将失败，您将看不到任何内容。（事实上，如果在 Tapjoy 成功连接之前执行调用，几乎所有 Tapjoy 调用都将失败。）> **Note:**
>
> 在代码中的 connect 调用之后放置广告位调用并不能保证在 connect 调用成功之后就会调用广告位。connect 调用是异步执行的。在调用广告位之前，应等待相应的 Tapjoy 连接成功委托/监听器 ([iOS](/grow/offerwall/ios/introduction/quickstart.md), [Android](https://ltv.tapjoy.com/sdk/api/java/index.html), [Unity](https://ltv.tapjoy.com/sdk/api/csharp/class_tapjoy_unity_1_1_tapjoy.html#a53747857748a0ab6c6f52af585a4de29), [Air](https://ltv.tapjoy.com/sdk/api/air/index.html)) 先被调用。**Incorrect SDK Key:**您在应用中使用了错误的 SDK 密钥。请检查应用代码中的 SDK 密钥是否与后台中相应应用的 SDK 密钥匹配。通常，将 Tapjoy 代码从一个项目复制并粘贴到另一个项目时，来自另一个应用或错误平台的 SDK 密钥可能会进入您的代码。**No regional ads available:**您所在地区暂无该类型的广告。有时，Tapjoy 在特定地区没有可展示的特定广告格式。这种情况更有可能发生在规模较小的市场。为了判断内容缺失是因为广告填充不足还是实现方面的问题，通常可以将某台设备指定为测试设备进行排查。即使该地区没有实际广告库存，在测试设备上也能看到 Tapjoy 提供的测试广告。（请注意，有时这种测试广告实际上每 5 分钟才奖励用户一次，具体情况取决于广告格式。这种机制是为了遏制欺诈。）要将设备指定为测试设备，请转到 **App Settings（应用设置）**> **Test Devices（测试设备）**> **Create Test Device（创建测试设备）**。**VPN Access:**您正在使用 VPN。如果您正在使用 VPN，我们的系统可能会认为您的设备伪装成位于其他地区，因此为了防范欺诈行为，不会提供任何广告。如果您的 VPN 使设备的 IP 地址与设备的其他特征（例如国家/地区代码）不匹配，则很有可能发生这种情况。**Test devices setting enabled:**您的广告内容设置为 **Test Devices Only（仅限测试设备）**，而您正在使用非测试设备检查是否显示广告。请使用正确配置的测试设备（**Dashboard（后台）**> **App Settings（应用设置）**> **Test Devices（测试设备）**）来查看内容。要将内容设置为所有设备均可查看，请在 \*\*Content（内容）\*\*设置中执行以下操作：1.转到内容列表并找到内容单元。
2.单击 Edit（编辑）图标。
3.取消选中 \*\*Test Only（仅限测试）\*\*复选框。**Non-rewarded content:**您正在尝试查看一个货币类型设置为 \*\*Non-rewarded（非激励）\*\*的广告内容单元的测试广告。如果广告单元（视频广告）设置为非激励广告，即使设备设置为测试设备，也不会看到该广告单元的任何测试广告。**Exchange rate settings:**如果您的兑换比例（**App Settings（应用设置）**> **Content（内容）**> **Virtual Currency（虚拟货币）**> **Exchange Rate（兑换比例）**）太低，可能没有任何广告能够支付至少 1 个单位的虚拟货币。例如，如果将宝石货币设置为等于 $1 USD，则只会显示至少能支付 $1 的广告。由于很少有广告能支付如此高的价格，因此您很可能根本看不到任何广告。虽然系统会进行一些调整，以便在类似情况下仍能展示广告，但我们建议将货币兑换比例至少设置为 100 = $1。这样就可以确保您不会因为货币太贵而损失广告资源。**Reload placements:**如果您在第一次展示时能看到内容，但在后续展示中无法再看到，可能是因为在第一次展示后没有再次加载内容。向用户展示放置/位置后，您必须再次调用放置/位置以“重新加载”放置/位置。如果不这样做，后续展示广告位的尝试将失败。**Internet connection:**您没有连接到互联网。显然，Tapjoy 要求连接到其服务器才能向用户展示广告内容。如果正在使用的设备或模拟器没有进行连接，则不会显示广告。**Unity Editor:**您正在 Unity3d 编辑器中运行。如果将 Tapjoy 与 Unity3d 结合使用，必须实际构建项目并安装到设备上，才能检查 Tapjoy 集成是否正常。在 Unity3d 编辑器中运行应用时，Tapjoy 无法正常工作。**Time sync:**设备上的时钟与当前时间不一致。这一问题将导致 SSL 握手失败，因此无法成功完成 Tapjoy 的 connect 调用，进而造成您无法看到 Tapjoy 内容。**Duplicate Publisher ID:**您正在大量设备上使用相同的 Publisher User ID（发行商用户 ID）。有时在测试过程中，工程师或测试人员会在大量设备上运行游戏。如果我们的系统检测到[同一发行商用户 ID](/grow/offerwall/monetization/virtual-currency/self-managed-currency.md)(/grow/offerwall/monetization/virtual-currency/self-managed-currency) 被大量设备使用，我们将认定该用户试图建立欺诈性“点击农场”来完成广告任务，并会停止向该用户 ID 展示广告内容。出于安全原因，我们不会披露触发此机制的具体阈值。对于这种情况，一种变通方法是在不同的测试设备上使用不同的用户 ID。**Adjust eCPM goals:**您的广告内容在当前地区设置了 eCPM 底价或目标，但 Tapjoy 没有任何内容满足该底价或目标。出现这种情况的原因可能是底价设置得过高，或者 Tapjoy 算法判定用户安装意愿较低（此类情况通常发生在测试帐户和测试设备中），因此对该用户的出价较低。**Tapjoy server location:**Tapjoy 服务器的物理位置在哪里？Tapjoy 拥有全球客户群。为了向这一客户群提供服务，Tapjoy 在亚太地区、西欧、美国西部和美国东部均部署了服务器。此举确保了多个地理区域的冗余性与高性能。**Rewarded installs:**我从 Offerwall 安装了应用，但未收到奖励。发生了什么问题？为了追踪到该安装，您必须首先打开并运行推广的应用程序。运行应用程序后，就可以追踪到该安装，一旦 Tapjoy 获得安装追踪数据，您便会获得奖励。大多数情况下，在几分钟内就会追踪到安装。但是，最糟糕的情况下，安装追踪服务可能需要超过一个小时的时间才能将安装报告给我们的服务器。**Dubug mode:**如何启用 Tapjoy 调试模式？有关启用 Tapjoy 调试/日志记录模式的说明可用于 [iOS](/grow/offerwall/ios/testing/test-devices.md)、[Android](/grow/offerwall/android/testing/test-devices.md) 和 [Unity](/grow/offerwall/unity/testing/test-devices.md)。

### 预加载##preloading

**Do I have to wait for my content to finish preloading before I can show an ad?:**

您在收到 isContentAvailable 响应后，不一定需要等待内容完成预加载。如果在内容加载完成前调用 showContent，SDK 将尝试流式传输尚未加载的剩余广告内容。建议等待 SDK 的“内容准备就绪”回调，以便确认所有内容已下载完毕。否则，用户可能会在内容下载期间看到广告缓冲。

### 支持##support

**Where do I go if I need help or assistance?:**

请联系[支持团队](https://ironsrc.my.site.com/helpcenter/s/)。

## Unity##unity

### 在 Unity 编辑器中运行 Tapjoy##tapjoy-in-the-unity-editor

**Can I run and test Tapjoy in the Unity3d Editor?:**

不可以。必须构建项目并安装到实际设备上才能测试 Tapjoy。如果尝试在 Unity 编辑器中运行 Tapjoy，则会显示如下消息：

```java title="Error message"
E/TapjoyConnect(20815): ERROR -- call requestTapjoyConnect and make sure to receive 
the Tapjoy connectSuccess response from the TapjoyConnectNotifier before calling 
any other Tapjoy methods
```

### SDK 初始连接##sdk-initial-connection

**Can I control when the SDK first connects?:**

在 SDK 11.2.1 及更低版本中无法实现这一点。在 SDK 11.2.2 及更高版本中，可通过编程控制连接步骤。您可以在[此处](/grow/offerwall/unity/introduction/quickstart.md)找到文档
