Giter Club home page Giter Club logo

capacitor4-appmetrica's Introduction

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>
  );
}

BREAKING CHANGES in 1.x.x

  1. 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)
}
  1. Added Android support

  2. Removed support for appmetrica push notifications

  3. Added full support for Capacitor 3 and removed compatibility with Capacitor 2

capacitor4-appmetrica's People

Contributors

rediska1114 avatar agcentory240 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.