IOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмреИрдирд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди



рдЖрдЬ рд╣рдо рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЦреЛрд▓ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рддрдХрдиреАрдХреА рд╕рдореНрдореЗрд▓рдиреЛрдВ рдФрд░ рдмреИрдардХреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдмреЛрд▓реА рдЬрд╛рддреА рд╣реИрдВред рдпрд╣ рдФрд░ рдмрд╛рдж рдХреА рдкреЛрд╕реНрдЯ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧреА рдХрд┐ рдпреВрдПрд╕рдП рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп iFunny iOS рдордиреЛрд░рдВрдЬрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡рд┐рдореБрджреНрд░реАрдХрд░рдг рддрдВрддреНрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╡рд┐рдЬреНрдЮрд╛рдкрди рдореБрдХреНрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдореБрджреНрд░реАрдХрд░рдг рдХреЗ рдореБрдЦреНрдп рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдм, рдЬрдм 2011 рдореЗрдВ рдЖрдИрдлрдиреА рджрд┐рдЦрд╛рдИ рджреА рддреЛ рдХреМрди рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдереЗ? рд╕реЗрд╡рд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдордЬрдмреВрдд, рдЯрд┐рдХрд╛рдК рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдереА, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рджрд┐рди рд╕реЗ рд╣реА рдХрдВрдкрдиреА рдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдлрд╝реНрд▓рд░реНрдЯ рди рдХрд░рдиреЗ рдФрд░ рд╕рд╢рд░реНрдд рдкреВрдВрдЬреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рди рд╣реЛрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЙрд╕ рд╕рдордп, рдореБрджреНрд░реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╡рд┐рдХрд▓реНрдк рд╕реЗрд╡рд╛ рдХрд╛ рдПрдХ рдореБрдлреНрдд рдЫреАрди-рдЫрд╛рдВрдЯ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдирд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмреЗрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдерд╛ред рдЙрдкрднреЛрдХреНрддрд╛ рдпреБрд╡рд╛, рдЕрдиреБрднрд╡рд╣реАрди рдерд╛ рдФрд░ рдПрдХ рдбреЙрд▓рд░ рд╕реЗ рдЕрдзрд┐рдХ рдХреА рд░рд╛рд╢рд┐ рдХреЗ рд╕рд╛рде рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдерд╛ред

рд╕рд░рд▓ рдЧрдгрд┐рдд рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ 10% рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде, 10 рд╕реЗрдВрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рдПрдЖрд░рдкреАрдпреВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рдХрд╛рд░реНрдп рд╣реИред

рдлрд┐рд░ рдореБрдЭреЗ рдпрд╣ рд╕реЛрдЪрдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдЖрдк рдЙрддреНрдкрд╛рдж рдХреЛ рдФрд░ рдХреИрд╕реЗ рдореБрджреНрд░реАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдЬреНрдЮрд╛рдкрди рдореЙрдбрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реЗрдм рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рдЪреБрдХрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдлреЛрди рдкрд░ рднреА рдЦрд┐рд▓ рдЬрд╛рдПрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд┐рдореБрджреНрд░реАрдХрд░рдг рдХреЗ рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдореЙрдбрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ AdWhirl рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рдЬрд┐рд╕рдиреЗ рдЖрдкрдХреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдПрд╕рдбреАрдХреЗ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдШреБрдорд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдиреЗ рд╣рдореЗрдВ рдлрд┐рд▓рд░реЗрдЯ рдХреЛ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдФрд╕рддрди 50% рддрдХ рдмрдврд╝рд╛рдиреЗ рдФрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдореЙрдбрд▓ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ-рдбреЙрд▓рд░ рдХреА рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдЖрдп рдЕрд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдорд╛рдВрдЧ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдмрд╣реБрдд рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд╛ рд╕рдВрдЧрдарди рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд╛ рдореБрдЦреНрдп рдЪрд╛рд▓рдХ рдмрди рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдЬ рднреА рдЗрд╕рдХрд╛ рд╢реЛрд╖рдг рдЬрд╛рд░реА рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдгрд╛рд▓реА, рдХрдо рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдХрд┐ iFunny рд╕реНрддрд░ рдХреА рдмрдбрд╝реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред 2011 рдореЗрдВ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рд╢реБрд░реВ рд╣реБрдЖ, рдХрдВрдкрдиреА рдиреЗ рдореЛрдмрд╛рдЗрд▓ рдмреИрдирд░ рдФрд░ рджреЗрд╢реА рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рддрдВрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрдирд╛рдпрд╛ рдФрд░ рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рд░рд╛рдЬрд╕реНрд╡ рдореЗрдВ 40 рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рдХреА, рдЬрд┐рд╕рдиреЗ рди рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рднреА рдирд┐рд╡реЗрд╢ рдХрд┐рдпрд╛ред

