---
title: "PostHog"
description: ""
---

PostHog, kullanıcı davranışlarını izlemek, ürün kullanımını görselleştirmek ve elde tutma analizleri yapmak için araçlar sunan bir analitik platformdur. Etkinlik takibi, kullanıcı akışları ve özellik bayrakları gibi özellikleriyle ürününüzü daha iyi anlamanıza ve geliştirmenize yardımcı olmak için tasarlanmıştır.

PostHog'u Adapty ile entegre etmek; deneme başlangıçları, yenilemeler ve iptaller gibi abonelikle ilgili etkinliklerin sorunsuz şekilde takip edilmesini sağlar. Bu etkinlikleri PostHog'a göndererek abonelik değişikliklerinin kullanıcı davranışını nasıl etkilediğini analiz edebilir, paywall performansını değerlendirebilir ve mevcut analitik iş akışınız içinde para kazanma stratejilerinize dair daha derin içgörüler elde edebilirsiniz.

## Entegrasyon Özellikleri \{#integration-characteristics\}

| Entegrasyon özelliği | Açıklama |
| -------------------------- | ------------------------------------------------------------ |
| Zamanlama | Gerçek zamanlı; etkinlikler PostHog kontrol panelinde hemen görünmeyebilir. |
| Veri yönü | Adapty etkinlikleri, Adapty sunucusundan PostHog sunucusuna gönderilir. |
| Adapty entegrasyon noktası | <ul><li> Mobil uygulama kodunda PostHog ve Adapty SDK'ları</li><li> Adapty sunucusu</li></ul> |

## PostHog etkinlik yapısı \{#posthog-event-structure\}

