- activate()
- pauseSession()
- sendEventsBuffer()
- resumeSession()
- setLocationTracking()
- setStatisticsSending()
- setLocation()
- reportAppOpen()
- reportError()
- reportEvent()
- reportReferralUrl()
- setUserProfileID()
- getDeviceID()
- reportUserProfile()
- In your module (e.g.
app.module.ts
)
...
import { Appmetrica } from 'capacitor-appmetrica'
@NgModule({
...
providers: [
...
Appmetrica,
],
})
export class AppModule {}
- 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()
}
}
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>
);
}
- Removed automatic initialization of Appmetrica, now you need to initialize it manually using the
activate
method
To migrate, remove the Appmetrica
settings from the capacitor.config.json
{
"plugins": {
...
- "Appmetrica": {
- "apiKey": "Your API key"
- ...
- },
...
}
and run the activate
method when the application starts. For example:
ngOnInit() {
this.appmetrica.activate("<API_KEY>", options)
}
-
Added Android support
-
Removed support for appmetrica push notifications
-
Added full support for Capacitor 3 and removed compatibility with Capacitor 2