Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

appmetrica-capacitor7

tesplugNaN152MIT7.0.2TypeScript support: included

Appmetrica capacitor plugin

capacitor, plugin, native, appmetrica

readme

Capacitor Appmetrica plugin npm version

Available methods:

  • activate()
  • pauseSession()
  • sendEventsBuffer()
  • resumeSession()
  • setLocationTracking()
  • setStatisticsSending()
  • setLocation()
  • reportAppOpen()
  • reportError()
  • reportEvent()
  • reportReferralUrl()
  • setUserProfileID()
  • getDeviceID()
  • reportUserProfile()

Angular usage example:

  1. In your module (e.g. app.module.ts)
...
import { Appmetrica } from 'capacitor-appmetrica'

@NgModule({
    ...
    providers: [
        ...
        Appmetrica,
    ],
})
export class AppModule {}
  1. In your component or service (e.g. analytics.service.ts)
...
import { Appmetrica, UserProfile, ProfileAttribute } from 'capacitor-appmetrica'

@Injectable()
export class AnalyticsService {
    constructor(private appmetrica: Appmetrica) {}

    async initialization() {
        await this.appmetrica.activate("<SDK_API_KEY>", { logs: true })
    }

    async logEvent(name: string, params?: Object) {
        await this.appmetrica.logEvent(name, params)
    }

    async setUserProfileID(id: string) {
        return this.appmetrica.setUserProfileID(id)
    }

    async reportUserProfile() {
        const userProfile = new UserProfile()
        userProfile.applyFromArray([
            ProfileAttribute.Name().withValue('Ivan'),
            ProfileAttribute.BirthDate().withBirthDate(new Date()),
            ProfileAttribute.CustomString('born_in').withValueIfUndefined('Moscow'),
        ])

        await this.appmetrica.reportUserProfile(userProfile)
    }

    async getDeviceID(): string {
        return this.appmetrica.getDeviceID()
    }
}

React usage example:

import { Appmetrica } from 'capacitor-appmetrica';

export function useAppmetrica() {
  return useRef(new Appmetrica());
}
import {
  Appmetrica,
  UserProfile,
  ProfileAttribute,
} from 'capacitor-appmetrica';

export default function App() {
  const appmetrica = useAppmetrica();

  const [deviceId, setDeviceId] = useState(null);

  useEffect(() => {
    appmetrica.activate('<SDK_API_KEY>', { logs: true });

    appmetrica.getDeviceID().then(deviceId => {
      setDeviceId(deviceId);
    });
  }, []);

  const onButtonClick = () => {
    appmetrica.logEvent('clickButton', { param: 10 });
  };

  const onProfileClick = async () => {
    await appmetrica.setUserProfileID('123');

    const userProfile = new UserProfile();
    userProfile.applyFromArray([
      ProfileAttribute.Name().withValue('Ivan'),
      ProfileAttribute.BirthDate().withBirthDate(new Date()),
      ProfileAttribute.CustomString('born_in').withValueIfUndefined('Moscow'),
    ]);

    await appmetrica.reportUserProfile(userProfile);
  };

  return (
    <div>
      deviceId: {deviceId}
      <button onClick={onButtonClick}>log event</button>
      <button onClick={onProfileClick}>set profile</button>
    </div>
  );
}