You are here

README.txt in Advertisement 7.3

+ spostare ad_high_per in root, e togliere quel modulo
+ variabile per usare lo script, oppure la chiamata standard
+ xhprof falso di default
- fix nedjo
+ ricreare ad di esempio / fare porting
+ sistemare token, o facendo funzione custom per il token, o mettendo un tracker per le sessioni anonime (con opzione per toglierlo)
+ è possibile fare queueing su database, facendo solo il bootstrap di database?
+ comando per svuotare le queue? (queue-run ...)
+ aggiungere filequeue
+ ripristinare immagini nell'admin/ad usando i placeholder; è possibile fare qualcosa con il size term? Forse si potrebbe usare un view mode? E per avere un filtro?
- in teoria non dovrei aver bisogno di passare il view mode a ad_info, ma potrei prenderlo dalla view
    - in questo modo ogni node type non sarebbe forzato a usare sempre lo stesso view mode
    - e per esempio un modulo che implementa gli ad flash potrebbe avere view mode diversi a seconda della grandezza
    - forse a questo punto ha senso separare ad_example e avere un ad_image.module?
- suite di test, per testare con e senza cache e queue
- istruzioni
  to add and edit ads: http://watchdog.local/admin/ad
  to change the views
- deploy
  drush fr dw dw_blog dw_issue dw_digital_ad
  drush updatedb
  cron ogni minuto con drush queue-run ad
  setting per locale
  creare e configurare /var/www/dev.drupalwatchdod.com/private_files/filequeue/ad/
- cancella dai log tutte le impression senza click; tieni invece iclick con le sue impression collegate
- Se una impression ha generato più click dello stesso tipo, non considerare i click extra
- Sistema a punti che guadagni se superi le query di test
- Togliere token, dovrebbe essere superfluo

****
Turn adv into nodes.
Steps:
+ remove eck definition of the ad entity, and create a new node type in ad_example
+ ad would have an "ad_info" hook which ad_example uses to communicate
  + the ad node type
  + their image field
    - not needed, we'll use view modes
  + their link field
  + which views are used for display
  + which view modes are used for rendering
  - check this info is correct and display a warning if it's not
  + use ad_field_formatter_view in the view mode to automatically display the linked media, and cache the whole rendered entity in that view mode
    + use placeholders for hashes and uniqids; if a link is clicked with still the placeholders, we know it's from an admin
    - extend ad_field_formatter_view to support image styles, so we can have full images in display and thumbs in admin
+ ad would extend those nodes with new properties, like "total clicks" and "total impressions", and would provide links to the statistics
+ move ad administration view to the feature module, because it's custom built for the entity (for example, a site might have some filters specific to its workflow)
+ update ad serve code to use nodes

****
validity checks for clicks:
- clicks without an associated impression
SELECT * FROM eck_tracked_event c
LEFT JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
WHERE c.type = 'click' AND i.id IS NULL
- clicks which happened less than 5 seconds after the impression
also check for clicks that happened after too much time
SELECT c.*, c.created - i.created FROM eck_tracked_event c
JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
WHERE c.type = 'click' AND c.created - i.created < 5
- clicks whose impression had a different ip
SELECT c.*, c.created - i.created FROM eck_tracked_event c
JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
WHERE c.type = 'click' AND c.ip_address != i.ip_address
- clicks whose impression had a different session
SELECT c.*, c.created - i.created FROM eck_tracked_event c
JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
WHERE c.type = 'click' AND c.session != i.session
- clicks whose impression had a different user agent
SELECT c.*, c.created - i.created FROM eck_tracked_event c
JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
WHERE c.type = 'click' AND c.user_agent != i.user_agent
- clicks whose impression had a different referer
SELECT c.*, c.created - i.created FROM eck_tracked_event c
JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
WHERE c.type = 'click' AND c.referer != i.referer
- clicks whose impression had a logged in user
SELECT c.*, c.created - i.created FROM eck_tracked_event c
JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
WHERE c.type = 'click' AND c.uid != i.uid AND c.uid > 0

File