MoPub рдФрд░ рдХрдВрдкрдиреА


2012 рдХреЗ рдмрд╛рдж рд╕реЗ, рд╣рдо AdWhirl рд╕реЗ MoPub рдореЗрдВ рдЪрд▓реЗ рдЧрдП рд╣реИрдВред

MoPub рдПрдХ рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдмреЗрд╣рддрд░реАрди рдЙрдкрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • MoPub рдмрд╛рдЬрд╝рд╛рд░ - рдЦреБрдж рдХрд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╡рд┐рдирд┐рдордп;
  • рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреНрдЮрд╛рдкрди рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдордзреНрдпрд╕реНрде;
  • рдПрдХ рдСрд░реНрдбрд░рд┐рдВрдЧ рддрдВрддреНрд░ рдЬреЛ рдЖрдкрдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдмреИрдирд░ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЙрдирдХреЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

MoPub рдХреЗ рдореБрдЦреНрдп рд▓рд╛рдн:

  • рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо;
  • рдирдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рддрдВрддреНрд░;
  • рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд
  • рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рд▓рдХреНрд╖реНрдпреАрдХрд░рдг рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛;
  • рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдкрдиреА рдЦреБрдж рдХреА рдПрдХ рд╕рдореНрдореЗрд▓рди рднреА рд╣реИред

MoPub рдХреЗ рдиреБрдХрд╕рд╛рди рднреА рд╣реИрдВ:

  • рдЧрд┐рдЯрд╣рдм рдкрд░ рдкреВрд▓ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрди рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ;
  • рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рд╕рддреНрдп рдХреА рд╢рдХреНрддрд┐


рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд░реВрд╕реА рдлрд┐рд▓реНрдо рдХреЗ рдирд╛рдпрдХ рдиреЗ рдХрд╣рд╛: "рд╕рдЪреНрдЪрд╛рдИ рдореЗрдВ рддрд╛рдХрдд рд╣реИред" рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ рдЙрди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдИрдлрдиреА рдХреЗ рдкрд╣рд▓реЗ рдорд┐рд▓рд┐рдпрди рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдмрд╛рдж, рджрд░реНрд╢рдХреЛрдВ рдХреА рд╡реГрджреНрдзрд┐ рдФрд░ 100 рд╕реЗ рдЕрдзрд┐рдХ рднрд╛рдЧреАрджрд╛рд░реЛрдВ рд╕реЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛ред

рд╕рд╛рдордЧреНрд░реА


рд╡рд┐рдЬреНрдЮрд╛рдкрди рдмрд╛рдЬрд╛рд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреА рдПрдХ рдмрд╣реБрдд рд╣реА рдмрдВрдж "рдЬрд╛рддрд┐" рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдПрдЧреНрд░реАрдЧреЗрдЯрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ: рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпреЛрдВ рд╕реЗ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рджрд░реНрд╢рдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд▓рд╛рдЦреЛрдВ рдмрдЬрдЯ рд╕реЗ рд▓реЗрдХрд░ рдЫреЛрдЯреА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдмреИрдирд░ рдкреНрд░реА-рдореЙрдбрд░реЗрд╢рди рдФрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╕рд╛рдордЧреНрд░реА рдкрд░ рд╕рдЦреНрдд рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХреА рдпрд╣ рдирд┐рдХрдЯрддрд╛ рдФрд░ рд╡рд┐рдЦрдВрдбрди, рд╕рдмрд╕реЗ рдИрдорд╛рдирджрд╛рд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЛ рдЙрди рдХреНрд░рд┐рдПрдЯрд┐рд╡ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЖрд╡реЗрджрди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рдирд┐рд╖рд┐рджреНрдз рдпрд╛ рдЦрд░рд╛рдм рдХрд░рддреЗ рд╣реИрдВред

