# Android SDK

### **开始使用**

要开始使用 Offer18 的 Android SDK 进行跟踪，您需要将该 SDK 作为依赖项集成到您的应用中。

对于 **Gradle** 在 **Kotlin，** 在以下文件中添加依赖项 `build.gradle.kts` 文件

```gradle
implementation("com.offer18:android-sdk:{VERSION}")
```

对于 **Gradle** 在 **Groovy，**  在以下文件中添加依赖项 `build.gradle` 文件

```gradle
implementation 'com.offer18:android-sdk:{VERSION}'
```

{% hint style="warning" %}
您必须替换 `{VERSION}` 为 Offer18 的 Android SDK 的最新稳定版本
{% endhint %}

查找 Android SDK 的最新稳定版本

{% embed url="<https://central.sonatype.com/artifact/com.offer18/android-sdk>" %}

***

### 权限

确保您的应用具有以下权限

```xml
<uses-permission android:name="android.permission.INTERNET"/>
```

***

### SDK 初始化

导入 `Offer18` 类来自 `com.offer18.sdk` 包

```java
import com.offer18.sdk.Offer18;
```

要初始化软件开发包（SDK），请在您的应用代码中插入提供的代码片段。

{% code fullWidth="false" %}

```java
Offer18.init(getApplicationBaseContext(), "{DOMAIN}", "{ACCOUNT_ID}","tid_key_in_referrer_url");
```

{% endcode %}

{% hint style="info" %}

* 替换 `{DOMAIN}` 为您的跟踪域名。&#x20;
* 替换 `{ACCOUNT_ID}` 为您的账户 ID。
* 替换 **tid\_key\_in\_referrer\_url** 为 tid 使用您自己的参数键
  {% endhint %}

***

### 追踪转化

导入 `Offer18` 类来自 `com.offer18.sdk` 包

```java
import com.offer18.sdk.Offer18;
```

要使用 Offer18 的 Android SDK 启用转化跟踪，您需要在应用的订单成功页（感谢页面）中插入特定的代码片段。

```java
Map<String, String> args = new HashMap<>();  
args.put("o", ""); // 0000000 (Offer ID)
args.put("tid", "");  // x-xxxx-xxxxxx-xxxxxx (Click ID)
args.put("event", ""); // install
args.put("adv_sub1", ""); 
args.put("adv_sub2", "");
args.put("adv_sub3", "");
args.put("adv_sub4", "");
args.put("adv_sub5", "");
args.put("coupon", "");
args.put("sale", "");
args.put("payout", "");
Offer18.trackConversion(args);
```

***

### 跟踪转化（自动）

导入 `Offer18` 类来自 `com.offer18.sdk` 包

```java
import com.offer18.sdk.Offer18;
```

如果您不想通过获取 Referrer 详情来获取点击 ID，您可以在配置中使用 Offer18 的点击 ID 键。

#### 初始化 SDK&#x20;

要初始化软件开发包（SDK），请在您的应用代码中插入提供的代码片段。&#x20;

```java
Offer18.init(getApplicationBaseContext(), "{DOMAIN}", "{ACCOUNT_ID}","tid_key_in_referrer_url");
```

#### 完成转化

```java
Map<String, String> args = new HashMap<>();  
args.put("o", ""); // Offer ID  
args.put("tid", "{REFERRER_TID}"); // 自动填充 TID
args.put("event", ""); // install
args.put("adv_sub1", "");
args.put("adv_sub2", "");
args.put("adv_sub3", "");
args.put("adv_sub4", "");
args.put("adv_sub5", "");
args.put("coupon", "");
args.put("sale", "");
args.put("payout", "");
Offer18.trackConversion(args);
```

{% hint style="info" %}
“**{REFERRER\_TID}**” 将自动从 Referrer URL 检索点击 ID 并将其包含在 trackConversion 中。

* TID 将基于 SDK 初始化期间提供的键值自动检测
* 当检测到宏时将进行替换 **{REFERRER\_TID}** 被检测到
* **trackConversion** 将失败如果
  * 未手动 **tid** 提供，&#x20;
  * 未 **tid** 通过引用 URL 检测到&#x20;
  * **tid** 已检测到但未提供宏&#x20;
  * 提供了宏但没有 **tid** 或为空 **tid** 从 referrer url 检测到
    {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://knowledgebase.offer18.com/zh/wang-luo/sdk/android-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
