{"_id":"@0rec0/ng-yandex-metrika","name":"@0rec0/ng-yandex-metrika","dist-tags":{"latest":"19.0.0"},"versions":{"19.0.0":{"name":"@0rec0/ng-yandex-metrika","version":"19.0.0","description":"Yandex metrika for angular","keywords":["yandex","metrika","ng","angular"],"author":{"name":"Lyubimov Roman"},"license":"MIT","repository":{"url":"git+ssh://git@github.com/0ReC0/ng-yandex-metrika.git"},"peerDependencies":{"@angular/common":"^19.0.0","@angular/compiler":"^19.0.0"},"module":"fesm2022/0rec0-ng-yandex-metrika.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","default":"./fesm2022/0rec0-ng-yandex-metrika.mjs"}},"sideEffects":false,"dependencies":{"tslib":"^2.3.0"},"_id":"@0rec0/ng-yandex-metrika@19.0.0","gitHead":"6f0385ed31469061fe5ad755106c70aa8f4657a1","bugs":{"url":"https://github.com/0ReC0/ng-yandex-metrika/issues"},"homepage":"https://github.com/0ReC0/ng-yandex-metrika#readme","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-/1vfSdbfan3NpLNo5fwKlpP4p6DCYnoONUkqm3Yd5rvVF/EUou1Ew6xtPHNgUrQGt6ekU84ho/Rpwb4F79I6Bw==","shasum":"8ce08eccdb1897c9986e57c41335fdba4d42d49e","tarball":"https://registry.npmjs.org/@0rec0/ng-yandex-metrika/-/ng-yandex-metrika-19.0.0.tgz","fileCount":12,"unpackedSize":37610,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA6lfBlQ5mI6Qw6QupXP2EsjGVahimreFUOWE0Fq9Fy2AiBVHxUJDnF+eLXjWz6OBdbk0cqwXehsCeNbFnRz/kgHLw=="}]},"_npmUser":{"name":"0rec0","email":"kitanin.ser@mail.ru"},"directories":{},"maintainers":[{"name":"0rec0","email":"kitanin.ser@mail.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ng-yandex-metrika_19.0.0_1787844878351_0.07243326942234218"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-27T15:34:38.227Z","19.0.0":"2026-08-27T15:34:38.487Z","modified":"2026-08-27T15:34:38.668Z"},"maintainers":[{"name":"0rec0","email":"kitanin.ser@mail.ru"}],"description":"Yandex metrika for angular","homepage":"https://github.com/0ReC0/ng-yandex-metrika#readme","keywords":["yandex","metrika","ng","angular"],"repository":{"url":"git+ssh://git@github.com/0ReC0/ng-yandex-metrika.git"},"author":{"name":"Lyubimov Roman"},"bugs":{"url":"https://github.com/0ReC0/ng-yandex-metrika/issues"},"license":"MIT","readme":"# Angular Yandex Metrika\nМодуль добавляет на страницу счетчик(и) яндекс метрики, доступны все [методы](https://yandex.ru/support/metrika/objects/method-reference.xml) API метрики.\nДля методов, в которые можно передать колбэк, возвращается промис, но колбэки так же работают.\n\n```bash\nnpm install @0rec0/ng-yandex-metrika\n```\n\nЧтобы подключить, нужно добавить скрипт в шаблон, либо подключить с помощью загрузчика модулей, и подключить в приложение.\n```typescript\nimport { MetrikaModule } from '@0rec0/ng-yandex-metrika';\n\n@NgModule({\n  imports: [\n    MetrikaModule.forRoot(\n      { id: 35567075, webvisor: true }, // CounterConfig | CounterConfig[]\n      {\n        // Можно задать ID счетчика, либо порядковый номер в массиве, необязательный параметр, по умолчанию первый\n        defaultCounter,\n        // Для загрузки метрики с другого источника\n        alternativeUrl: 'https://cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js',\n      },\n    ),\n  ]\n})\n```\n```typescript\nimport { ApplicationConfig, importProvidersFrom } from '@angular/core';\n\nexport const appConfig: ApplicationConfig = {\n  providers: [\n    // ...\n    importProvidersFrom(\n      MetrikaModule.forRoot([\n        { id: 35567075, webvisor: true },\n        { id: 35567076 },\n      ])\n    ),\n  ]\n};\n\n```\n\nЕсли вам нужно, чтобы счетчик работал без javascript, нужно добавить это:\n```html\n<noscript><div><img src=\"https://mc.yandex.ru/watch/put_your_id_here\" style=\"position:absolute; left:-9999px;\" alt=\"\" /></div></noscript>\n```\n\nДля отправки javascript цели можно вызвать метод вручную:\n```typescript\nexport class AppComponent {\n  constructor(private metrika: Metrika) {}\n\n  onClick() {\n    this.metrika.reachGoal('a_goal_name');\n  }\n}\n```\n\nИли использовать директиву:\n```html\n<!-- eventName по умолчанию click -->\n<button metrikaGoal goalName=\"test\" eventName=\"mouseover\">Click me</button>\n<button metrikaGoal goalName=\"test\" [counterId]=\"123456\">Click me</button>\n```\n\nДля отправки данных о просмотре:\n```typescript\nimport { NavigationEnd, Router, RouterLink, RouterOutlet } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { filter } from 'rxjs/operators';\n\nexport class AppComponent {\n  constructor(\n    private metrika: Metrika,\n    private router: Router,\n    location: Location,\n    @Inject(PLATFORM_ID) platformId: Object,\n  ) {\n    if (isPlatformServer(platformId)) {\n      return;\n    }\n\n    let prevPath = location.path();\n    this.router\n      .events\n      .pipe(filter(event => (event instanceof NavigationEnd)))\n      .subscribe(() => {\n        const newPath = location.path();\n        this.metrika.hit(newPath, {\n          referer: prevPath,\n          callback: () => { console.log('hit end'); }\n        });\n        prevPath = newPath;\n      });\n  }\n}\n```\n","readmeFilename":"README.md","_rev":"1-0e7bef252d34dfb08f5ed00011c9f3f9"}