---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.4
alternate:
  - https://appmetrica.yandex.com/docs/en/sdk/unity/push/quick-start.md
  - https://appmetrica.yandex.com/docs/ru/sdk/unity/push/quick-start.md
  - https://appmetrica.yandex.com/docs/zh/sdk/unity/push/quick-start.md
  - href: https://appmetrica.yandex.com/docs/zh/sdk/unity/push/quick-start.md
    type: text/markdown
    title: Markdown version
  - href: https://appmetrica.yandex.com/docs/zh/llms.txt?revision=r21698989
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://appmetrica.yandex.com/docs/zh/llms.txt?revision=r21698989

# 安装和初始化

AppMetrica Push Unity 是为 [Unity3d](http://docs.unity3d.com/) 游戏平台开发的插件，包含对 AppMetrica Push SDK（Android 和 iOS 平台）的支持。

此部分介绍如何启用并初始化 AppMetrica Unity Plugin：

## 步骤 1. 启用 AppMetrica Unity 插件 {#integration-appmetrica}

要启用 AppMetrica Unity 插件，请按照[说明](https://appmetrica.yandex.com/docs/zh/sdk/unity/analytics/quick-start.md)操作。

{% note info %}

您必须使用 AppMetrica Unity 插件版本 6.1.0 或更高。

{% endnote %}

## Stage 2. 启用 AppMetrica Push Unity 插件 {#integration}

插件通过 [Unity Package Manager](https://docs.unity3d.com/Manual/Packages.html) 启用。

将以下依赖项添加到 [Packages/manifest.json](https://docs.unity3d.com/Manual/upm-manifestPrj.html)：

```json translate=no
{
  "dependencies": {
    "io.appmetrica.analytics.push": "https://github.com/appmetrica/push-unity-plugin.git#v2.0.0"
  }
}
```

## 步骤 3. 初始化库 {#activate}

您应该使用 [RuntimeInitializeOnLoadMethodAttribute](https://docs.unity3d.com/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html) 属性来激活 AppMetrica Push。

创建一个静态方法，添加 `[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]` 属性，然后使用 `AppMetricaPush.Activate()` 方法激活 AppMetricaPush。

> Example:
>
> ```csharp translate=no
> using Io.AppMetrica;
> using Io.AppMetrica.Push;
> using UnityEngine;
>
> public static class AppMetricaActivator {
>     [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
>     private static void Activate() {
>         AppMetrica.Activate(new AppMetricaConfig("APIKey"));
>         AppMetricaPush.Activate();
>     }
> }
> ```

{% note info %}

你必须在调用 `AppMetricaPush.Activate()` 时严格保证先调用 `AppMetrica.Activate()`.

{% endnote %}

## Stage 4. 为每种本地平台添加设置 {#platforms}

{% list tabs %}

- Android

  1. [为使用 Firebase 设置应用](https://appmetrica.yandex.com/docs/zh/sdk/android/push/android-settings.md#firebase) [获取并添加到 AppMetrica](https://appmetrica.yandex.com/docs/zh/sdk/android/push/android-settings.md#firebase-key) 用于使用 Firebase Cloud Messaging 的服务器密钥。
  2. 要配置 AndroidManifest.xml，请在 `application` 元素中修改 `AndroidManifest.xml`：

     ```xml translate=no
     <meta-data android:name="ymp_firebase_default_app_id" android:value="APP_ID"/>
     <meta-data android:name="ymp_gcm_default_sender_id" android:value="number:SENDER_ID"/>
     <meta-data android:name="ymp_firebase_default_api_key" android:value="API_KEY"/>
     <meta-data android:name="ymp_firebase_default_project_id" android:value="PROJECT_ID"/>
     ```

     `APP_ID` — 应用在 Firebase 中的 ID。 您可以在 [Firebase 控制台](https://console.firebase.google.com/) 中找到它：转到 **项目设置**。 在 **您的应用** 部分，复制 **应用 ID** 字段的值。


     `SENDER_ID` — Firebase 中发送者的唯一 ID。 您可以在 [Firebase 控制台](https://console.firebase.google.com/) 中找到它：转到 **项目设置**&nbsp;→ **云消息传递**，并复制 **发送者 ID** 字段的值。


     `API_KEY` — Firebase 中的应用密钥。 您可以在 `google-services.json` 文件的 `current_key` 字段中找到它。 您可以在 [Firebase 控制台](https://support.google.com/firebase/answer/7015592) 中下载该文件。


     `PROJECT_ID` — Firebase 中的应用 ID。 您可以在 `google-services.json` 文件的 `project_id` 字段中找到它。 您可以在 [Firebase 控制台](https://console.firebase.google.com/) 中下载该文件。


- iOS

  1. 将SSL证书添加到AppMetrica，按照[说明](https://appmetrica.yandex.com/docs/zh/sdk/ios/push/ios-settings.md)操作。
  2. 要收到推送通知，请请求用户的许可。 我们建议使用 [Mobile Notifications](https://docs.unity3d.com/Packages/com.unity.mobile.notifications@2.0/manual/index.html) Unity 包，并根据 [说明](https://docs.unity3d.com/Packages/com.unity.mobile.notifications@2.0/manual/iOS.html#authorization-request) 请求权限。

  {% note info %}

  AppMetrica Push Unity 插件使用 <q>swizzling</q>：它通过 ObjectiveC 运行时拦截 `UnityAppController` 类的某些方法的执行。 你可以在 [AMPUAppMetricaPushAppController.m](https://github.com/appmetrica/push-unity-plugin/blob/main/Runtime/Plugins/iOS/AMPUAppMetricaPushAppController.m) 文件中找到 swizzling 机制的源代码。

  {% endnote %}

{% endlist %}

### 另请参见 {#see-also}

- [配置 Android 应用以发送推送通知](https://appmetrica.yandex.com/docs/zh/sdk/android/push/android-settings.md)
- [配置 iOS 应用以发送推送通知](https://appmetrica.yandex.com/docs/zh/sdk/ios/push/ios-settings.md)
- [启动推送广告活动](https://appmetrica.yandex.com/docs/zh/push/marketing.md)

<!-- source: zh/_includes/feedback-button-3.md -->
如果您没有找到所需答案，可以通过反馈表单提交您的问题。 请尽可能详细地描述问题。 如果可能，请附上截图。

<a href="../troubleshooting/feedback-new">
  <span class="button">联系支持</span>
</a>

<a href="../troubleshooting/feedback-docs">
  <span class="button">为文档提出改进建议</span>
</a>
<!-- endsource: zh/_includes/feedback-button-3.md -->