README.txt
View source
  1. + spostare ad_high_per in root, e togliere quel modulo
  2. + variabile per usare lo script, oppure la chiamata standard
  3. + xhprof falso di default
  4. - fix nedjo
  5. + ricreare ad di esempio / fare porting
  6. + sistemare token, o facendo funzione custom per il token, o mettendo un tracker per le sessioni anonime (con opzione per toglierlo)
  7. + è possibile fare queueing su database, facendo solo il bootstrap di database?
  8. + comando per svuotare le queue? (queue-run ...)
  9. + aggiungere filequeue
  10. + ripristinare immagini nell'admin/ad usando i placeholder; è possibile fare qualcosa con il size term? Forse si potrebbe usare un view mode? E per avere un filtro?
  11. - in teoria non dovrei aver bisogno di passare il view mode a ad_info, ma potrei prenderlo dalla view
  12. - in questo modo ogni node type non sarebbe forzato a usare sempre lo stesso view mode
  13. - e per esempio un modulo che implementa gli ad flash potrebbe avere view mode diversi a seconda della grandezza
  14. - forse a questo punto ha senso separare ad_example e avere un ad_image.module?
  15. - suite di test, per testare con e senza cache e queue
  16. - istruzioni
  17. to add and edit ads: http://watchdog.local/admin/ad
  18. to change the views
  19. - deploy
  20. drush fr dw dw_blog dw_issue dw_digital_ad
  21. drush updatedb
  22. cron ogni minuto con drush queue-run ad
  23. setting per locale
  24. creare e configurare /var/www/dev.drupalwatchdod.com/private_files/filequeue/ad/
  25. - cancella dai log tutte le impression senza click; tieni invece iclick con le sue impression collegate
  26. - Se una impression ha generato più click dello stesso tipo, non considerare i click extra
  27. - Sistema a punti che guadagni se superi le query di test
  28. - Togliere token, dovrebbe essere superfluo
  29. ****
  30. Turn adv into nodes.
  31. Steps:
  32. + remove eck definition of the ad entity, and create a new node type in ad_example
  33. + ad would have an "ad_info" hook which ad_example uses to communicate
  34. + the ad node type
  35. + their image field
  36. - not needed, we'll use view modes
  37. + their link field
  38. + which views are used for display
  39. + which view modes are used for rendering
  40. - check this info is correct and display a warning if it's not
  41. + use ad_field_formatter_view in the view mode to automatically display the linked media, and cache the whole rendered entity in that view mode
  42. + use placeholders for hashes and uniqids; if a link is clicked with still the placeholders, we know it's from an admin
  43. - extend ad_field_formatter_view to support image styles, so we can have full images in display and thumbs in admin
  44. + ad would extend those nodes with new properties, like "total clicks" and "total impressions", and would provide links to the statistics
  45. + move ad administration view to the feature module, because it's custom built for the entity (for example, a site might have some filters specific to its workflow)
  46. + update ad serve code to use nodes
  47. ****
  48. validity checks for clicks:
  49. - clicks without an associated impression
  50. SELECT * FROM eck_tracked_event c
  51. LEFT JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
  52. WHERE c.type = 'click' AND i.id IS NULL
  53. - clicks which happened less than 5 seconds after the impression
  54. also check for clicks that happened after too much time
  55. SELECT c.*, c.created - i.created FROM eck_tracked_event c
  56. JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
  57. WHERE c.type = 'click' AND c.created - i.created < 5
  58. - clicks whose impression had a different ip
  59. SELECT c.*, c.created - i.created FROM eck_tracked_event c
  60. JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
  61. WHERE c.type = 'click' AND c.ip_address != i.ip_address
  62. - clicks whose impression had a different session
  63. SELECT c.*, c.created - i.created FROM eck_tracked_event c
  64. JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
  65. WHERE c.type = 'click' AND c.session != i.session
  66. - clicks whose impression had a different user agent
  67. SELECT c.*, c.created - i.created FROM eck_tracked_event c
  68. JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
  69. WHERE c.type = 'click' AND c.user_agent != i.user_agent
  70. - clicks whose impression had a different referer
  71. SELECT c.*, c.created - i.created FROM eck_tracked_event c
  72. JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
  73. WHERE c.type = 'click' AND c.referer != i.referer
  74. - clicks whose impression had a logged in user
  75. SELECT c.*, c.created - i.created FROM eck_tracked_event c
  76. JOIN eck_tracked_event i ON c.parent_unique_id = i.unique_id
  77. WHERE c.type = 'click' AND c.uid != i.uid AND c.uid > 0