Slide 1

Slide 1 text

!GSPNLL ೥෼ͷσʔλ͕ݟ͍ͨͱݴΘΕͯ ΍ͬͨ͜ͱ OPUFUFDINFFUVQ

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

ΞϓϦνʔϜͷ՝୊ w ઐ೚ͷ1E.͕͓ΒͣλεΫ͸ࣗ෼ͨͪͰߟ͑ͳ͕Β࡞͍ͬͯΔ w ͜Ε·Ͱ͸΢Σϒʹ͋ΔػೳΛΠϯϙʔτ͢Δ͜ͱ͕ଟ͔ͬͨͷͰେ͖ͳ ໰୊ʹ͸ͳͬͯ͜ͳ͔͕ͬͨɺ͋Δఔ౓͕ࠩຒ·Γ࢝ΊΔͱग़͖ͯͨ՝୊ w ݉೚ͷ1E.΍1.ܦݧͷ͋ΔσβΠφʔ͕ೖͬͯ͘ΕͨͷͰલਐ͸͍ͯ͠Δ w ୹ظతʹ͸਺஋ΛάϥϑԽ͢Δ͜ͱͰՄࢹԽͰ͖͍͕ͯͨɺ௕ظతͳ੒௕ͷ ՄࢹԽ͕Ͱ͖͍ͯͳ͔ͬͨ w ࡉ͔͍ΧΠθϯΛଓ͚͍ͯΔͱɺࣗ෼ͨͪͷ΍͍ͬͯΔ͜ͱ͕ਖ਼͍͔͠Ͳ ͏͔͢Β෼͔Βͳ͍

Slide 6

Slide 6 text

1E. ೥෼ͷσʔλΛऔ͖ͬͯͯൺֱ͍ͨ͠ Πϝʔδਤ

Slide 7

Slide 7 text

͕͠ͳ͍J04ΤϯδχΞ ͸ɺ͸͍ʜ

Slide 8

Slide 8 text

OPUFΞϓϦνʔϜͷσʔλͷ׆༻ w 'JSFCBTF"OBMZUJDT#JH2VFSZ w ΢Σϒͱͷڞ௨ϩάج൫ w ্هͷσʔλΛՄࢹԽ͢Δͷʹ3FEBTIΛར༻

Slide 9

Slide 9 text

3FEBTI w ෳ਺ͷσʔλϕʔεΛแׅͯ͠Ӿཡ͢Δ͜ͱ͕Ͱ͖ΔμογϡϘʔυαʔϏε w "84΍(PPHMF#JH2VFSZɺ.Z42-΍1PTUHSF42-ͳͲ༷ʑͳσʔλϕʔε ʹରԠʢIUUQTSFEBTIJPJOUFHSBUJPOTʣ w ෳ਺ͷΫΤϦΛ·ͱΊͯӾཡͨ͠Γɺάϥϑͷඳը΋Մೳ w ϗεςΟϯά͕ՄೳʢΉ͠ΖSFEBTIJPͰͷར༻͸೥݄຤ʹதࢭʣ

Slide 10

Slide 10 text

ࠓճ3FEBTI͸ෆ࢖༻ w ઃఆ࣍ୈ͕ͩϝϞϦ࢖༻ྔΛ௒͑Δ͜ͱ͕͋ΔʢίετͱͷτϨʔυΦϑʣ w 
 w 3FEBTI͸ετοΫʹ޲͔ͳ͍ʢΠϝʔδʣ 
 ೔෇ͷݕࡧΛݻఆ͢Δ͔ݱࡏ࣌ࠁΛج఺ʹܭࢉ͢Δ͜ͱ͕ଟ͍

Slide 11

Slide 11 text

#JH2VFSZͷஷ஝σʔλΛ 
 ετοΫͯ͠ൺֱͯ͠Ӿཡ͍ͨ͠🤔

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

εϓγ͔Β#JH2VFSZݺ΂͹ྑ͘ͳ͍ʁ

Slide 14

Slide 14 text

ࣄલ४උ 'JSFCBTF"OBMZUJDTͱ#JH2VFSZΛϦϯΫ͓ͯ͘͠

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

#JH2VFSZ"1*Λ༗ޮԽ (PPHMF$MPVE1MBUGPSNΑΓ

Slide 17

Slide 17 text

ΞϓϦ͔ΒϩάΛૹ৴ Analytics.logEvent(event.name, parameters: event.params)

Slide 18

Slide 18 text

