PHPackages                             altis/analytics-integration-segment - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. altis/analytics-integration-segment

ActiveWordpress-plugin[API Development](/categories/api)

altis/analytics-integration-segment
===================================

Segment integration for Altis Analytics module

0.2.0(4y ago)060.5k↑666.7%2GPL-2.0-or-laterPHP

Since Mar 24Pushed 4y ago11 watchersCompare

[ Source](https://github.com/humanmade/altis-analytics-integration-segment)[ Packagist](https://packagist.org/packages/altis/analytics-integration-segment)[ RSS](/packages/altis-analytics-integration-segment/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (2)Dependencies (3)Versions (3)Used By (2)

   **Segment Integration for Altis Analytics**
 Segment integration for Altis Analytics module, exports Altis Analytics events to Segment.   [ ![Build status](https://camo.githubusercontent.com/d83f1240f8104a8f759dbf42a1c266c0ead1bd6c024416c12e113cb8f03f20d0/68747470733a2f2f7472617669732d63692e636f6d2f68756d616e6d6164652f53332d55706c6f6164732e7376673f6272616e63683d6d6173746572) ](https://travis-ci.com/humanmade/S3-Uploads)     A **[Human Made](https://hmn.md/)** project. Maintained by @humanmade.   [![](https://camo.githubusercontent.com/21ddd8db8af0243ccabd437a33ded6e2da1e9777d1b4d75f30ab9ac80803c90a/68747470733a2f2f686d6e2e6d642f636f6e74656e742f7468656d65732f686d6e6d642f6173736574732f696d616765732f686d2d6c6f676f2e737667)](https://camo.githubusercontent.com/21ddd8db8af0243ccabd437a33ded6e2da1e9777d1b4d75f30ab9ac80803c90a/68747470733a2f2f686d6e2e6d642f636f6e74656e742f7468656d65732f686d6e6d642f6173736574732f696d616765732f686d2d6c6f676f2e737667)  Segment integration for Altis Analytics adds automatic exporting of analytics events to Segment via background cronjobs.

Getting Set Up
--------------

[](#getting-set-up)

### Installing

[](#installing)

The package is automatically bundled with Altis Analytics module, however the Segment API key needs to be defined via the `SEGMENT_API_WRITE_KEY` constant or the `altis.analytic.segment.api_write_key` filter.

Usage
-----

[](#usage)

The package sets up a cronjob that handles batch uploading events to Segment APIs through hooking to the event `altis.analytics.export.data.process` that is triggered by Altis Analytics.

#### Functions

[](#functions)

**`register_segment_group_field( string $field, array $traits = [] ) : void`**

Registers a grouping field, which is sent to Segment as a group call. See [Segment docs on Group cals](https://segment.com/docs/connections/sources/catalog/libraries/server/http-api/#group) for more information.

- \*`$field` is the event field to group by.
- \*`$traits` is the data map to add to the group from.

```
register_segment_group_map( 'endpoint.Attributes.AudienceId', [ 'country' => 'endpoint.Attributes.UserAttributes.country' ] )
```

#### Actions

[](#actions)

**`altis.analytics.segment.request_failure : Requests_Exception|Requests_Response $response,  Array $batch`**

Triggered when a batch request to Segment APIs fails.

**`altis.analytics.segment.request_success  : Requests_Response $response,  Array $batch`**

Triggered when a batch request to Segment APIs succeeds.

**`altis.analytics.segment.after_send : Array $results, Array $batches, Array $events`**

Triggered after sending the batch request to Segment APIs.

#### Filters

[](#filters)

**`altis.analytics.segment.api_write_key : String`**

Filters the Segment API key, for instances where different keys are needed for different sites. Use the constant `SEGMENT_API_WRITE_KEY` otherwise.

**`altis.analytics.segment.mapping : Array`**

Filters the mapping tree which the transformer uses to translate the Altis Analytics event format to the format needed by Segment. Use only if you need to customize the event structure that will be logged by Segment. The filter accepts a second parameter `$type ` that indicates the event type, eg: `identify`, `track`, `group`, etc.

**`altis.analytics.segment.formatted_data : Array`**

Filters the formatted data, in case further customizations are needed.

**`altis.analytics.segment.groups : Array`**

Filters the group definitions, for advanced use only, use the function `register_segment_group_map()` instead for simple usage.

### Data mapping

[](#data-mapping)

The package uses a data mapping structure to convert between Altis Analytics and Segment respective formats.

Examples:

```
$mapping = [
    // Default format:
    'key' => 'path.to.value',

    // Basic value map:
    'country' => 'endpoint.Location.Country',

    // Use a transformative callback:
    'country' => 'endpoint.Location.Country|ucfirst',

    // Skip a specific key:
    'country' => '',

    // Merge a whole map branch (notice the absence of a key):
    'endpoint.Attributes.UserAttributes',
]

```

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~21 days

Total

2

Last Release

1531d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/21655?v=4)[Ryan McCue](/maintainers/rmccue)[@rmccue](https://github.com/rmccue)

![](https://www.gravatar.com/avatar/77dbeefb7745010589603f2ffc6ff310d8f700b58e08d52af190744c43342526?d=identicon)[roborourke](/maintainers/roborourke)

![](https://www.gravatar.com/avatar/f1d0ffccdc5d339ff98a91e1b224a0d92f93dc8c2f772124473a76655b83129c?d=identicon)[joehoyle](/maintainers/joehoyle)

---

Top Contributors

[![shadyvb](https://avatars.githubusercontent.com/u/451892?v=4)](https://github.com/shadyvb "shadyvb (57 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/altis-analytics-integration-segment/health.svg)

```
[![Health](https://phpackages.com/badges/altis-analytics-integration-segment/health.svg)](https://phpackages.com/packages/altis-analytics-integration-segment)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.3M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172437.8k11](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93452.6k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
