{ "info": { "author": "Razi Alsayyed", "author_email": "razi.sayed@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development", "Topic :: Software Development :: Libraries :: Application Frameworks" ], "description": "Django Ads Management System\n============================\n\na Django Application to make it easy to add Simple (Image) Advertisements to your project.\n\nEach Ad has a **title**, a **URL** to redirect to, an **image** to be displayed in the template as a link, a **start & end dates**, and a **weight** relative to other Ads in the same zone. The higher the weight, the more frequently the Ad will be displayed.\n\nEach time an Ad is displayed an **Impression** will be saved to the database about it with session id and source ip address, and each time it will be clicked a **click** will be saved in the database about it with the same info.\n\nInstallation:\n-------------\n\nInstall the package using pip:\n\n.. code-block:: python\n\n pip install django-ads\n\nRun django Migration to add tables to your database:\n\n.. code-block:: python\n\n python manage.py migrate ads\n\nConfiguration:\n--------------\n\nAdd ``'ads'`` to your ``INSTALLED_APPS``\n\nMake sure ``django.template.context_processors.request`` is included in ``context_processors``\n\n.. code-block:: python\n\n TEMPLATES = [\n {\n 'BACKEND': 'django.template.backends.django.DjangoTemplates',\n 'DIRS': [],\n 'APP_DIRS': True,\n 'OPTIONS': {\n 'context_processors': [\n ...\n 'django.template.context_processors.request',\n ...\n ],\n },\n },\n ]\n\n\nMake sure ``django.contrib.sessions.middleware.SessionMiddleware`` is included to ``MIDDLEWARE_CLASSES/MIDDLEWARE``\n\nPrior to Django 1.10\n\n.. code-block:: python\n\n MIDDLEWARE_CLASSES = [\n ...\n 'django.contrib.sessions.middleware.SessionMiddleware',\n ...\n ]\n\nDjango 1.10 (new style)\n\n.. code-block:: python\n\n MIDDLEWARE = [\n ...\n 'django.contrib.sessions.middleware.SessionMiddleware',\n ...\n ]\n\nAdd the following to your settings file:\n\n.. code-block:: python\n\n ADS_GOOGLE_ADSENSE_CLIENT = None # 'ca-pub-xxxxxxxxxxxxxxxx'\n\n ADS_ZONES = {\n 'header': {\n 'name': gettext('Header'),\n 'ad_size': {\n 'xs': '720x150',\n 'sm': '800x90',\n 'md': '800x90',\n 'lg': '800x90',\n 'xl': '800x90' \n },\n 'google_adsense_slot': None, # 'xxxxxxxxx',\n 'google_adsense_format': None, # 'auto'\n },\n 'content': {\n 'name': gettext('Content'),\n 'ad_size': {\n 'xs': '720x150',\n 'sm': '800x90',\n 'md': '800x90',\n 'lg': '800x90',\n 'xl': '800x90' \n },\n 'google_adsense_slot': None, # 'xxxxxxxxx',\n 'google_adsense_format': None, # 'auto'\n },\n 'sidebar': {\n 'name': gettext('Sidebar'),\n 'ad_size': {\n 'xs': '720x150',\n 'sm': '800x90',\n 'md': '800x90',\n 'lg': '800x90',\n 'xl': '800x90'\n }\n }\n }\n\n ADS_DEFAULT_AD_SIZE = '720x150'\n\n ADS_DEVICES = (\n ('xs', _('Extra small devices')),\n ('sm', _('Small devices')),\n ('md', _('Medium devices (Tablets)')),\n ('lg', _('Large devices (Desktops)')),\n ('xl', _('Extra large devices (Large Desktops)')),\n )\n \n ADS_VIEWPORTS = {\n 'xs': 'd-block img-fluid d-sm-none',\n 'sm': 'd-none img-fluid d-sm-block d-md-none',\n 'md': 'd-none img-fluid d-md-block d-lg-none',\n 'lg': 'd-none img-fluid d-lg-block d-xl-none',\n 'xl': 'd-none img-fluid d-xl-block',\n }\n\n\nWhere each element in ``ADS_ZONES`` defines a ``zone`` that can be used in your templates to display ads. Each zone must have a name to be used in the admin interface when adding ads, and sizes to be used to display the ad images in templates.\n\nThis app has one template: ``ads/tags/render_ads_zone.html``. It makes some assumptions:\n\n#. Your project uses Bootstrap (the ``visible-*`` and ``img-responsive`` CSS classes are used).\n\n#. If you are using Google AdSense\u200e, it is assumed that you have ``'sekizai'`` in your ``INSTALLED_APPS`` and that your base template contains ``{% render_block \"js\" %}``.\n\nIf either of the above assumptions will cause a problem in your project, feel free to override the template.\n\nCreate a URL pattern in your urls.py:\n\n.. code-block:: python\n\n from django.conf.urls import include, url\n\n urlpatterns = [\n ...\n url(r'^ads/', include('ads.urls')),\n ...\n ]\n\nUsage:\n------\n\nAdd Advertisers, Categories, and Ads using Django admin interface.\n\nload ``ads_tags`` in your template:\n\n.. code-block:: python\n\n {% load ads_tags %}\n\nuse ``render_ads_zone`` in your template where you want your ads to appear:\n\n.. code-block:: python\n\n {% render_ads_zone 'zone_name' %}\n\n\nChangelog:\n----------\n\n1.0.0 (2019-03-26):\n\n- major change in functionality (switch to JS approach in rendering templates). You need jquery to be installed in frontend to use django-ads.\n- Note: templates/ads/tags/render_ads_zone.html has been changed. If you use a custom template, then please take a look at the new version.\n\n0.2.1 (2018-07-26): (Special Thanks to `@GabrielDumbrava `_\n)\n\n- get_zones_choices now return choices sorted based on key\n- Ad, Category, and Advertizer now stay on DB after deleting `created_by` user.\n- fix get_absolute_url in Ad model.\n- Add `ad` and `ad__zone` filters to impressions and clicks admin pages.\n- Fix clicks and impressions admin search.\n\n0.2.1 (2018-02-05):\n\n- add long_description to setup.py\n\n0.2.0 (2018-02-05): (Special Thanks to `@ataylor32 `_\n)\n\n- add Django 2.0 support\n- add missing dependency (Pillow)\n- update README\n\n0.1.8 (2017-06-24):\n\n- fix googleads script tags to load multiple ad units in the same page\n\n0.1.7 (2017-06-24):\n\n- Please do not use this version\n\n0.1.6 (2017-06-24):\n\n- fix django-sekizai dependency version\n\n0.1.5 (2017-06-24):\n\n- add google adsense fallback\n\n0.1.4 (2017-03-01):\n\n- get client ip address from HTTP_X_FORWARDED_FOR if it exists.\n\n0.1.3 (2017-02-08):\n\n- remove dependency on easy-thumbnails.\n- add Image validation to validate image size on upload using Admin interface.\n\n0.1.2 (2017-02-08):\n\n- add AdImage model to allow responsive ads.\n\n0.1.1 (2016-12-20):\n\n- add missing templates directory.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/razisayyed/django-ads", "keywords": "", "license": "LICENSE", "maintainer": "", "maintainer_email": "", "name": "django-ads", "package_url": "https://pypi.org/project/django-ads/", "platform": "OS Independent", "project_url": "https://pypi.org/project/django-ads/", "project_urls": { "Homepage": "https://github.com/razisayyed/django-ads" }, "release_url": "https://pypi.org/project/django-ads/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "Ads Management System for Django Framework", "version": "1.0.0" }, "last_serial": 4987339, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ea1f926235ad72a65ad2f19d12e00835", "sha256": "06ad36c232be1300728cae48ce6aeee16a4aec6137d2993f37888d4c861cf3e6" }, "downloads": -1, "filename": "django-ads-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ea1f926235ad72a65ad2f19d12e00835", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6951, "upload_time": "2016-12-19T22:38:49", "url": "https://files.pythonhosted.org/packages/4e/41/f5081296fc95a9faf68c673c4c34de6ca389c46e6e2a8dffe431f4325ca4/django-ads-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "474fdaefb2cde43a74fa97f62e5b29ef", "sha256": "a6362a74a8bc91c1123c903de491b41eca8ff50834e4a7450b968208227f7e8d" }, "downloads": -1, "filename": "django-ads-0.1.1.tar.gz", "has_sig": false, "md5_digest": "474fdaefb2cde43a74fa97f62e5b29ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11642, "upload_time": "2016-12-19T22:47:01", "url": "https://files.pythonhosted.org/packages/bc/b1/2cfbe055d631e782d214aa14779b6e074cde91735cd7c763ba1c80582384/django-ads-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "268c53fa3178f4459fe39a5f0d61d9cd", "sha256": "31bdfdf5cfdd2623e811a3764c22d754acb643df3f0d93bff273c859369ccadf" }, "downloads": -1, "filename": "django-ads-0.1.2.zip", "has_sig": false, "md5_digest": "268c53fa3178f4459fe39a5f0d61d9cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19318, "upload_time": "2017-02-08T08:01:18", "url": "https://files.pythonhosted.org/packages/06/81/f90be7fe7538aa9d824fca75d71ca3d35c68778e16b241ea0f79bbc29f59/django-ads-0.1.2.zip" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e841dce89b2d7cd496908e846fb86b8b", "sha256": "f84397fc36ffe10d73b7caab6f9f775a8b967ad3de03060e0745e65a91326006" }, "downloads": -1, "filename": "django-ads-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e841dce89b2d7cd496908e846fb86b8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12698, "upload_time": "2017-02-08T12:09:00", "url": "https://files.pythonhosted.org/packages/a9/d6/c6d5f8e1f6d0f84d80746613e5d4d46960d2ba27b3842f3d75bcfc10fd8e/django-ads-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b117851ff13eb793c1fe449a04706236", "sha256": "b5beb626dfbc1e4f870bb9166e934f7fcd8cda87378658566f8646129e85da2f" }, "downloads": -1, "filename": "django-ads-0.1.4.tar.gz", "has_sig": false, "md5_digest": "b117851ff13eb793c1fe449a04706236", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12788, "upload_time": "2017-03-01T04:18:08", "url": "https://files.pythonhosted.org/packages/aa/bd/8011698637ab98deac39664d6d0ae5dfcbb0a8e23a4d2a2923cbb0abdfcd/django-ads-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "3ba101d0b83393bef3a005110f09386d", "sha256": "e93b385532741a6e7c959be43c6cd17af27b7a104c853f8a0608cbcc405ee66b" }, "downloads": -1, "filename": "django-ads-0.1.5.tar.gz", "has_sig": false, "md5_digest": "3ba101d0b83393bef3a005110f09386d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12872, "upload_time": "2017-06-24T00:40:37", "url": "https://files.pythonhosted.org/packages/71/03/8d3deec697e0cc0cf8d6ae9d2697b658cf516b6626b17cfb47ec4d65dda3/django-ads-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "2004951ce86df614a6759bd1afa0c28e", "sha256": "d46084574bc6d0a45979d2c008d9920a4c21e370ea83b4f6de59b7023759a44d" }, "downloads": -1, "filename": "django-ads-0.1.6.tar.gz", "has_sig": false, "md5_digest": "2004951ce86df614a6759bd1afa0c28e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12888, "upload_time": "2017-06-24T01:01:46", "url": "https://files.pythonhosted.org/packages/06/00/6d3c7c182fe335479c8bb18ab895bda4769548973e2ee455dae5d3377f9f/django-ads-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "2700b1c1f79465d4fe961a070cd93ae2", "sha256": "a1589d0ccd3560075790d0a42a8033ee1e49632ea3bfaf96bcbd8d7f400ca9a1" }, "downloads": -1, "filename": "django-ads-0.1.7.tar.gz", "has_sig": false, "md5_digest": "2700b1c1f79465d4fe961a070cd93ae2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12965, "upload_time": "2017-06-24T01:21:47", "url": "https://files.pythonhosted.org/packages/05/2c/f80a16414cc7e47de74a64872a8792db2b28e9848050b7ec66e3ee2ed5cd/django-ads-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "1c66c358a6a6776d155154308e53455d", "sha256": "a121c83cd116e05d9033a96767d1a800a410c064f416100c577c8e098452649a" }, "downloads": -1, "filename": "django-ads-0.1.8.tar.gz", "has_sig": false, "md5_digest": "1c66c358a6a6776d155154308e53455d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12937, "upload_time": "2017-06-24T01:31:18", "url": "https://files.pythonhosted.org/packages/6e/26/6909e6bdc925d12a2d6116dbfcfb1b1a54286b686da28feed363feb2fe8c/django-ads-0.1.8.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ee383ad82b61eea6959b921c92d89f4a", "sha256": "85852403e5635bed4ada8ed437e4be788e0477f75511178b1e2191dd39bcb110" }, "downloads": -1, "filename": "django_ads-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee383ad82b61eea6959b921c92d89f4a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13765, "upload_time": "2018-02-05T07:20:48", "url": "https://files.pythonhosted.org/packages/4a/92/98570220441cae1c4432fbb7f84d84d2ba6e87ab1502075423a8eef8514a/django_ads-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0d90a97af994215af9b2789466010a0", "sha256": "3b2ce22fc2d365005f90991517a822caa2a93f6e5133fd3647f341f1873808d6" }, "downloads": -1, "filename": "django-ads-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e0d90a97af994215af9b2789466010a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13498, "upload_time": "2018-02-05T07:20:49", "url": "https://files.pythonhosted.org/packages/2f/61/3437879755178c6c199862a45312ecbc8a7f24686fad0b22805e9f541b11/django-ads-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a5e03b5e9cb33e7714560b3db5c26ca1", "sha256": "adefd58b507a095d376f1fc4fef33f9e625bed922ebd82d2918cdc77a2985656" }, "downloads": -1, "filename": "django_ads-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a5e03b5e9cb33e7714560b3db5c26ca1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17430, "upload_time": "2018-02-05T07:46:31", "url": "https://files.pythonhosted.org/packages/bc/f4/4ded64abe61676fb818efc89dd80a59da6261eca8e3e82ecba95541480e8/django_ads-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e661fe91969a5da916455d3a35c91e20", "sha256": "9bc3b7c1ec8d875dbb1f5253712f5d962cebd5844810631b7ace5a743636018c" }, "downloads": -1, "filename": "django-ads-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e661fe91969a5da916455d3a35c91e20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14074, "upload_time": "2018-02-05T07:46:34", "url": "https://files.pythonhosted.org/packages/bf/57/4b404d617952e46b45f13f892c3d88fb1200b99cf7893877170366d2bd52/django-ads-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "26d0ca34484c78fd86078d2266d95d1e", "sha256": "6151769705a491fad00b0fa36cf8feb8a9279b87cb050c1f397f8ff249533c8a" }, "downloads": -1, "filename": "django_ads-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "26d0ca34484c78fd86078d2266d95d1e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15455, "upload_time": "2018-07-26T11:59:44", "url": "https://files.pythonhosted.org/packages/6c/5d/bfee15308fb9ada0ac1cb5ff6ca08821fedb9d5bb126caed98d2e6eced1a/django_ads-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6db118ae53687ea0f2f327add7e87f3", "sha256": "37c6e9be3dbe81d8624b12fbd9f909eecdba8f99d63a7c965cc2620afee99065" }, "downloads": -1, "filename": "django-ads-0.2.2.tar.gz", "has_sig": false, "md5_digest": "a6db118ae53687ea0f2f327add7e87f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14227, "upload_time": "2018-07-26T11:59:46", "url": "https://files.pythonhosted.org/packages/b4/a3/1b27875d8032d572a75f16eb387ad01101930d67e73643557bb891946a7a/django-ads-0.2.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "a86da886fc13deb1eea6cd60251a2f2f", "sha256": "83ab023974c2d77e02a1e6ad3e1f5cfa1875737d8f0a364c55d5819e5d16f18c" }, "downloads": -1, "filename": "django-ads-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a86da886fc13deb1eea6cd60251a2f2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16304, "upload_time": "2019-03-26T12:00:08", "url": "https://files.pythonhosted.org/packages/8c/e7/efb43b44629525907b45c0760c92345525fb0623ed97e691d4ff596e5206/django-ads-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a86da886fc13deb1eea6cd60251a2f2f", "sha256": "83ab023974c2d77e02a1e6ad3e1f5cfa1875737d8f0a364c55d5819e5d16f18c" }, "downloads": -1, "filename": "django-ads-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a86da886fc13deb1eea6cd60251a2f2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16304, "upload_time": "2019-03-26T12:00:08", "url": "https://files.pythonhosted.org/packages/8c/e7/efb43b44629525907b45c0760c92345525fb0623ed97e691d4ff596e5206/django-ads-1.0.0.tar.gz" } ] }