Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Golang_ads_deliver

 Golang_ads_deliver

Kaneko Tatsuya

December 08, 2014
Tweet

More Decks by Kaneko Tatsuya

Other Decks in Programming

Transcript

  1. %/4 UZQFUBJM ޿ࠂ഑৴αʔόʔ ؅ཧαʔόʔ .Z42- qVFOUE qVFOUE /(*/9 ը૾ $"$)&

    LTLMPH NFNDBDIFE ޿ࠂσʔλ "QQMJDBUJPO (PMBOH දࣔ਺ ΫϦοΫ਺ 6/*9υϝΠϯιέοτ $JSDVT ޿ࠂσʔλ ܭଌ݁Ռ ϥ΢ϯυϩϏϯ 6/*9υϝΠϯιέοτ ϑΝΠϧσΟεΫϦϓλ
  2. ഑৴αʔόʔઃܭ w ܰྔͳ,74ʹ޿ࠂσʔλΛอଘ͓͍ͯͯ͠ϦΫΤετʹԠͯͦ͡ͷσʔλΛฦ ͢ΞϓϦέʔγϣϯ w ը૾σʔλ΋ಉ༷ʹ഑৴͢Δ͕Ωϟογϡ͓͖ͯ͠ը૾ੜ੒͕ෳ਺ճߦΘΕͳ ͍Α͏ʹ͢Δ w ը૾σʔλࣗମͷදࣔ਺ΛܭଌΛ͢Δ͜ͱ͸ͳ͍ w

    ը૾σʔλΛ౎౓ੜ੒ͨ͠Β͕͔͔࣌ؒΓ͗͢Δ w දࣔ΍ΫϦοΫ͕͞ΕΕ͹ϑΝΠϧʹॻ͖ࠐΉʢLTLMPHʣ w qVFOUEͰLTLMPHΛ؂ࢹͯ͠ܭଌ݁ՌΛ؅ཧαʔόʔͷ.Z42-ʹॻ͖ࠐΉ w άϩʔόϧ*1ͰϢʔβʔͷϦΫΤετΛ௚઀ड͚Δ͜ͱͰߴ଎ʹϨεϙϯεฦ٫
  3. 6/*9EPNBJOTPDLFU w ϓϩηεؒ௨৴ w ಉҰϚγϯ্ͳΒ਌ࢠؔ܎ͳͲ͕ແͯ͘΋௨৴͕Ͱ͖Δ w UDQͳͲΑΓ΋҆ఆɾߴ଎ʹಈ͘ w NFNDBDIFEͱͷ௨৴ʹ΋࢖༻͢Δͱߴ଎͔ͭ҆ఆతʹಈ࡞ͤ͞Δ͜ͱ͕ Ͱ͖Δ

    w ΋ͪΖΜ࢖༻͍ͯ͠Δ w ϐΫγϒࣾ಺Ͱ͸গͳ͍ϦιʔεͰେྔͷΞΫηεΛߴ଎ʹ͞͹ͨ͘Ίʹࢸ Δͱ͜ΖͰ࠾༻͞Ε͍ͯΔ w (Pͷ৔߹OFU-JTUFO VOJY QBUI ͷΑ͏ʹ͢Ε͹Α͍
  4. IPUEFQMPZ w %/4ϥ΢ϯυϩϏϯͷͨΊִ཭͕ࠔ೉ w ޿ࠂαʔόʔ͸"84Ͱ͸ͳ͍ͷͰ&-#͸࢖͑ͳ͍ w QJYJWपลαʔϏε͸ίετ໘͔Β"84Λ࢖Θͳ͍ w ௒େྔֆഅɾQJYJWࣣ༦୹࡭ࡇͳͲظؒݶఆͷ΋ͷʹ͸"84͸࢖ ΘΕ͍ͯΔ

    w ݱࡏͷ޿ࠂۀքͰ͸"84Λ࢖͏͜ͱ͕ଟ͍ͷͰ&-#Λ࢖ͬͯ IPUEFQMPZΛ࣮ݱ͍ͯ͠Δձ͕ࣾଟ͍ w ޿ࠂαʔόʔͳͷͰσϓϩΠ࣌ʹμ΢ϯλΠϜ͕ൃੜͯ͠͸͍͚ͳ͍
  5. $JSDVT w .P[JMMB͕࡞ͬͨ1ZUIPO੡ͷϓϩηε؅ཧπʔϧ w $JSDVTࣗମ͕ιέοτϑΝΠϧΛ࣋ͬͯɼΞϓϦέʔγϣϯ͸ϑΝΠϧσΟεΫϦϓ λΛ-JTUFOͤͯ͞ىಈ͢Δ w σϓϩΠ࣌ʹ৽͍͠ϓϩηε͕ىಈ͔ͯ͠Βݹ͍ϓϩηεΛLJMM͢Δ w μ΢ϯλΠϜͳ͠ͰΞϓϦέʔγϣϯΛೖΕସ͑Δ͜ͱ͕Ͱ͖Δ

    w ઃఆϑΝΠϧΛॻ͘ͱ͍͍ײ͡ʹىಈͯ͘͠ΕΔ w FYBNQMF͕๛෋ͳͷͰׂͱॻ͚Δ w (PଆͰ͸ϩά͸ඪ४ग़ྗͱඪ४Τϥʔग़ྗʹॻ͚ͩ͘Ͱ$JSDVT͕ϩάϑΝΠϧԽͱϩ άϩʔςʔτΛશͯ୲͏ w (Pଆͷ։ൃίετΛԼ͛Δ w DJSDVTDUMͱ͍͏ίϚϯυπʔϧܦ༝Ͱૢ࡞͢Δ
  6. socket TPDLFU࡞੒ ϑΝΠϧ σΟεΫϦϓλ FYFD socket ϑΝΠϧ σΟεΫϦϓλ ϓϩηε؂ࢹ DJSDVT͸ϓϩηε؂ࢹ͚ͩ

    ͰϦΫΤετ͸ײ஌͠ͳ͍ BQQ͸ϑΝΠϧσΟεΫϦϓλΛ -JTUFO͢ΔαʔόʔͰ͋Δඞཁ͕͋Δ αʔόʔىಈ࣌ αʔόʔىಈޙ circus app circus app
  7. circus socket ϑΝΠϧ σΟεΫϦϓλ app_old FYFD app_new ϓϩηε؂ࢹ αʔόʔϦϩʔυ αʔόʔϦϩʔυ

    BQQ@OFX͕ىಈ͢Δ·Ͱ଴ͭ BQQ@OFX͕ىಈͨ͠Β BQQ@PMEΛLJMM͢Δ circus socket ϑΝΠϧ σΟεΫϦϓλ app_old app_new ϓϩηε؂ࢹ LJMM
  8. $JSDVT΁ϓϧϦΫ w $JSDVT͸(JU)VCͰ։ൃ͞Ε͍ͯΔ w %FCJBOͷJOJUEεΫϦϓτ͸$JSDVTࣗମͷϩάΛग़ྗ͠ͳ͔ͬͨ w ग़ྗͰ͖ΔΑ͏ʹมߋͯ͠ϓϧϦΫ΋ͯ͠ΈΔ w NFSHF͞Εͨ w

    ϐΫγϒͰ͸ࣾ಺Ͱ࢖༻͍ͯ͠ΔΦʔϓϯιʔεϓϩμΫτʹύο νΛૹΔͷ͸ਪ঑͞Ε͍ͯΔ w .P[JMMBͷϓϩηε؅ཧπʔϧDJSDVTʹϓϧϦΫͨ͠࿩DBUBUTVZ ͱ͸IUUQDBUBUTVZIBUFCMPKQFOUSZ
  9. ΩϟογϡԽ w ΞΫηεͷ౓ʹNFNDBDIFEʹΞΫηεΛͨ͠Β஗্͍ʹ$16࢖༻཰΋্͕ͬͯ͠ ·ͬͨ w QQSPG͔Β͸NFNDBDIFE͕஗͍ͱ͍͏͜ͱ͕Α͘෼͔Βͳ͔ͬͨ w ඇಉظʹσʔλΛऔಘ͢ΔͷͰQQSPGͰ͸͏·͘ग़ͯ͜ͳ͍ w XBMGTUPQXBUDI

    w NFNDBDIFEͷऔಘ݁ՌΛΞϓϦέʔγϣϯଆͰΩϟογϡ͢Δ͜ͱʹ w ௕͗͢Δͱ޿ࠂσʔλͷ൓ө͕஗ΕΔ w QNZMVOEHPDBDIF w άϩʔόϧʹDBDIFͱ͍͏ม਺໊Λ࢖ͬͯ͠·͏ͷͰJNQPSU࣌ʹผͷ໊લΛ͚ͭ Δ͜ͱΛਪ঑
  10. (PͷΞϓϦͷঢ়ଶΛݟ͍ͨ w SVOUJNF͕Ͳ͏ͳ͍ͬͯΔͷ͔ݟ͍ͨ w GVLBUBHPMBOHTUBUTBQJIBOEMFS w (PαʔόͷϞχλϦϯά2JJUBIUUQRJJUBDPNDVCJDEBJZBJUFNT CDBFBGC w ݱࡏ಺෦ʹऔΓࠐΜͰଞͷݟ͍ͨ৘ใΛݟΕΔΑ͏ʹͯ͠ศར"1*ʹ͍ͯ͠Δ

    w ΋ͪΖΜ/HJOYଆͰࣾ಺͔Β͔͠ݟΕͳ͍Α͏ʹ w σϓϩΠ͞ΕͨόʔδϣϯΛ஌Γ͍ͨ w HPCVJMEMEqBHT9NBJOBQQ7FSTJPOAHJUSFWMJTU)&"%OA w νϟωϧ͕٧·͍ͬͯͳ͍͔Έ͍ͨ w DBQ΍MFOͰঢ়ଶ͕ݟΕΔͷͰ+40/ܦ༝ͰݟΕΔΑ͏ʹ
  11. (Pͷύοέʔδ؅ཧ w ݱࡏ(PNΛ࢖͍ͬͯΔ͕׆༻͸Ͱ͖͍ͯͳ͍ w ಺෦ϦϙδτϦͷ(JU-BCΛ͏·͘ѻ͑ͳ͍ w ίϛοτ*%Λશ෦ॻ͍ͯΒΕͳ͍ w ͦ΋ͦ΋ެࣜͰఏڙ͞Ε͍ͯͳ͍ͷͰͲ͏͠Α͏΋ͳ͍ؾ͕͢Δ w

    NFNDBDIFEͷFYQJSFΛར༻͢Δࡍʹ৽͠Ίͷ֎෦ϥΠϒϥϦΛ࢖͏ඞཁ͕ग़ͯ ͜ͷ໰୊͕࠶೩ w ֎෦ϥΠϒϥϦΛৗʹ࠷৽ͷ΋ͷΛ࢖͏Α͏ʹ͢Δͱ(JU)VC͕ࢮΜͩΒσϓϩ ΠͰ͖ͳ͍BOE֎෦ϥΠϒϥϦͷߋ৽ͰʰԿ΋ͯ͠ͳ͍ͷʹʱࢮ͵Մೳੑ͕ग़ Δ w ޿ࠂγεςϜͱͯ͠க໋త
  12. (Pͷϓϩηε͕ίΞ͔͠࢖Θͳ͍ w NVOJOͷάϥϑ͕಄ΛଧͬͨΑ͏ʹͳΔ w ϨεϙϯελΠϜ͕ѱԽ͍ͯ͠ΔΘ͚Ͱ͸ͳ͍ w /HJOYͷΞΫηεϩάΛղੳͯ͠HSPXUIGPSFDBTUͰάϥϑʹ͍ͯ͠ΔͷͰϨεϙϯε λΠϜͷѱԽ͕֬ೝ͞Εͳ͔ͬͨ w (0."9130$4Λม͑ͯ΋μϝ

    w ͣͬͱʹ͍ͯͨ͠ͷΛ΍ʹ͕ͨ͠େ͖ͳҧ͍͸ݟΒΕͣ w ࠓ͸શ୆ʹ͍ͯ͠Δ w ΞΫηε͕ҰఆྔΛ௒͑Δͱ/HJOYͷΞΫηεϩάΛૹΔqVFOUEͱϩάΛॻ͖ࠐΉDJSDVT ͕$16Λ͔ͳΓᷰ͏Α͏ʹͳΔͷͰ(Pͷϓϩηεʹ$16Λ࢖ΘͤΔඞཁ͸ݱঢ়ͳ͍ w ͱΓ͋͑ͣ໰୊ͳ͍ͷͰ༷ࢠݟ
  13. 3VCZͷ໊࢒ w ഑৴αʔόʔΛ౰ॳ3VCZͰ࡞Ζ͏ͱͯ͠಴࠳ͨ͠ܦҢ͕͋Δ͕ݩʑ3VCZͰ࡞Ζ͏ͱͨ͠ ໊࢒͸ͨ͘͞Μ͋Δ w σΟϨΫτϦߏ੒͸ݩʑ$BQJTUSBOPͰσϓϩΠ͍ͯͨ࣌͠ͱม͍͑ͯͳ͍ w $BQJTUSBOPͱಉ͡Α͏ͳಈ͖Λ͢ΔγΣϧεΫϦϓτΛࣗલͰ࡞੒ w Ҡߦ࣌͸มߋ఺͕গͳ͍ํ͕Α͔ͬͨͨΊ͋Δఔ౓ϝϦοτ͕͕͋ͬͨɼ࠷దԽͷ༨஍

    ͕͔ͳΓ͋ΔͷͰॻ͖௚͍ͨ͠ w STZOD͸ࠩ෼͚ͩɾෳ਺αʔόʔ΁ฒྻʹSTZODͳͲ w όονॲཧ͸3VCZͱ(Pͷ͕ͭ࢖ΘΕ͍ͯͨΓͱ౷Ұੑ͕ͳ͍ w .Z42-΁ͷॻ͖ࠐΈͳͲ͸(Pʹ͢ΔϝϦοτ΋ͳ͍ͷͰࠓޙͲͷఔ౓։ൃϦιʔεΛ ׂ͚Δ͔͸ෆ໌ w ਖ਼௚໰୊͕͋ΔΘ͚Ͱ͸ͳ͍ͷͰ௚͞ͳͦ͏
  14. (Pͷਖ਼௚ͳײ૝ w +40/΍υϥΠόͳͲ͋·Γ଎͘ͳ͍΋ͷ΋͋Δ͕޻෉͢Ε͹͔ͳΓ଎͍αʔόʔ͕ ࡞ΕΔ w ݱঢ়ͷ഑৴αʔόʔࣗମͷύϑΥʔϚϯεʹ͸ຬ଍͍ͯ͠Δ w ຊ֨Ҡߦޙ΋େ͖ͳ໰୊͸ى͍ͬͯ͜ͳ͍ w ϗοτσϓϩΠͷͨΊʹDJSDVTΛબ୒ͨ͠ͱ͜Ζ(Pͷίʔυ͕ංେԽͤͣʹࡁΜͩ

    w σϓϩΠ͸όΠφϦΛ഑෍͢Δ͚ͩͳͷͰ؆୯ w 3VCZ͸CVOEMFJOTUBMMͳͲ໘౗ w HPSPVUJOFͰಈ͘αʔόʔ͸QSFGPSLͷαʔόʔͱ͸άϥϑͷܗ͕ҧ͏ͷͰࣾ಺Ͱ͸ݟ ׳Εͳ͍άϥϑʹͳΔ w ࣾ಺Ͱ͸1)1 "QBDIF ΍6OJDPSOͳͲQSFGPSLͷαʔόʔ͕ओྲྀ