ϓϩδΣΫτ൪߸Λ߇͓͑ͯ͘ (PPHMF$MPVE1MBUGPSNͷ*".ͷઃఆը໘ΑΓ ͜Ε

Slide 19

Slide 19 text

εϓϨουγʔτͷϕʔεΛ࡞੒

Slide 20

Slide 20 text

"QQT4DSJQUΛىಈ

Slide 21

Slide 21 text

αʔϏεΛ௥ՃΑΓ#JH2VFSZ"1*Λ௥Ճ

Slide 22

Slide 22 text

ΫΤϦͷ࣮ߦ const request = { query: query, useLegacySql: false } const result = BigQuery.Jobs.query(request, projectId) ઌ΄Ͳ߇͓͍͑ͯͨϓϩδΣΫτ൪߸

Slide 23

Slide 23 text

࣮ߦ͢Δࡍʹݖݶͷ෇༩ΛٻΊΒΕΔ ಛʹ໰୊ͳ͍ͷͰ෇༩͓ͯ͘͠

Slide 24

Slide 24 text

݁Ռͷऔಘ IUUQTDMPVEHPPHMFDPNCJHRVFSZEPDTSFGFSFODFSFTUWKPCTRVFSZ SPXT஋ͷҰཡ͕഑ྻͰೖ͍ͬͯΔ GϑΟʔϧυͷҰཡ͕4&-&$5۟ͷॱ൪ʹ഑ྻͰೖ͍ͬͯΔ W࣮ࡍͷ஋ ࠷௿ݶ͚ͩ঺հʢৄ͘͠͸υΩϡϝϯτΛࢀরʣ

Slide 25

Slide 25 text

݄ؒͷ17Λूܭ͢Δαϯϓϧίʔυ function countMonthlyUser(year, month) { const from = `${zeroFill(year, 4)}${zeroFill(month, 2)}01` const toDate = new Date(year, month, 0) const to = `${zeroFill(year, 4)}${zeroFill(month, 2)}${zeroFill(toDate.getDate(), 2)}` const query = `SELECT FORMAT_TIMESTAMP("%Y-%m", TIMESTAMP_MICROS(event_timestamp), "Asia/Tokyo") AS date , COUNT(distinct if(user_id IS NOT NULL, user_id, user_pseudo_id)) AS count_user FROM \`${tableName}.events_*\` WHERE _TABLE_SUFFIX BETWEEN '${from}' AND '${to}' GROUP BY date ` const request = { query: query, useLegacySql: false } const result = BigQuery.Jobs.query(request, projectId) if (!result || !result.rows) { return 0 } else if (result.rows.length == 0) { return 0 } else { if (result.rows[0].f.length == 0) { return 0 } else { return result.rows[0].f[1].v } } } IUUQTHJUIVCDPNGSPNLL4BNQMF#JH2VFSZ8JUI4QSFBETIFFU

Slide 26

Slide 26 text

ಈ͔͍ͯ͠Δ༷ࢠ

Slide 27

Slide 27 text

ϋϚͬͨ఺ w Կ΋ߟ͑ͣʹ42-Λୟ͘ͱ4UBOEBSE42-Ͱ͸ͳ͘ϨΨγʔ42-͕࣮ߦ͞Ε ͯ͠·ͬͨ w VTF-FHBDZ4RMGBMTFΛͪΌΜͱࢦఆ͢Δඞཁ͕͋ͬͨ w QSPKFDUJE͕Ͳ͜ʹ͋Δͷ͔෼͔ΓͮΒ͔ͬͨ w *".ͷઃఆը໘Λ୳͢ͷ͕஍ຯʹେมͩͬͨ

Slide 28

Slide 28 text

5JQT w ͔ͤͬ͘࡞ͬͯ΋࢖ΘΕͳ͍ͱ໪ମແ͍ w ࢖͍੾ΓͰ͸ͳ͘ܧଓͯ͠ར༻͍ͯͨ͘͠ΊʹɺஷΊͨσʔλͷޙΖʹ଍ͯ͠ ͍͚ΔΑ͏ͳ࢓૊ΈΛ࡞͓ͬͯ͘ͱࠓޙ΋҆৺

Slide 29

Slide 29 text

ࠓޙ w ࠓ͸खಈͰ࣮ߦ͠ͳ͍ͱूܭ͞Εͳ͍ w ͍͔ͭࣗಈͰݺͼग़͞Εͯɺूܭͯ͠4MBDLʹ௨஌͞ΕΔΑ͏ʹ͍ͨ͠

Slide 30

Slide 30 text

·ͱΊ w 3FEBTIͩͱઃఆʹΑͬͯ͸੍ݶ͕͋ΓେྔͷσʔλΛूܭ͠Αͱ͢Δͱ͏· ͘ߦ͔ͳ͍͜ͱ͕͋Δ w 4QSFBETIFFU͔Β#JH2VFSZ"1*Λୟ͘͜ͱͰখ·Ίʹूܭͯ͠ετοΫͰ͖ ΔΑ͏ʹͯ͠Έͨ w Ұͭ࡞Ε͹ଞͷFWFOU@OBNFͰूܭ͢Δ͜ͱ΋༰қͳͷͰస༻΋Մೳ w શͯΛ4QSFBETIFFUͰ΍Δ΂͖ͱ͸ࢥΘͳ͍͕ɺ༻్ʹΑͬͯ͸બ୒ࢶͷҰ ͭʹ͋ͬͯ΋Αͦ͞͏

Slide 31

Slide 31 text

No content