рд╡рд┐рдЬреНрдЮрд╛рдкрди рдмреИрдирд░ рдореЗрдВ "рдЕрд╢реНрд▓реАрд▓" рд╕рд╛рдордЧреНрд░реА рдХреА рдХрдИ рдореБрдЦреНрдп рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рд╣реИрдВ:

  • рдЕрд╢реНрд▓реАрд▓ рд╕рд╛рдордЧреНрд░реАред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдпрд╣ рдХрдо рдФрд░ рдХрдо рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЗрд╕рд▓рд┐рдП рдЪрд┐рддреНрд░ рдпрд╣рд╛рдБ рдирд╣реАрдВ рд╣реЛрдЧрд╛
  • рдмреИрдирд░ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдЕрд▓рд░реНрдЯ, рдПрдХ рдЙрджрд╛рд╣рд░рдг twitter.com/IfunnyStates/status/1029393804749668352 рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
  • рдзреНрд╡рдирд┐ рдХреЗ рд╕рд╛рде рд╕рд╛рдордЧреНрд░реАред рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдиреЗрдЯрд╡рд░реНрдХ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдирд┐рдореЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖рд┐рджреНрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд┐рдП рдмрд┐рдирд╛ рдзреНрд╡рдирд┐ рдЪрд▓рддреА рд╣реИ, рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рдзреНрдпрд╛рди рдЦреАрдВрдЪрдирд╛ред рдПрдХ рдЕрдЪреНрдЫрд╛ рдмреИрдирд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдИрдорд╛рдирджрд╛рд░ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ: рдХрднреА-рдХрднреА рдЯрд┐рдордЯрд┐рдорд╛рддреЗ рд╡реАрдбрд┐рдпреЛ рдмреИрдирд░ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмреИрдирд░ рдкрд░ рдЯреИрдк рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдмреЗрдИрдорд╛рдиреА рддрд░реАрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


рд╡реИрд╕реЗ, рд░реВрд╕ рдореЗрдВ, рдЗрд╕ рдмреИрдирд░ рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреИрдк рдХреБрдЫ рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрдб рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рддрдХ рдЖрдк рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ рддрдм рддрдХ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмреЗрдИрдорд╛рди рддрд░реАрдХрд╛ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдпрд╣ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рд╣реИред

рдСрдЯреЛ рдХреНрд▓рд┐рдХ


рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдмрддрд╛рддрд╛ рд╣реИ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддреНрдпрдВрдд рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рдорд▓рд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, WKWebView рдпрд╛ UIWebView рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрдВрджрд░ рдЫреЗрдж, рдЖрдк рдРрд╕реЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдмреИрдирд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрд╡рдпрдВ рдЦреЛрд▓реЗрдВрдЧреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдХрд░реЗрдВрдЧреЗред

MoPub рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреИрдирд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

<a href="https://ifunny.co" id="testbutton">test</a> <script>document.getElementById('testbutton').click(); </script> 

рдЗрд╕рдиреЗ MoPub рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛, 4.13 рд╕рдВрд╕реНрдХрд░рдг рддрдХред

MoPub рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЦреЛрдЬ рдХрд░рдХреЗ, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓рд┐рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ рдЬреЛ рди рдХреЗрд╡рд▓ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЗрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП AppStore рдореЗрдВ рднреА рднреЗрдЬ рджреЗрдЧрд╛ рдФрд░ рдмреИрдирд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦреЗрдЧрд╛ред

рд╡реИрд╕реЗ, iOS рдХреЗ рд▓рд┐рдП MoPub SDK рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 4.13.0 рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреНрд╕ рдореЗрдВ рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ SDK рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рдЫреЗрдж рдерд╛, рдФрд░ MoPub рдХреЗ рдмреЗрдИрдорд╛рди рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдиреЗ рдЗрд╕рдХрд╛ рдХрд╛рдлреА рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╢реЛрд╖рдг рдХрд┐рдпрд╛ред рд▓реЙрдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛, рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рд╣рд░ рджрд┐рди рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд┐рдирд╛ рдмреИрдирд░ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП 2 рдорд┐рд▓рд┐рдпрди рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

MoPub рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдФрд░ рджреЛрд╣рд░рд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рдЬреЛ iFunny рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдмрдВрдж рдХреЛрдб рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмреИрдирд░ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдХреЗ рдЙрднрд░рддреЗ рдСрдЯреЛ-рдХреНрд▓рд┐рдХ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╣реЛрдЧрд╛ред
iFunny рд╕рднреА рд╡рд┐рдЬреНрдЮрд╛рдкрди рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдРрд╕реЗ рдмреИрдирд░реЛрдВ рдХреА рд╕реВрдЪрдирд╛ рджреЗрддреА рд╣реИред рдЪреВрдВрдХрд┐ iFunny рдХреЗ рдпреБрд╡рд╛ рджрд░реНрд╢рдХ рд╡рд┐рдЬреНрдЮрд╛рдкрдирджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╛рд░реНрдЯрдирд░ рдЙрдирд╕реЗ рдорд┐рд▓рдиреЗ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЛ рд░реЛрдЯреЗрд╢рди рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рджреБрд░реНрдШрдЯрдирд╛


рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдирд╛ рд╣рдореЗрд╢рд╛ рдмреБрд░рд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдЬрдм рд╡реЗ рдмрдВрдж рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдлреБрдиреВ рдореЗрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рджреБрд░реНрдШрдЯрдирд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЧрдИ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдХрдИ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • рдкреНрд░рдгрд╛рд▓реА

рдЗрдирдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, WKWebView (UIWebView), OpenGL рдХреЗ рдЕрдкрд╡рд╛рдж рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рджреБрд░реНрдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реАрдзреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рдерд╛, рдкрд╣рд▓реЗ рд╡реЗрдмрд╡реЗрд▓ рдХреЗ рд╕рд╛рде рд╡реЗрдмрд╡реНрдпреВ рдШрдЯрдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдерд╛ред

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдРрд╕реЗ рдХреНрд░реИрд╢ рдХрд╛ рд╕реНрдЯреИрдХреНрд░реЗрд╕ рджрд┐рдЦрддрд╛ рд╣реИ:

1 libGPUSupportMercury.dylib gpus_ReturnNotPermittedKillClient + 12
2 AGXGLDriver gldUpdateDispatch + 7132
3 libGPUSupportMercury.dylib gpusSubmitDataBuffers + 172
4 AGXGLDriver gldUpdateDispatch + 12700
5 WebCore WebCore::GraphicsContext3D::reshape(int, int) + 524
6 WebCore WebCore::WebGLRenderingContextBase::initializeNewContext() + 712
7 WebCore WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase(WebCore::HTMLCanvasElement*, WTF::RefPtr<WebCore::GraphicsContext3D>&&, WebCore::GraphicsContext3D::Attributes) + 512
8 WebCore WebCore::WebGLRenderingContext::WebGLRenderingContext(WebCore::HTMLCanvasElement*, WTF::PassRefPtr<WebCore::GraphicsContext3D>, WebCore::GraphicsContext3D::Attributes) + 36
9 WebCore WebCore::WebGLRenderingContextBase::create(WebCore::HTMLCanvasElement*, WebCore::WebGLContextAttributes*, WTF::String const&) + 1272
10 WebCore WebCore::HTMLCanvasElement::getContext(WTF::String const&, WebCore::CanvasContextAttributes*) + 520
11 WebCore WebCore::JSHTMLCanvasElement::getContext(JSC::ExecState&) + 212
12 JavaScriptCore llint_entry + 27340
13 JavaScriptCore llint_entry + 24756
14 JavaScriptCore llint_entry + 24756
15 JavaScriptCore llint_entry + 24756
16 JavaScriptCore llint_entry + 25676
17 JavaScriptCore llint_entry + 24756
18 JavaScriptCore llint_entry + 24656
19 JavaScriptCore vmEntryToJavaScript + 260
20 JavaScriptCore JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 164
21 JavaScriptCore JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 348
22 JavaScriptCore JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&) + 160
23 WebCore WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 980
24 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&, WebCore::EventTargetData*, WTF::Vector<WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow, 16ul>&) + 616
25 WebCore WebCore::EventTarget::fireEventListeners(WebCore::Event&) + 324
26 WebCore WebCore::EventContext::handleLocalEvents(WebCore::Event&) const + 108
27 WebCore WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WebCore::Event&) + 876
28 WebCore non-virtual thunk to WebCore::HTMLScriptElement::dispatchLoadEvent() + 80
29 WebCore WebCore::ScriptElement::execute(WebCore::CachedScript*) + 360
30 WebCore WebCore::ScriptRunner::timerFired() + 456
31 WebCore WebCore::ThreadTimers::sharedTimerFiredInternal() + 144
32 WebCore WebCore::timerFired(__CFRunLoopTimer*, void*) + 24
33 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 24
34 CoreFoundation __CFRunLoopDoTimer + 868
35 CoreFoundation __CFRunLoopDoTimers + 240
36 CoreFoundation __CFRunLoopRun + 1568
37 CoreFoundation CFRunLoopRunSpecific + 440
38 WebCore RunWebThread(void*) + 452
39 libsystem_pthread.dylib _pthread_body + 236
40 libsystem_pthread.dylib _pthread_start + 280
41 libsystem_pthread.dylib thread_start + 0


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣реИ, рддреЛ рдУрдкрдирдЬреАрдПрд▓ рдЗрдВрдЬрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдБ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЫреЛрдбрд╝рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдмреИрдирд░ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд┐рдЬреНрдЮрд╛рдкрди рджреГрд╢реНрдп рдХреЛ рд╕реНрдХреНрд░реАрди рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рддрд╛рдХрд┐ WebView рдШрдЯрдХ OpenGL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗред
рдЬрдм рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдВ рдЬреИрд╕рд╛ рд╡рд╣ рдерд╛ред

рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдХреЛрдб рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 - (void)onWillResignActive { if (self.adView.superview) { UIGraphicsBeginImageContext(self.adView.bounds.size); [self.adView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *adViewScreenShot = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); adViewThumbView = [[UIImageView alloc] initWithImage:adViewScreenShot]; adViewThumbView.backgroundColor = [UIColor clearColor]; adViewThumbView.frame = self.adView.frame; NSInteger adIndex = [self.adView.superview.subviews indexOfObject:self.adView]; [self.adView.superview insertSubview:adViewThumbView atIndex:adIndex]; [self.adView removeFromSuperview]; } } - (void)onDidBecomeActive { if (self.adView && adViewThumbView) { NSInteger adIndex = [adViewThumbView.superview.subviews indexOfObject:adViewThumbView]; [adViewThumbView.superview insertSubview:self.adView atIndex:adIndex]; [adViewThumbView removeFromSuperview]; adViewThumbView = nil; } } 

  • рдПрдХреАрдХрд░рдг

рдпреЗ рд╡реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ iFunny, Mopub рдФрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдЬрдВрдХреНрд╢рди рдкрд░ рд╣реЛрддреА рд╣реИрдВред
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╡реЗ рдкреНрд░рджрд╛рддрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рдирдП рддрд░реАрдХреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред

рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЖрдЦрд┐рд░реА рдорд╛рдорд▓рд╛ рдЗрд╕ рд╕рд╛рд▓ рдЬреВрди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЕрдЧрд▓реЗ рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рдерд╛ред рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕реЗ рджреЛ рдмрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЬреИрд╕рд╛ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╣реБрдЖ рдерд╛, рд╕рдордп-рд╕рдордп рдкрд░ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХрд╛ рдПрдХ рдлреНрд░рд┐рдЬрд╝ рд╣реЛрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкреНрд░реЗрд╖рдг рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ рдкрдбрд╝рд╛ред

IFunny QA рд╡рд┐рднрд╛рдЧ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрджреНрдпрддрди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд╛рдИ рдЧрдИред

  • рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд░реИрд╢ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рд╣реЛрддрд╛ рд╣реИред

рд╡реЗ рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХреЗ рдмреИрдХрдПрдВрдб рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдФрд░ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреА рдХрдореА рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдРрд╕реЗ рдХреНрд░реИрд╢ рдЕрдХреНрд╕рд░ рдмрдбрд╝реЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд▓реНрджреА рд╕реЗ рддрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдРрд╕реЗ рдорд╛рдорд▓реЗ рдереЗ рдЬрдм рджреБрд░реНрдШрдЯрдирд╛ рдореБрдХреНрдд iFunny рдкреНрд░рддрд┐ рджрд┐рди рдорд╛рдирдХ 99.8% рд╕реЗ 80% рддрдХ рдЧрд┐рд░ рдЧрдпрд╛, рдФрд░ рдХрд╣рд╛рдиреА рдореЗрдВ рдирд╛рд░рд╛рдЬ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд╕рд┐рдпреЛрдВ рдореЗрдВ рдереАред

рдЙрддреНрдкрд╛рджрдХрддрд╛


рдмреИрдирд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╡реНрдпреВ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмреИрдирд░ рдЕрдкрдиреЗ рд╕рднреА рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдП рд╡реЗрдмрд╡реНрдпреВ рдХрд╛ рдЖрд░рдВрдн рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рд╕рд╛рдереА рдЕрдкрдиреЗ рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА WebView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдмреИрдирд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╡реЗрдм рдкрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд╛ рдПрдХ рд╡рдВрд╢рдЬ рд╣реИред

рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрдирдпрди рдХреЗ рдмрд╛рдж рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЕрдВрджрд░ рдореЗрдореЛрд░реА рд▓реАрдХ рд╣реЛрддреЗ рд╣реИрдВред Xcode рдореЗрдВ рдореЗрдореЛрд░реА рдЧреНрд░рд╛рдлрд╝ рдЯреВрд▓ рдХреЗ рджрд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓реАрдХ рдХреЛ рдвреВрдВрдврдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдЕрдм рдкрд╛рд░реНрдЯрдирд░реНрд╕ рдХреЛ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдмрддрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдиреАрдЪреЗ iFunny рдмреЗрдХрд╛рд░ рдХрд╛ GIF рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдирд╣реАрдВ рд╣реИ:



рд╕рдорд╛рдзрд╛рди


рд▓реЗрдХрд┐рди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, iFunny рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рд╣рд░ рджрд┐рди рдЕрдкрдиреЗ рд▓рд╛рдЦреЛрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдореБрд╕реНрдХреБрд░рд╛рд╣рдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рдХрд╛рдо рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдХреЗ рдкрд╛рд╕ рдХрдИ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордп рдкрд░ рдЙрдирдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо


рдЕрдм iFunny рдореЗрдВ рдЕрдкрд╡рд╛рдж рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдлреИрд▓ рдЧрдпрд╛ рд╣реИ: рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо ClickHouse рдкрд░ рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдмреИрдХреЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдЖрд╡реЗрджрди рдореЗрдВ рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрд╛рдо рд╡рд┐рдЬреНрдЮрд╛рдкрди рдореЗрдВ рдЕрд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд▓реЙрдЧрд┐рдВрдЧ рдерд╛ред

рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдХ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЙрд▓ iFunny рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛рдКрдВрдЧрд╛ред

IFAdView


рдпрд╣ MPAdView рд╡рд░реНрдЧ рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИ (рдпрд╣ MoPub рдкрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ)ред

рд╣рд┐рдЯрдЯреЗрд╕реНрдЯ: рд╡рд┐рде рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { UIView *hitView = [super hitTest:point withEvent:event]; if (hitView) { [[IFAdsExceptionManager instance] triggerTouchView]; } return hitView; } 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдЗрд╕ рддрдереНрдп рдкрд░ рдЯреНрд░рд┐рдЧрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреАред

IFURLProtocol


рд╣рдореЗрдВ NSURLProtocol рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдФрд░ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди:

 + (BOOL)canInitWithRequest:(NSURLRequest *)request { __weak NSString *wRequestURL = request.URL.absoluteString; dispatch_async(dispatch_get_main_queue(), ^{ if (wRequestURL == nil) return; if ([wRequestURL hasPrefix:@"itms-appss://itunes.apple.com"] || [wRequestURL hasPrefix:@"itms-apps://itunes.apple.com"] || [wRequestURL hasPrefix:@"itmss://itunes.apple.com"] || [wRequestURL hasPrefix:@"http://itunes.apple.com"] || [wRequestURL hasPrefix:@"https://itunes.apple.com"]) { [[IFAdsExceptionManager instance] adsTriggerItunesURL:wRequestURL]; } }); return NO; } 

рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ AppStore рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░рд┐рдЧрд░ рд╣реИ, рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдкрд▓рдмреНрдз URL рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВред

IFAdsExceptionManager


рдПрдХ рд╡рд░реНрдЧ рдЬреЛ рдЯреНрд░рд┐рдЧрд░ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЙрдЧ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддрд╛ рд╣реИред

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреНрд░рд┐рдЧрд░ рд╣реИрдВ, рдореИрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

 - (void)triggerTouchView;       . <source lang="objectivec">- (void)triggerItunesURL:(NSString *)itunesURL; 

рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ iTunes рдореЗрдВ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред

 - (void)triggerResignActive; 

рдПрдХ рдЖрд╡реЗрджрди рджреНрд╡рд╛рд░рд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░рд┐рдЧрд░ред рдпрд╣ рджреЛ рдкрд┐рдЫрд▓реЗ рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред

 - (void)resetTriggers; 

