Ejemplo n.º 1
0
def render_ads_zone(context, zone):
    """
    Returns an advertise for a ``zone``.
    Tag usage:
    {% load ads_tags %}
    {% render_zone 'zone' %}
    """

    # Retrieve random ad for the zone based on weight
    ad = Ad.objects.random_ad(zone)

    if ad is not None:
        request = context['request']
        if not request.session.session_key:
            request.session.save()
        if request.session.session_key:
            impression, created = Impression.objects.get_or_create(
                ad=ad,
                session_id=request.session.session_key,
                defaults={
                    'impression_date': timezone.now(),
                    'source_ip': get_client_ip(request),
                })
    context.update({
        'ad': ad,
        'google_adsense_client': settings.ADS_GOOGLE_ADSENSE_CLIENT,
        'zone': settings.ADS_ZONES.get(zone, None)
    })
    return context
Ejemplo n.º 2
0
 def get(self, request, *args, **kwargs):
     ad = self.get_object()
     if request.session.session_key:
         click, created = Click.objects.get_or_create(
             ad=ad,
             session_id=request.session.session_key,
             defaults={
                 'click_date': timezone.now(),
                 'source_ip': get_client_ip(request),
             })
     else:
         click, created = Click.objects.get_or_create(
             ad=ad,
             session_id="",
             defaults={
                 'click_date': timezone.now(),
                 'source_ip': get_client_ip(request),
             })
     return HttpResponseRedirect(ad.url)
Ejemplo n.º 3
0
def render_static_zone(context, title, zone):
    # Retrieve static ad for the zone based on weight and ad title
    ad = Ad.objects.static_ad(title, zone)

    if ad is not None:
        request = context['request']
        if request.session.session_key:
            impression, created = Impression.objects.get_or_create(
                ad=ad,
                session_id=request.session.session_key,
                defaults={
                    'impression_date': timezone.now(),
                    'source_ip': get_client_ip(request),
                })
    context.update({'ad': ad, 'zone': settings.ADS_ZONES.get(zone, None)})
    return context