
рдЗрддрдирд╛ рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, Yandex.Metrica рдиреЗ
рдПрдХ рдЦреБрд▓реЗ рдПрдкреАрдЖрдИ рдХреА рдШреЛрд╖рдгрд╛ рдХреА, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рдореЗрдЯреНрд░рд┐рдХ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЬ рдореИрдВ рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╡рд┐рдЬреЗрдЯ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред
рдПрдкреАрдЖрдИ рдореВрд▓ рдмрд╛рддреЗрдВ
Yandex.Metrica API REST рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрд╕рд╛рдзрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХрд╛рдЙрдВрдЯрд░, рд▓рдХреНрд╖реНрдп, рдлрд┐рд▓реНрдЯрд░, рдЖрджрд┐ред I.Metrica API рд╕рд░реНрд╡рд░ рдХреЗ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рд░реАрдбрд┐рдВрдЧ, рдбрд┐рд▓реАрдЯ, рдЪреЗрдВрдЬрд┐рдВрдЧ) рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкрд░реЗрд╢рди рдХреА рдЕрдкрдиреА HTTP рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИ:
- рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: рдкрдарди рд╕рд╛рдордЧреНрд░реА
- POST: рдПрдХ рд╕рдВрд╕рд╛рдзрди рдЬреЛрдбрд╝рдирд╛
- PUT: рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рд╡рд░реНрддрди
- DELETE: рдПрдХ рд╕рдВрд╕рд╛рдзрди рд╣рдЯрд╛рдПрдВ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд╛рдЙрдВрдЯрд░реНрд╕ рд╕рдВрд╕рд╛рдзрди:
GET /counters
рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрди рджреЗрдЦреЗрдВ:
GET /counter/{id}
ред рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реА рд╕рдВрд╕рд╛рдзрди рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВ, рд▓реЗрдХрд┐рди DELETE рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░:
DELETE /counter/{id}
ред
REST рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЛ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: XML рдФрд░ JSONред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо JSON рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рд╡рд╛рдИ рдореЗрдЯреНрд░рд┐рдХрд╛ рдЦрд╛рддреЗ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЦрд╛рддрд╛ рд╕реНрд╡рд╛рдореА рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OAuth рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИред рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдЬреЛ Yandex.Metrica API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд╡рд╣ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ (
рдирд┐рд░реНрджреЗрд╢ рджреЗрдЦреЗрдВ) рдФрд░ рдЖрд╡реЗрджрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЖрд╡реЗрджрди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ
рдбреАрдмрдЧрд┐рдВрдЧ OAuth рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреБрд░рдВрдд Metrica API рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреЛрдХрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░ рдЦрд╛рддреЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ HTTP рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЯреЛрдХрди рдХреЛ рдпрд╛ рддреЛ URL рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, (
...&oauth_token=<acces_token>
), рдпрд╛ HTTP рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ
Authorization: OAuth <access_token>
ред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рди рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ OAuth рдЯреЛрдХрди рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:
- рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ Yandex рдкреГрд╖реНрда рдкрд░ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдореЗрдВ рд▓реЙрдЧ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ (рдпрджрд┐ рдЙрд╕рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ) рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрд╕рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪ рджреЗрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рд╕ URL рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП OAuth рдЯреЛрдХрди рд╡рд╛рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЯреЛрдХрди рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдореИрдиреБрдЕрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдХреЗ, рдпрд╛рдВрдбреЗрдХреНрд╕ рд╕рд░реНрд╡рд░ рдХреЗ OAuth рдХреЛ рдкрд╛рд╕ рдХрд░рдХреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рднреА рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдХрдо рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ: рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЖрд░рдИрдПрд╕рдЯреА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдПрдкреАрдЖрдИ (рд░реАрдб рдЕрдиреБрд░реЛрдзреЛрдВ) рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рдВрднрд╡ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣ рдЕрдиреБрд░реЛрдз I.Metrica API рдХреЗ рдбреЗрдореЛ рдЦрд╛рддреЗ рдореЗрдВ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
рдРрд╕рд╛ рдЕрдиреБрд░реЛрдз рдХрд╛рдЙрдВрдЯрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред
REST рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ API рдХреЗ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЕрдиреБрд░реЛрдз URL рдЬрдирд░реЗрдЯ рдХрд░рдирд╛, HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, CSON, рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ, рдЖрджрд┐ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдПрдкреАрдЖрдИ:
рдореЗрдЯреНрд░рд┐рдХрд╛ 4 рдЬреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдпрд╛ред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рдЕрдкрд╛рдЪреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдФрд░ рдкреВрд░рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЧреЗ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдПрдВ рдЬреЛ рд╕рд╛рдЗрдЯ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
Metrika4j
Metrika4j рдЖрдкрдХреЛ Yandex.Metrica рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдкрд░рд┐рдЪрд┐рдд Java рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ (рдХрдХреНрд╖рд╛рдУрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓, рдкреНрд░рдХрд╛рд░) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ HTTP рдФрд░ JSON рдХреЗ рд╕рд╛рде рдирд┐рдореНрди-рд╕реНрддрд░ рдХреЗ рдХрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдХреЗрдВрджреНрд░реАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕
MetrikaApi рд╣реИ ред рдЗрд╕рдореЗрдВ рдореАрдЯреНрд░рд┐рдХ рдХреА рдореБрдЦреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ: рдХрд╛рдЙрдВрдЯрд░ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯред рдЕрддрд┐рд░рд┐рдХреНрдд
MetrikaApi
(рдЧреЛрд▓, рдлрд┐рд▓реНрдЯрд░ рдЗрддреНрдпрд╛рджрд┐) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдореБрдЦреНрдп
MetrikaApi
рд╡рд░реНрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд┐рдиреА-рдПрдкреАрдЖрдИ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрд░реАрдХреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ REST рдХреЙрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдореИрдВ рдореАрдЯреНрд░рд┐рдХ рдПрдкреАрдЖрдИред REST рдХреЙрд▓ рдореЗрдВ рджреА рдЧрдИ рджрд▓реАрд▓реЗрдВ API рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рджреА рдЧрдИ рджрд▓реАрд▓реЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ (рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ API рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЕрд▓рдЧ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ)ред
Metrika4j JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдХреНрд╕ рджреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
рдЬреИрдХреНрд╕рди JSON рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░
org.json ред рдЬреИрдХреНрд╕рди рдХреЗ рд▓рд┐рдП, 100% рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, org.json рдХреЗ рд▓рд┐рдП - рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдкрд░реНрдпрд╛рдкреНрдд: рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред Org.json рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдВрдбреНрд░рд┐рдпреЛрдб рдПрдкреАрдЖрдИ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдбреЗрд╡рд▓рдкрд░
JsonMapper рдФрд░
JsonObject рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
Metrika4j рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ
MetrikaApi
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
MetrikaApi рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛
рд╣реЛрдЧрд╛ ред рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ OAuth рдЯреЛрдХрди рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдЖрдЧреЗ, рдирд┐рд░реНрдорд┐рдд рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХреЛрдИ рднреА рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдореАрдЯреНрд░рд┐рдХ рдореЗрдВ рдореМрдЬреВрдж рд▓рдЧрднрдЧ рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯ API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЙрдкрд▓рдмреНрдз рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рд╕реЗрдЯ
рд░рд┐рдкреЛрд░реНрдЯ рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдЪрдпрдирд┐рдд рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
MetrikaApi.makeReportBuilder(Reports report, int counterId)
рд╡рд┐рдзрд┐
MetrikaApi.makeReportBuilder(Reports report, int counterId)
рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдСрдмреНрдЬреЗрдХреНрдЯ -
ReportBuilder рд░рд┐рдкреЛрд░реНрдЯ
рдмрд┐рд▓реНрдбрд░ рд▓реМрдЯрд╛рдПрдЧрд╛ред рд░рд┐рдкреЛрд░реНрдЯ рдмрд┐рд▓реНрдбрд░ рдореЗрдВ, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд░рд┐рдкреЛрд░реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ (рд╕рдордп рдЕрдВрддрд░рд╛рд▓, рд╕реЙрд░реНрдЯрд┐рдВрдЧ, рдЖрджрд┐) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрдм рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ
ReportBuilder.build()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдЬреЛ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдЧрд╛ рдФрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд▓реМрдЯрд╛рдПрдЧрд╛ред
рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ
рд░рд┐рдкреЛрд░реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА (рдпреЛрдЧ, рддрд┐рдерд┐ рд╕реАрдорд╛ рдЬрд┐рд╕рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЖрджрд┐)ред рдкрд░рд┐рдгрд╛рдо рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ
ReportItem рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдбреЗрдЯрд╛
getXXX(String fieldName)
рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
getXXX(String fieldName)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ
getXXX(String fieldName)
рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди)ред Yandex.Metrica API рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдирд╛рдо рдФрд░ рд▓реМрдЯрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
Metrika4j рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЬрд╛рд╡рджреЛрдХ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Android рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯ
Yandex.Metrica рдФрд░ Metrika4j API рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдХреЗ рдирд┐рдкрдЯрд╛рди рдХреЗ рдмрд╛рдж, рдЖрдк Yandex.Metrica рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рддрдХ, рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╣рдо рдЦреБрдж рдХреЛ рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рдирдореНрд░ рд▓рдХреНрд╖реНрдп рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд▓реЗрдВрдЧреЗ: рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рд╕рд╛рдЗрдЯ рдкрд░ рд╡рд░реНрддрдорд╛рди рдЯреНрд░реИрдлрд╝рд┐рдХ рджрд┐рдЦрд╛рдПрдЧрд╛ред рд╡рд┐рдЬреЗрдЯ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб
MetrikaWidget рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред Metrika4j рдХреЛрдб рдХреА рддрд░рд╣, рдпрд╣ рдиреНрдпреВрдирддрдо рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
OAuth рдкреНрд░рд╛рдзрд┐рдХрд░рдг
MetrikaApi
рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рдПрдХ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк
MetrikaApi
рдЙрджрд╛рд╣рд░рдг
MetrikaApi
рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдХреЛрдб
рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред
private static MetrikaApi api; public static synchronized MetrikaApi getApi(Context context) { if (api == null) {
рдпрджрд┐ рдЖрд╡реЗрджрди рдкрд╣рд▓реА рдмрд╛рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ OAuth рдЯреЛрдХрди рдЕрднреА рддрдХ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреЛрдХрди рдЕрдиреБрд░реЛрдз URL рдкрд░ рдЬрд╛рдПрдВ:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://oauth.yandex.ru/authorize?response_type=token&client_id=1359488e196b4bfa92615d0885b106d4")); startActivity(intent);
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЦреБрд▓реЗ рд╣реБрдП рдкреГрд╖реНрда рдХреА рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ "рдЖрд╡реЗрджрди рдпреИрдВрдбреЗрдХреНрд╕ рдкрд░ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реИред" рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рдФрд░ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдлрд┐рд░ рдордЬрд╝рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдЯреЛрдХрди рдХреЛ рд╡рд╛рдкрд╕ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рд╣реИрдВрдбрд▓рд░ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рди рд╣реЛ)ред
AndroidManifest.xml
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
<activity android:name="ru.metrikawidget.AuthTokenActivity" android:label="OAuth"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="metwd" android:host="oauthtoken"/> </intent-filter> </activity>
рд╣рдордиреЗ "oauthtoken" рдЫрджреНрдо-рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП "рдореЗрдЯрд╡рд╛рд░реНрдб" рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ
AuthTokenActivity рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ред рдЕрдм рдпрд╣ рдХреЙрд▓рдмреИрдХ рдпреВрдЖрд░рдЖрдИ
metwd://oauthtoken
рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ
metwd://oauthtoken
рдкрдВрдЬреАрдХреГрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА
рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ
metwd://oauthtoken
, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдлрд▓ OAuth рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж
AuthTokenActivity
рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ, рдЖрдкрдХреЛ рдкреНрд░рд╛рдкреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рд╕рд╛рдЭрд╛рдХрд░рдг рдореЗрдВ рдЯреЛрдХрди рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
String fragment = getIntent().getData().getFragment(); String[] parts = fragment.split("\\&"); for (String part : parts) { if (part.startsWith("access_token=")) { String token = part.substring(param.length(), part.length());
рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐
рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЛрдб рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд╣реИ:
MetrikaApi api = Globals.getApi(context);
рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдХреЛрдб рдХреЛ "рд╣реЗрдб-рдСрди" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Metrica API рд╕рд░реНрд╡рд░ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди HTTP рдЕрдиреБрд░реЛрдз рд╕реНрд╡рдпрдВ рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдзреАрдореА рдФрд░ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдореЛрдмрд╛рдЗрд▓ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдЬреЗрдЯ рдХреЛ "рдлреНрд░реАрдЬ" рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА рдЬреЛ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдирд┐рд▓рдВрдмрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХрд╛рдЙрдВрдЯрд░ рд╕реВрдЪреА рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓реАрдХреГрдд рдХреЛрдб рд╣реИ (рдкреВрд░рд╛ рд╕рдВрд╕реНрдХрд░рдг
рд╡рд┐рдЬреЗрдЯрд╕реЗрдЯрдЕрдк рдХреНрд▓рд╛рд╕рд┐рдЯреА рдореЗрдВ рд╣реИ ):
private class CountersLoadTask extends AsyncTask<Void, Void, Counter[]> { private ProgressDialog progressDialog; protected void onPreExecute() { progressDialog = ProgressDialog.show(...); } protected void onPostExecute(Counter[] counters) { progressDialog.dismiss(); counterList.addAll(Arrays.asList(counters));
рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛ рдЬреЛ "рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп" рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдПрдВрдбреНрд░реЙрдЗрдб рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ,
рдкреНрд░рд╕рд╛рд░рдг рд░рд┐рд╕реАрд╡рд░ рд╣реИ ред рдкреНрд░рд╕рд╛рд░рдг рд░рд┐рд╕реАрд╡рд░ рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ рдЫреЛрдЯрд╛ рд╣реИ: рдпрд╣ рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рддреБрд░рдВрдд рдорд░ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░реАрдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░рд┐рд╕реАрд╡рд░-рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдорд░ рд╕рдХрддрд╛ рд╣реИ: рдЙрджрд╛рд╕реАред рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░ рдЧрд╛рдЗрдб рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИред рддреЛ
рдЪрд▓рд┐рдП рдЗрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ: рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд╛рддрд╛ (
MetrikaWidgetProvider ) рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ
рдЕрджреНрдпрддрди рд╕реЗрд╡рд╛ рдореЗрдВ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
UpdateService
, рдмрджрд▓реЗ рдореЗрдВ,
AsyncTask
рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЕрдиреНрдпрдерд╛, рдлрд┐рд░ рд╕реЗ рд╣рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдПрдкреАрдЖрдИ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЙрдЯ рд░рд┐рд╕реНрдкреЙрдиреНрд╕рд┐рдВрдЧ" рд╡рд┐рдВрдбреЛ рдорд┐рд▓рддреА рд╣реИ)ред
рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд░реНрд╢рди
рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИ рдЬреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб
рдбреЗрд╡рд▓рдкрд░ рдЧрд╛рдЗрдб рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВ
MetrikaWidgetProvider
рдФрд░
UpdateService
рдХреЗ
рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ
UpdateService
ред
рд╡рд┐рдЬреЗрдЯ рддреАрди рдЕрд╡рд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: "рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд", "рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ" рдФрд░ "рдиреЛ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди"ред рд╡рд┐рдЬреЗрдЯ рдЯрд╛рдЗрдорд░ рдпрд╛ рд╡рд┐рдЬреЗрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд╡рд┐рдЬреЗрдЯ рдХреА рдирд┐рдпрдорд┐рдд рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЖрдЬ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдкрд░ рд╡рд┐рдЬрд╝рд┐рдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡рд┐рдЬреЗрдЯ рдорд╛рдирдХ рдмрд╛рд░ рдЪрд╛рд░реНрдЯ - "рдЗрдВрджреНрд░рдзрдиреБрд╖" рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ Yandex.Miprica рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ
- рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рддрд╛рдХрд┐ рд╡рд╣ рд╡рд┐рдЬреЗрдЯ рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рд╕реЗ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗред рд╡рд┐рдЬреЗрдЯ рдПрдкреАрдЖрдИ рдореЗрдЯреНрд░рд┐рдХ рдореЗрдВ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рдЙрд▓рдЯрд╛ "рдЗрдВрджреНрд░рдзрдиреБрд╖" рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
- рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ - рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрдо рд╕рдВрддреГрдкреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ "рдЗрдВрджреНрд░рдзрдиреБрд╖" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд, рд▓рдЧрднрдЧ рдЧреНрд░реЗред
рдпрджрд┐ рд╡рд┐рдЬреЗрдЯ "рдиреЛ рдХрдиреЗрдХреНрд╢рди" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ рд╣реЛрдЧрд╛ рдЬрдм рдпрд╣ рдХрдиреЗрдХреНрд╢рди рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддреБрд░рдВрдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рджреЗрдЦ рд╕рдХреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд╛рддрд╛ рд╡рд┐рдЬреЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╕рд┐рд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИ:
<receiver android:name="ru.metrikawidget.MetrikaWidgetProvider"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> <action android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED"/> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> ... </receiver>
рдЗрд╕ рддрд░рд╣ рдХреА рдШрдЯрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрдиреЗрдХреНрд╢рди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрджреНрдпрддрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
рд╡рд┐рдЬреЗрдЯ рд╕реНрдерд╛рдкрдирд╛
рдПрдХ рд╡рд┐рдЬреЗрдЯ
MetrikaWidget рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдПрдХ Android рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ - рдЖрдк рддреИрдпрд╛рд░ рд╡рд┐рдЬреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Android Market рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рдпрд╛
GitHub рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдмрд┐рд▓реНрдбред

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ "Y. Metrika" рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдиреА-рдирд┐рд░реНрджреЗрд╢ рд╣реИред