рдЯреНрд░рд┐рдЧрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред рд╣рдо рдЗрд╕реЗ рддрдм рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрдм рд╣рдо рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдпрд╛ рдЬрдм рд╣рдо AppStore рдХреЛ рд╕реНрд╡рдпрдВ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ iOS рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрддреЗ рд╣реИрдВред

 @property (nonatomic, strong) FNAdConfigurationInfo *lastRequestedConfiguration; @property (nonatomic, strong) FNAdConfigurationInfo *lastLoadedConfiguration; @property (nonatomic, strong) FNAdConfigurationInfo *lastFailedConfiguration; 

рдкрд┐рдЫрд▓реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдпрд╛ рдЕрд╕рдлрд▓ рдЕрдиреБрд░реЛрдзрд┐рдд рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдгред рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛рдлреА рд╕рд░рд▓ рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рдкреНрд░рднрд╛рд╡реА рд╣реИред рдпрд╣ рд╣рдореЗрдВ MoPub рд╕реЗ рди рдХреЗрд╡рд▓ рдСрдЯреЛ рдЦреЛрдЬреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рднреАред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдСрдЯреЛ-рдУрдкрди рд╡рд╛рд▓реЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЕрдХреНрд╕рд░ SKStoreProductViewController рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдм рд╣рдо рдСрдЯреЛ-рдУрдкрди рдпрд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд░рдирдЯрд╛рдЗрдо рд╣рдореЗрдВ рдпрд╣рд╛рдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреИрдВрдб


рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, iFunny рдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреИрдВрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

рд╕реНрдЯреИрдВрдб рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдПрдЬреЗрдВрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
  • рдЙрдкрдХрд░рдгреЛрдВ
  • рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ

рд╕реНрдЯреИрдВрдб рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╢рд┐рдХрд╛рдпрддреЛрдВ рд╕реЗ IDFA рд╣реИред

2016 рдХреЗ рдмрд╛рдж рд╕реЗ, рд╣рдордиреЗ рдХреЗрд╡рд▓ рд╡реАрдкреАрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпреВрдПрд╕рдП рдХреЛ рд▓рдХреНрд╖рд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЖрдИрдбреАрдПрдлрдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЖрдИрдбреАрдПрдлрдП рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд░рдирдЯрд╛рдЗрдо рдФрд░ рд╕реНрд╡рд┐рдЬрд╝рд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдкрдХреЛ ASIdentifierManager рд╡рд░реНрдЧ рдХреЗ рд╡рд┐рдЬреНрдЮрд╛рдкрди-рдкреНрд░рд╕рд╛рд░рдХрд░реНрддрд╛ рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рд╣рдо рдЗрд╕реЗ рд╢реНрд░реЗрдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ:

 @interface ASIdentifierManager (IDFARewrite) @end @implementation ASIdentifierManager (IDFARewrite) + (void)load { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ if (AdsMonitorTests.customIDFA != nil) { [self swizzleIDFA]; } }); } + (void)swizzleIDFA { Class class = [self class]; SEL originalSelector = @selector(advertisingIdentifier); SEL swizzledSelector = @selector(swizzled_advertisingIdentifier); Method originalMethod = class_getInstanceMethod(class, originalSelector); Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector); BOOL didAddMethod = class_addMethod(class, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)); if (didAddMethod) { class_replaceMethod(class, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); } else { method_exchangeImplementations(originalMethod, swizzledMethod); } } #pragma mark - Method Swizzling - (NSUUID *)swizzled_advertisingIdentifier { NSUUID *result = AdsMonitorTests.customIDFA; return result; } @end 

рдЖрд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ IDFA рдХреЛ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рд╕реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдЕрдореЗрд░рд┐рдХрд╛ рдореЗрдВ рдмреИрдирд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдореБрджреНрд░реАрдХрд░рдг рдХреА рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рдд рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, iFunny рдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╕реАрдЦрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдмреИрдирд░ рдХрдВрдкрдиреА рдХреЗ рд░рд╛рдЬрд╕реНрд╡ рдХрд╛ 75% рд▓рд╛рддреЗ рд╣реИрдВ, рдХрд╛рдо рдореБрджреНрд░реАрдХрд░рдг рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЛрдВ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдЕрдиреБрднрд╡ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрд╢реА рд╡рд┐рдЬреНрдЮрд╛рдкрди рдФрд░ рдЕрдореЗрд░рд┐рдХреА рдмрд╛рдЬрд╛рд░ рдореЗрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдиреАрд▓рд╛рдореА рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рд╣реИрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреБрдЫ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

Source: https://habr.com/ru/post/hi426553/


All Articles