Adapty, seçilen etkinlikleri [PostHog Entegrasyon sayfasındaki](https://app.adapty.io/integrations/posthog) **Events names** bölümünde yapılandırıldığı şekilde PostHog'a gönderir. Her etkinlik şu yapıya sahiptir:

```json showLineNumbers
{
  "distinct_id": "john.doe@example.com",
  "timestamp": "2025-01-08T11:06:12+00:00",
  "event": "subscription_started",
  "properties": {
    "$set": {
      "email": "user@example.com",
      "first_name": "John",
      "last_name": "Doe",
      "birthday": "1990-01-01",
      "gender": "male",
      "os": "iOS"
    },
    "timezone": "America/New_York",
    "ip_address": "10.168.1.1",
    "*": "{{other_event_properties}}"
  }
}
```

Parametreler:

| **Parametre**   | **Tür**             | **Açıklama**                                              |
| --------------- | -------------------- | ------------------------------------------------------------ |
| **distinct_id** | String               | Kullanıcı için benzersiz tanımlayıcı (ör. `profile.posthog_distinct_user_id`, `customer_user_id` veya `profile_id`). |
| **timestamp**   | ISO 8601 tarih ve saat | Etkinliğin tarihi ve saati.                              |
| **event**       | String               | [PostHog yapılandırmasının](https://app.adapty.io/integrations/posthog) Events names bölümünde tanımladığınız etkinlik adı. |
| **properties**  | Object               | [properties.$set](posthog#propertiesset-parameters) parametrelerini ve tüm [etkinliğe özgü özellikleri](messaging#event-properties) içerir. Her özellik isteğe bağlıdır; eksik olması durumunda PostHog'a gönderilmez. |

### properties.$set parametreleri \{#propertiesset-parameters\}

Her `properties.$set` nesne parametresi isteğe bağlıdır; eksik olması durumunda PostHog'a gönderilmez.

| **Parametre**   | **Tür**             | **Açıklama**                                              |
| --------------- | -------------------- | ------------------------------------------------------------ |
| **email**           | String        | Kullanıcının e-posta adresi.                                        |
| **first_name**      | String        | Kullanıcının adı.                                           |
| **last_name**       | String        | Kullanıcının soyadı.                                            |
| **birthday**        | String (Date) | Kullanıcının doğum tarihi.                                        |
| **gender**          | String        | Kullanıcının cinsiyeti.                                               |
| **os**              | String        | Kullanıcının cihazının işletim sistemi.                       |

## PostHog entegrasyonunu kurma \{#setting-up-posthog-integration\}

1. Adapty Kontrol Paneli'nde [Integrations -> PostHog](https://app.adapty.io/integrations/posthog) sayfasını açın ve geçişi etkinleştirin.

   
     <img src="/assets/shared/img/posthog-on.webp"
     style={{
       border: 'none', /* border width and color */
       width: '700px', /* image width */
       display: 'block', /* for alignment */
       margin: '0 auto' /* center alignment */
     }}
   />
   

2. [PostHog Kontrol Paneli](https://posthog.com/)'ne giriş yapın.

3. **Settings -> Project** bölümüne gidin.

   
     <img src="/assets/shared/img/posthog-settings.webp"
     style={{
       border: 'none', /* border width and color */
       width: '700px', /* image width */
       display: 'block', /* for alignment */
       margin: '0 auto' /* center alignment */
     }}
   />
   

4. **Project** penceresinde aşağı kaydırarak **Project ID** bölümüne gidin ve **Project API key**'i kopyalayın.

5. API anahtarını Adapty Kontrol Paneli'ndeki **Project API key** alanına yapıştırın. PostHog'un sunucudan sunucuya entegrasyon için özel bir Sandbox modu yoktur.

6. **PostHog Deployment** seçeneğinizi belirleyin:

   | Seçenek | Açıklama                                                  |
   | ------ | ------------------------------------------------------------ |
   | us/eu  | Varsayılan PostHog barındırmalı dağıtımlar.                          |
   | Custom | Kendi barındırdığınız örnekler için. Örnek URL'nizi **PostHog Instance URL** alanına girin. |

7. (isteğe bağlı) Kendi barındırdığınız bir PostHog dağıtımı kullanıyorsanız, dağıtımınızın adresini **PostHog Instance URL** alanına girin.

8. (isteğe bağlı) **Reporting Proceeds**, **Exclude Historical Events**, **Report User's Currency** ve **Send Trial Price** gibi ayarları düzenleyin. Bu seçenekler hakkında ayrıntılı bilgi için [Integration settings](configuration#integration-settings) bölümüne bakın.

9. (isteğe bağlı) **Events names** bölümünde PostHog'a hangi etkinliklerin gönderileceğini özelleştirebilirsiniz. İstemediğiniz etkinlikleri devre dışı bırakın veya gerektiğinde yeniden adlandırın.

10. Kurulumu tamamlamak için **Save**'e tıklayın.

## SDK yapılandırması \{#sdk-configuration\}

PostHog'dan attribution verisi almak için aşağıda gösterildiği gibi `distinctId` değerini Adapty'ye aktarın:

---
no_index: true
---
import Callout from '../../../components/Callout.astro';

<Callout type="note">
Üçüncü taraf bir kullanıcı kimliğini Customer User ID olarak kullanıyorsanız, bunu `activate()` sırasında geçirmeyin — üçüncü taraf SDK henüz bu kimliği oluşturmamış olabilir. Bunun yerine önce CUID olmadan `activate()` çağrısı yapın, ardından `setIntegrationIdentifier()` ve son olarak CUID ile `identify()` çağrısını gerçekleştirin.
</Callout>

<Tabs groupId="current-os" queryString> 

<TabItem value="swift" label="Swift" default> 

```swift showLineNumbers
do {
    let distinctId = PostHogSDK.shared.getDistinctId()

    try await Adapty.setIntegrationIdentifier(
        key: "posthog_distinct_user_id",
        value: distinctId
    )                
} catch {
    // handle the error
}
```

</TabItem> 

<TabItem value="kotlin" label="Kotlin" default> 

```Kotlin showLineNumbers
Adapty.setIntegrationIdentifier("posthog_distinct_user_id", PostHog.distinctId()) { error ->
    if (error != null) {
        // handle the error
    }

```

 </TabItem> 

<TabItem value="java" label="Java" default>

```java showLineNumbers
Adapty.setIntegrationIdentifier("posthog_distinct_user_id", PostHog.distinctId(), error -> {
    if (error != null) {
        // handle the error
    }
});
```

</TabItem> 

<TabItem value="flutter" label="Flutter" default> 

```javascript showLineNumbers
try {
    final distinctId = await Posthog().getDistinctId();

    await Adapty().setIntegrationIdentifier(
        key: "posthog_distinct_user_id",
        value: distinctId,
    );
} catch (e) {
    // handle the error
}
```

</TabItem> 

<TabItem value="unity" label="Unity" default> 

Unity için resmi bir PostHog SDK'sı bulunmamaktadır.

</TabItem> 

<TabItem value="rn" label="React Native (TS)" default>

```typescript showLineNumbers

// ...
const posthog = usePostHog();

// ...
try {
  await adapty.setIntegrationIdentifier("posthog_distinct_user_id", posthog.getDistinctId());
} catch (error) {
  // handle `AdaptyError`
}
```

</TabItem>

</Tabs>

Adapty artık PostHog'a etkinlik gönderecek ve ondan attribution verisi alacaktır.